From 37ff5157402139641d0acbea123e6ecf274158a6 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sun, 13 Feb 2022 14:37:51 +0100 Subject: [PATCH 01/51] Preliminary structure --- chapter/evaluation.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index e69de29b..f1515c8e 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -0,0 +1,17 @@ +# Evaluation + +## Values of Interest + +## Methods + +### Qualitative + +### Quantitative + +## Process + +## Results + +### Qualitative + +### Quantitative From 067d326ac186c8f50bf873acd8ef91295cd5f4ca Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Tue, 8 Mar 2022 10:57:21 +0100 Subject: [PATCH 02/51] Evaluation introduction --- chapter/evaluation.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index f1515c8e..6d467a86 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -1,6 +1,35 @@ # Evaluation -## Values of Interest +[Section @sec:implementation] described the implementation of the Nickel Language Server addressing the first research question stated in [@sec:research-questions]. +Proving the viability of the result and answering the second research question demands an evaluation of different factors. + +Earlier, the most important metrics of interest were identified as: + +Usability + ~ What is the real-world value of the language server? + ~ Does it improve the experience of developers using Nickel? + NLS offers several features, that are intended to help developers using the language. + The evaluation should assess whether developers experience any help due to the use of the server. + ~ Does NLS meet its users' expectations in terms of completeness and correctness and behavior? + Being marketed as a Language Server, invokes certain expectations due to previous experience with other languages and language servers. + Here, the evaluation should show whether NLS lives up to the expectations of its users. + +Performance + ~ What are the typical latencies of standard tasks? + In this context *latency* refers to the time it takes from issuing an LSP command to return of the reply by the server. + The JSON-RPC protocol used by the LSP is synchronous, i.e. requires the server to return results of commands in the order it received them. + Since most commands are sent implicitly, a quick processing is imperative to avoid commands queuing up. + ~ Can single performance bottlenecks be identified? + Single commands with excessive runtimes can slow down the entire communication resulting in bad user experience. + Identified issues can guide the future work on the server. + ~ How does the performance of NLS scale for bigger projects? + With increasing project sizes the work required to process files increases as well. + The evaluation should allow estimates of the sustained performance in real-world scenarios. + +Answering the questions above, this chapter consists of two main sections. +The first section [sec:methods] introduces methods employed for the evaluation. +In particular, it details the survey ([sec:qualitative]) which was conducted with the intent to gain qualitative opinions by users, as well as the tracing mechanism ([sec:quantitative]) for factual quantitative insights. + ## Methods From c2c3d7c2a22061ef044057fc5cac05094b6e023e Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Tue, 8 Mar 2022 11:07:36 +0100 Subject: [PATCH 03/51] Mention results section --- chapter/evaluation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 6d467a86..ba1a32ef 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -27,9 +27,9 @@ Performance The evaluation should allow estimates of the sustained performance in real-world scenarios. Answering the questions above, this chapter consists of two main sections. -The first section [sec:methods] introduces methods employed for the evaluation. -In particular, it details the survey ([sec:qualitative]) which was conducted with the intent to gain qualitative opinions by users, as well as the tracing mechanism ([sec:quantitative]) for factual quantitative insights. - +The first section [@sec:methods] introduces methods employed for the evaluation. +In particular, it details the survey ([@sec:qualitative]) which was conducted with the intent to gain qualitative opinions by users, as well as the tracing mechanism ([@sec:quantitative]) for factual quantitative insights. +[Section @sec:results] summarises the results of these methods. ## Methods From 76dec8c0e2ced91d85dac3eff46fe8141a366e77 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Tue, 22 Mar 2022 17:22:26 +0100 Subject: [PATCH 04/51] Describe surveys --- chapter/evaluation.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index ba1a32ef..1832b5b5 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -35,6 +35,31 @@ In particular, it details the survey ([@sec:qualitative]) which was conducted wi ### Qualitative +Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. +In order to get a clear picture of the users' needs and expectations independent of the experience, the survey consists of two parts -- a pre-evaluation and final survey. +The pre-evaluation introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. +In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability]. +The item for the "Hover" feature for instance reads as follows: + +> Editors can show some additional information about code under the cursor. +> The selection, kind, and formatting of that information is left to the Language Server. +> +> What kind of information do you expect to see when hovering code? Does the position or kind of element matter? If so, how? + +Items first introduce a feature on a high level followed by a request to the participant to describe their ideal implementation of the feature. + +For the final survey interested participants at Tweag were invited to a workshop introducing Nickel. +As a preparation, they were asked to install the LSP. +The workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS. +Following the workshop, participants filled in a second survey which focused on particular experiences of every single feature. +This evaluation focused on three main aspects. +First, the general experience without weighing in expectations. +The goal was to assess the extent to which the user was able to use the feature, since all usability metrics as discussed in [#sec:evaluation] depend on the respective feature being available in the first place. +In the same category are the items surveying the perceived performance and stability on a linear scale hinting at possible usability issues. +The scales span from "Very slow response" to "Very quick response" and "Never Crashed" to "Always Crashed" respectively. +As a second aspect, the user was asked to explicitly reflect on their expectations, particularly, how satisfied their expectations were. +In the final part participants could describe their perceived shortcomings or questions or remarks. + ### Quantitative ## Process From 4b437b041c957e50d11734744ddfbdf1c4459373 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Tue, 22 Mar 2022 22:42:44 +0100 Subject: [PATCH 05/51] Additions to quallitative methods --- chapter/evaluation.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 1832b5b5..5cb5239b 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -54,12 +54,16 @@ The workshop allowed participants unfamiliar with the Nickel language to use the Following the workshop, participants filled in a second survey which focused on particular experiences of every single feature. This evaluation focused on three main aspects. First, the general experience without weighing in expectations. -The goal was to assess the extent to which the user was able to use the feature, since all usability metrics as discussed in [#sec:evaluation] depend on the respective feature being available in the first place. +The goal was to assess the extent to which the users were able to use the feature, since all usability metrics as discussed in [#sec:metrics] depend on the respective feature being available in the first place. In the same category are the items surveying the perceived performance and stability on a linear scale hinting at possible usability issues. The scales span from "Very slow response" to "Very quick response" and "Never Crashed" to "Always Crashed" respectively. -As a second aspect, the user was asked to explicitly reflect on their expectations, particularly, how satisfied their expectations were. +Under the second aspect, the users were asked to explicitly reflect on their expectations in order to contribute to the usability metric. In the final part participants could describe their perceived shortcomings or questions or remarks. +Every feature was individually evaluated with two objectives in mind. +First, a clear idea of the perceived maturity of individual features can support guiding future development of the language server as badly scoring features could be improved first. +Then, asking participants to comment on features individually, could reveal general problems affecting multiple features by looking for similarities between responses for different features. + ### Quantitative ## Process From f1eba2047afefb987637a5996f84d2eb486b0c88 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Tue, 22 Mar 2022 22:43:44 +0100 Subject: [PATCH 06/51] Introduce additional headlines --- chapter/evaluation.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 5cb5239b..5253a87f 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -37,6 +37,9 @@ In particular, it details the survey ([@sec:qualitative]) which was conducted wi Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. In order to get a clear picture of the users' needs and expectations independent of the experience, the survey consists of two parts -- a pre-evaluation and final survey. + +#### Pre-Evaluation + The pre-evaluation introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability]. The item for the "Hover" feature for instance reads as follows: @@ -48,6 +51,8 @@ The item for the "Hover" feature for instance reads as follows: Items first introduce a feature on a high level followed by a request to the participant to describe their ideal implementation of the feature. +#### Experience Survey + For the final survey interested participants at Tweag were invited to a workshop introducing Nickel. As a preparation, they were asked to install the LSP. The workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS. From dfc201130db90fd4beec4438d1f5fc6334556bca Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Wed, 23 Mar 2022 12:08:33 +0100 Subject: [PATCH 07/51] Add considerations --- chapter/evaluation.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 5253a87f..58b2475e 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -31,6 +31,20 @@ The first section [@sec:methods] introduces methods employed for the evaluation. In particular, it details the survey ([@sec:qualitative]) which was conducted with the intent to gain qualitative opinions by users, as well as the tracing mechanism ([@sec:quantitative]) for factual quantitative insights. [Section @sec:results] summarises the results of these methods. +## Evaluation Considerations + +Different methods to evaluate the abovementioned metrics were considered. +While quantifying user experience yields statistically sound insights about the studied subject, it fails to point out specific user needs. +Therefore, this work employs a more subjective evaluation based on a standardized experience report focusing on individual features. +Contrasting the expectations with experiences allows the implementation more practically and guide the further development by highlighting well executed, immature or missing features. + +On the other hand it is more approachable to track runtime performance objectively through time measurements. +In fact, runtime behavior was a central assumption underlying the server architecture. +As discussed in [@sec:considerations] an eager processing model was chosen over lazy analysis. +It was hypothesized that analyzing Nickel source code eagerly allows to perform a single computation ahead of time instead of multiple partial ones. +This way both analyzing and querying information could be implemented more efficiently. +Moreover, it was assumed that eager computation would have a negligible impact on performance given the relatively small size of Nickel code bases in the current stage. + ## Methods ### Qualitative From 8407c90472bd238bccc09d3f221a3cdfa2f1a12f Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Wed, 23 Mar 2022 12:08:41 +0100 Subject: [PATCH 08/51] Add objectives --- chapter/evaluation.md | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 58b2475e..9d7322e5 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -47,6 +47,20 @@ Moreover, it was assumed that eager computation would have a negligible impact o ## Methods +### Objectives + +The qualitative evaluation was conducted with a strong focus on the first metric in [sec:metrics]. +Usability proves hard to quantify, as it is tightly connected to subjective perception, expectations and tolerances. +The structure of the survey is guided by two additional objectives, endorsing the separation of individual features. +On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. +This data is important as for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) as well as a generic basis for other projects. +On the other hand, all features are implemented on top of the same base (cf. [@sec:implementation]). +The survey should therefore show architectural deficits as well. + +The quantitative study in contrast focuses on measurable performance. +Similarly to the survey bases evaluation it should reveal insight for different features and tasks separately. +An additional objective, in line with the definition of the performance metric in [#sec:metrics], is to show the influence of growing file sizes in practice. + ### Qualitative Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. @@ -79,10 +93,6 @@ The scales span from "Very slow response" to "Very quick response" and "Never Cr Under the second aspect, the users were asked to explicitly reflect on their expectations in order to contribute to the usability metric. In the final part participants could describe their perceived shortcomings or questions or remarks. -Every feature was individually evaluated with two objectives in mind. -First, a clear idea of the perceived maturity of individual features can support guiding future development of the language server as badly scoring features could be improved first. -Then, asking participants to comment on features individually, could reveal general problems affecting multiple features by looking for similarities between responses for different features. - ### Quantitative ## Process From 78ea0754fbc6047a0ba56259d13fb08d2c40b7aa Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Wed, 23 Mar 2022 15:21:45 +0100 Subject: [PATCH 09/51] Add quantitative methods --- chapter/evaluation.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 9d7322e5..261579e2 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -95,6 +95,17 @@ In the final part participants could describe their perceived shortcomings or qu ### Quantitative +To address the performance metrics introduced in [@sec:metrics], a quantitative study was conducted, that analyzes latencies in the LSP-Server-Client communication. +The study complements the subjective reports collected through the survey (cf. [@sec:experience-survey]). +The evaluation is possible due to the inclusion of a custom tracing module in NLS. +The tracing module is used to create a report for every request, containing the processing time and a measure of the size of the analyzed document. +If enabled, NLS records an incoming request with an identifier and time stamp. +While processing the request, it adds additional data to the record, i.e., the type of request, the size of the linearization (cf. [@sec:linearization]) or processed file and possible errors that occured during the process. +Once the server replies to a request, it records the total response time and writes the entire record to an external file. + +The tracing approach narrows the focus of the performance evaluation to the time spent by NLS. +Consequently, the performance evaluation is independent of the LSP client (editor) that is used, which could introduce a bias in the results. + ## Process ## Results From 82bf80e7790787bd900af598fac75bcbaaf158a9 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 2 Apr 2022 14:32:02 +0200 Subject: [PATCH 10/51] Typos and small wording changes Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 261579e2..13c11930 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -64,7 +64,7 @@ An additional objective, in line with the definition of the performance metric i ### Qualitative Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. -In order to get a clear picture of the users' needs and expectations independent of the experience, the survey consists of two parts -- a pre-evaluation and final survey. +In order to get a clear picture of the users' needs and expectations independently of the experience, the survey consists of two parts -- a pre-evaluation and final survey. #### Pre-Evaluation @@ -77,11 +77,11 @@ The item for the "Hover" feature for instance reads as follows: > > What kind of information do you expect to see when hovering code? Does the position or kind of element matter? If so, how? -Items first introduce a feature on a high level followed by a request to the participant to describe their ideal implementation of the feature. +Items first introduce a feature on a high level followed by asking the participant to describe their ideal implementation of the feature. #### Experience Survey -For the final survey interested participants at Tweag were invited to a workshop introducing Nickel. +For the final survey, interested participants at Tweag were invited to a workshop introducing Nickel. As a preparation, they were asked to install the LSP. The workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS. Following the workshop, participants filled in a second survey which focused on particular experiences of every single feature. From 64824f535232834fbb5459b00f0d342432a9dcec Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 2 Apr 2022 14:33:00 +0200 Subject: [PATCH 11/51] Add more detail about lazy processing --- chapter/evaluation.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 13c11930..6b317e64 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -40,10 +40,16 @@ Contrasting the expectations with experiences allows the implementation more pra On the other hand it is more approachable to track runtime performance objectively through time measurements. In fact, runtime behavior was a central assumption underlying the server architecture. -As discussed in [@sec:considerations] an eager processing model was chosen over lazy analysis. -It was hypothesized that analyzing Nickel source code eagerly allows to perform a single computation ahead of time instead of multiple partial ones. -This way both analyzing and querying information could be implemented more efficiently. -Moreover, it was assumed that eager computation would have a negligible impact on performance given the relatively small size of Nickel code bases in the current stage. +As discussed in [@sec:considerations] NLS follows an eager, non-incremental processing model. +While incremental implementations are more efficient, as they do not require entire files to be updated, they require explicit language support, i.e., an incremental parser and analysis. +Implementing these functions exceeds the scope of this work. +Choosing a non-incremental model on the other hand allowed to reuse entire modules of the Nickel language. +The analysis itself can be implemented both in a lazy or eager fashion. +Lazy analysis implies that the majority of information is resolved only upon request instead of ahead of time. +That is, an LSP request is delayed by the analysis before a response is made. +Some lazy models also support memoizing requests, avoiding to recompute previously requested values. +However, eager approaches preprocess the file ahead of time and store the analysis results such that requests can be handled mostly through value lookups. +To fit Nickels' type-checking model and considering that in a typical Nickel workflow, the analysis should still be reasonably efficient, the eager processing model was chosen over a lazy one. ## Methods From 5fa35379068338ecb0b1bc81079ec0f4ffff4558 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 2 Apr 2022 14:33:44 +0200 Subject: [PATCH 12/51] Add motivation for empirical study Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 6b317e64..6ff7f970 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -64,7 +64,8 @@ On the other hand, all features are implemented on top of the same base (cf. [@s The survey should therefore show architectural deficits as well. The quantitative study in contrast focuses on measurable performance. -Similarly to the survey bases evaluation it should reveal insight for different features and tasks separately. +Similarly to the survey based evaluation it should reveal insight for different features and tasks separately. +Yet, the focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. An additional objective, in line with the definition of the performance metric in [#sec:metrics], is to show the influence of growing file sizes in practice. ### Qualitative From 9e620e522baf8fd9cfe86558965e2a24343c9493 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 2 Apr 2022 14:34:11 +0200 Subject: [PATCH 13/51] List capabilities again Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 6ff7f970..ac487cde 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -76,7 +76,20 @@ In order to get a clear picture of the users' needs and expectations independent #### Pre-Evaluation The pre-evaluation introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. -In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability]. +In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability], namely: + +1. Code completion + Suggest identifiers, methods or values at the cursor position. +2. Hover information + Present additional information about an item under the cursor, i.e., types, contracts and documentation. +3. Jump to definition + Find and jump to the definition of a local variable or identifier. +4. Find references + List all usages of a defined variable. +5. Workspace symbols + List all variables in a workspace or document. +6. Diagnostics + Analyze source code, i.e., parse and type check and notify the LSP Client if errors arise. The item for the "Hover" feature for instance reads as follows: > Editors can show some additional information about code under the cursor. From c448a2f68c5bc15fb33d29b6bd7f24568c6f23c8 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 2 Apr 2022 14:47:09 +0200 Subject: [PATCH 14/51] Elaborate on client introduced biases Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index ac487cde..4df7ad34 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -124,7 +124,9 @@ While processing the request, it adds additional data to the record, i.e., the t Once the server replies to a request, it records the total response time and writes the entire record to an external file. The tracing approach narrows the focus of the performance evaluation to the time spent by NLS. -Consequently, the performance evaluation is independent of the LSP client (editor) that is used, which could introduce a bias in the results. +Consequently, the performance evaluation is independent of the LSP client (editor) that is used. +Unlike differences in hardware which affects all operations similarly, LSP clients may implement different behaviors that may cause editor specific biases. +For instance, the LSP does not specify the frequency at which file changes are detected, which in turn can lead to request queuing depending on the editor used. ## Process From 7b6e89efa9000da1a0d4425ab542c1dc40ce750c Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Mon, 4 Apr 2022 09:59:15 +0200 Subject: [PATCH 15/51] Clarify evaluation outcome Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 4df7ad34..1a39a595 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -61,7 +61,8 @@ The structure of the survey is guided by two additional objectives, endorsing th On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. This data is important as for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) as well as a generic basis for other projects. On the other hand, all features are implemented on top of the same base (cf. [@sec:implementation]). -The survey should therefore show architectural deficits as well. +The survey should therefore also uncover problems with the underlying architecture of NLS. +This includes NLS language abstractions (cf. [@sec:linearization]) and functions referenced from the Nickel core. The quantitative study in contrast focuses on measurable performance. Similarly to the survey based evaluation it should reveal insight for different features and tasks separately. From fbe5aa7a50f54b21e5785d598a63c6a5d17d1d27 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Mon, 4 Apr 2022 09:59:49 +0200 Subject: [PATCH 16/51] Clarify considerations Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 1a39a595..102f7bd2 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -36,7 +36,8 @@ In particular, it details the survey ([@sec:qualitative]) which was conducted wi Different methods to evaluate the abovementioned metrics were considered. While quantifying user experience yields statistically sound insights about the studied subject, it fails to point out specific user needs. Therefore, this work employs a more subjective evaluation based on a standardized experience report focusing on individual features. -Contrasting the expectations with experiences allows the implementation more practically and guide the further development by highlighting well executed, immature or missing features. +Contrasting the expectations highlights well executed, immature or missing features. +This allows more actionable planning of the future development to meet user expectations. On the other hand it is more approachable to track runtime performance objectively through time measurements. In fact, runtime behavior was a central assumption underlying the server architecture. From 3b88f4d501e31154420017e18532cdfd81db9eb1 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Tue, 5 Apr 2022 10:51:16 +0200 Subject: [PATCH 17/51] Clear up experience survey --- chapter/evaluation.md | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 102f7bd2..98383e95 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -104,16 +104,35 @@ Items first introduce a feature on a high level followed by asking the participa #### Experience Survey For the final survey, interested participants at Tweag were invited to a workshop introducing Nickel. -As a preparation, they were asked to install the LSP. -The workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS. -Following the workshop, participants filled in a second survey which focused on particular experiences of every single feature. -This evaluation focused on three main aspects. -First, the general experience without weighing in expectations. -The goal was to assess the extent to which the users were able to use the feature, since all usability metrics as discussed in [#sec:metrics] depend on the respective feature being available in the first place. -In the same category are the items surveying the perceived performance and stability on a linear scale hinting at possible usability issues. -The scales span from "Very slow response" to "Very quick response" and "Never Crashed" to "Always Crashed" respectively. -Under the second aspect, the users were asked to explicitly reflect on their expectations in order to contribute to the usability metric. -In the final part participants could describe their perceived shortcomings or questions or remarks. + +The workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS in a more natural setting. +Following the workshop, participants filled in a second survey which focused on three main aspects: + +First, the general experience of every individual feature. +Without weighing their in expectations, the participants were asked to give a short statement of their experience. +The item consists of a loose list of statements with the aim to achieve a rough quality classification: + +> - [ ] The feature did not work at all +> - [ ] The feature behaved unexpectedly +> - [ ] The feature did not work in all cases +> - [ ] The feature worked without an issue +> - [ ] Other + +The following items survey the perceived performance and stability. +The items were implemented as linear scales that span from "Very slow response" to "Very quick response" and "Never Crashed" to "Always Crashed" respectively. +The second category asked participants to explicitly reflect on their expectations: + +> ◯ The feature did not work at all\ +> ◯ The feature behaved unexpectedly\ +> ◯ The feature did not work in all cases\ +> ◯ The feature worked without an issue +> ◯ Other + +In the final part participants could elaborate on their answers. + +> Why were they (not) satisfied?\ +> What is missing, what did they not expect? + ### Quantitative From 20ec7b79b51d80d5b10693c492bfddb85d8e0a59 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 16 Apr 2022 23:50:33 +0200 Subject: [PATCH 18/51] Review suggestions fixing wordings and typos Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 98383e95..c0e89115 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -9,14 +9,14 @@ Usability ~ What is the real-world value of the language server? ~ Does it improve the experience of developers using Nickel? NLS offers several features, that are intended to help developers using the language. - The evaluation should assess whether developers experience any help due to the use of the server. - ~ Does NLS meet its users' expectations in terms of completeness and correctness and behavior? - Being marketed as a Language Server, invokes certain expectations due to previous experience with other languages and language servers. + The evaluation should assess whether the server does improve the experience of developers. + ~ Does NLS meet its users' expectations in terms of completeness, correctness and behavior? + Labeling NLS as a Language Server, invokes certain expectations built up by previous experience with other languages and language servers. Here, the evaluation should show whether NLS lives up to the expectations of its users. Performance ~ What are the typical latencies of standard tasks? - In this context *latency* refers to the time it takes from issuing an LSP command to return of the reply by the server. + In this context latency refers to the time it takes from issuing an LSP command to the reply of the server. The JSON-RPC protocol used by the LSP is synchronous, i.e. requires the server to return results of commands in the order it received them. Since most commands are sent implicitly, a quick processing is imperative to avoid commands queuing up. ~ Can single performance bottlenecks be identified? @@ -60,14 +60,14 @@ The qualitative evaluation was conducted with a strong focus on the first metric Usability proves hard to quantify, as it is tightly connected to subjective perception, expectations and tolerances. The structure of the survey is guided by two additional objectives, endorsing the separation of individual features. On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. -This data is important as for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) as well as a generic basis for other projects. +This data is important for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) and a generic basis for other projects. On the other hand, all features are implemented on top of the same base (cf. [@sec:implementation]). The survey should therefore also uncover problems with the underlying architecture of NLS. This includes NLS language abstractions (cf. [@sec:linearization]) and functions referenced from the Nickel core. The quantitative study in contrast focuses on measurable performance. -Similarly to the survey based evaluation it should reveal insight for different features and tasks separately. -Yet, the focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. +Similarly to the survey-based evaluation, the quantitative study should reveal insight for different features and tasks separately. +The focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. An additional objective, in line with the definition of the performance metric in [#sec:metrics], is to show the influence of growing file sizes in practice. ### Qualitative @@ -146,7 +146,7 @@ Once the server replies to a request, it records the total response time and wri The tracing approach narrows the focus of the performance evaluation to the time spent by NLS. Consequently, the performance evaluation is independent of the LSP client (editor) that is used. -Unlike differences in hardware which affects all operations similarly, LSP clients may implement different behaviors that may cause editor specific biases. +Unlike differences in hardware which affects all operations similarly, LSP clients may implement different behaviors that may cause editor-specific biases. For instance, the LSP does not specify the frequency at which file changes are detected, which in turn can lead to request queuing depending on the editor used. ## Process From 27e0051edb5010ed0a22bdf804ac3d002fdeee67 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 16 Apr 2022 23:51:17 +0200 Subject: [PATCH 19/51] Make second qualitative objective more clear Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index c0e89115..c36c4359 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -61,9 +61,9 @@ Usability proves hard to quantify, as it is tightly connected to subjective perc The structure of the survey is guided by two additional objectives, endorsing the separation of individual features. On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. This data is important for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) and a generic basis for other projects. -On the other hand, all features are implemented on top of the same base (cf. [@sec:implementation]). -The survey should therefore also uncover problems with the underlying architecture of NLS. -This includes NLS language abstractions (cf. [@sec:linearization]) and functions referenced from the Nickel core. +On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:implementation), the implementation of this central structure is an essential consideration.``` +The survey should therefore also uncover apparent problems with this architecture. +This entails the use of language abstractions (cf. [@sec:linearization]) and the integration of Nickel core functions such as the type checking procedure. The quantitative study in contrast focuses on measurable performance. Similarly to the survey-based evaluation, the quantitative study should reveal insight for different features and tasks separately. From e3e73fb0d2269e22c1632853e233b7de6da784fc Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sat, 16 Apr 2022 23:53:02 +0200 Subject: [PATCH 20/51] Remove redundant sentence --- chapter/evaluation.md | 1 - 1 file changed, 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index c36c4359..a0df76cc 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -68,7 +68,6 @@ This entails the use of language abstractions (cf. [@sec:linearization]) and the The quantitative study in contrast focuses on measurable performance. Similarly to the survey-based evaluation, the quantitative study should reveal insight for different features and tasks separately. The focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. -An additional objective, in line with the definition of the performance metric in [#sec:metrics], is to show the influence of growing file sizes in practice. ### Qualitative From 0c52b03c1f9c3a32f94ac5e1d310150c172bb194 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 8 May 2022 17:49:14 +0200 Subject: [PATCH 21/51] Fix features and Section titles --- chapter/evaluation.md | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index a0df76cc..b4107f08 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -61,7 +61,7 @@ Usability proves hard to quantify, as it is tightly connected to subjective perc The structure of the survey is guided by two additional objectives, endorsing the separation of individual features. On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. This data is important for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) and a generic basis for other projects. -On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:implementation), the implementation of this central structure is an essential consideration.``` +On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:implementation), the implementation of this central structure is an essential consideration. The survey should therefore also uncover apparent problems with this architecture. This entails the use of language abstractions (cf. [@sec:linearization]) and the integration of Nickel core functions such as the type checking procedure. @@ -69,16 +69,21 @@ The quantitative study in contrast focuses on measurable performance. Similarly to the survey-based evaluation, the quantitative study should reveal insight for different features and tasks separately. The focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. -### Qualitative +### Qualitative Evaluation Setup Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. In order to get a clear picture of the users' needs and expectations independently of the experience, the survey consists of two parts -- a pre-evaluation and final survey. #### Pre-Evaluation + +##### Expected features + The pre-evaluation introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability], namely: +##### Expected behaviour + 1. Code completion Suggest identifiers, methods or values at the cursor position. 2. Hover information @@ -122,9 +127,10 @@ The items were implemented as linear scales that span from "Very slow response" The second category asked participants to explicitly reflect on their expectations: > ◯ The feature did not work at all\ -> ◯ The feature behaved unexpectedly\ -> ◯ The feature did not work in all cases\ -> ◯ The feature worked without an issue +> ◯ Little of my expectation was met\ +> ◯ Some expectations were mete, enough to keep using NLS for this feature\ +> ◯ Most to all expectations were met +> ◯ NLS surpassed the expectations > ◯ Other In the final part participants could elaborate on their answers. From 437958f659fc4ec553ce8d1047e39b011d0fe403 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 8 May 2022 11:27:49 +0200 Subject: [PATCH 22/51] Pre-Evaluation results of main features --- chapter/evaluation.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index b4107f08..0d246535 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -158,6 +158,44 @@ For instance, the LSP does not specify the frequency at which file changes are d ## Results +### Process ### Qualitative + +As outlined in [#sec:qualitative-study-outline], the qualitative study consists of two parts conducted before and after an introductory workshop. +The pre-evaluation aimed to catch the users's expected features and behaviours, while the main survey asked users about their concrete experiences with the NLS. + +#### Pre-Evaluation + +Responding to the first point (c.f. [#sec:expected-features]), the participants unanimously identified four of the six foundational language server capabilities that guided the implementation of the project (c.f. [@sec:commands-and-notifications, @langserverorg] ); + +Type-information on hover + ~ was named almost uniformly. + The participants showed a special interest in this feature describing specific behaviours. + The desired information exposed by this feature are value types including applied contracts and documentation as well as function signatures. + ~ When asked about the hover LSP method in particular, participants name additional function documentation, default values and the visualization of scopes as an additional features. + +Diagnostics + ~ are widely understood as an important feature. + Participant had very particular opinions about the behavior and detail of diagnostics including error message at the correct location in the code signaling syntax errors or possibly evaluation errors and contract breaches. + In either case the diagnostic should be produced "On-the-fly" while typing or upon saving the document. + ~ When asked about the diagnostics feature of language servers directly, the answers corroborated these initial opinions. + In addition some participants named code linting, i.e. warnings about code style, unused variables, deprecated code and undocumented elements, as well as structural analysis hints as possible features. + Structural analysis was imagined to go that far as being able to "suggest how to fix" mistakes in the code. + +Code Completion + ~ was equally name in all but one response. + It was described as a way to chose from possible completion candidates + of options. + The anwers included aspirational vague descriptions of such a feature including the a way to automatically prioritize specific items. + ~ Responding about the concrete LSP feature, participants listed variables, record fields, types, functions and function argument candiates as possible completion candidates. + Moreover, some suggested the inclusion of the completion context to guide priorization as well as auto-generated contract and function skeletons. + +Jump-to-Definition + ~ was named significantly often. + ~ The specific feature survey revealed the exoected behaviour in more detail; + In general, the participants expect the feature to work with any kind of reference, i.e., variable usages, function calls, function arguments and type annotations. + Record fields ale equally desired although the ability to define self referencing records was pointed out as a challenge. + However, subjects expect statically defined nested fields to point to the correct respective definition. + ### Quantitative From 5263dd61285e75502bb7cf4e155a0dea3b7b5fd2 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 8 May 2022 14:19:40 +0200 Subject: [PATCH 23/51] Mention the other named features --- chapter/evaluation.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 0d246535..6e1143cf 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -198,4 +198,12 @@ Jump-to-Definition Record fields ale equally desired although the ability to define self referencing records was pointed out as a challenge. However, subjects expect statically defined nested fields to point to the correct respective definition. +The other two features Find-References and Workspace/Document Symbols on the contrary were sparingly commented. +Participands noted that they did not use these capabilities. +The features were however well understood, as shown by some responsess naming very particular distinctions of symbol types. + +Beyond features that were explicitly targeted by this work, syntax highlighting and code formatting as well as error tolerance were named as further desireable features of a language server. +Error tolerance was detailed as the capability of the language server to continue processing and delivering analysis of invalid sources restricting the computation to the correct parts of the program. + + ### Quantitative From b87eed4c1d1b89fb167c49b842624285176ef054 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 8 May 2022 17:40:54 +0200 Subject: [PATCH 24/51] Add experince survey results --- chapter/evaluation.md | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 6e1143cf..36979ed7 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -206,4 +206,29 @@ Beyond features that were explicitly targeted by this work, syntax highlighting Error tolerance was detailed as the capability of the language server to continue processing and delivering analysis of invalid sources restricting the computation to the correct parts of the program. +#### Experience Survey + +##### Results + +The above figures show the turnout of three items from the survey for each of the relevant features. +Neither of them shows clear trends with positive and negative reults distributed almost evenly between positive and negative sentiments. + +The first graph ([@fig:results-comp-experience]) represents the participants' general experience with the relevant features. +It shows that each feature worked without issue in at least one instance. +Yet, three features were reported to not work at all and no feature left the users unsurprised. +Participant found the hover and diagnostic features to behave particularly unexpectedly. + +For the second item of each feature, the survey asked the subject to rate the quality of the language server based on their expectations. +Apart from the same three occasions in which a feature did not work for one participant, the majority of responses show that NLS met its user's expectations at least partially. +The results are however highly polarized as the Jump-to-Definition and Hover features demonstrate; Each received equally many votes for being inapt and fully able to hold up to the participants expectations at the same time. +Other features were left with with a nuniformly distributed assessment (e.g. Completion and Find-References). +The clearest result was achieved by the Diagnostics feature, which received a slight but uncontended positive sentiment. + +Asking about the general satisfaction with each feature, results in the same mixed answers. +While a slight majority of responses falls into the upper half of the possible spectrum, two features (of the three that have previously been reported without function) were given the lowest possible rating. + +##### Comments + + + ### Quantitative From b8eb22b0a395b7904c9a62bb5f1ff2db298174f6 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 13 May 2022 13:23:43 +0200 Subject: [PATCH 25/51] Fix typos --- chapter/evaluation.md | 7 ++++--- log_analysis/flake.nix | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 log_analysis/flake.nix diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 36979ed7..f25862e9 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -187,12 +187,12 @@ Code Completion ~ was equally name in all but one response. It was described as a way to chose from possible completion candidates of options. - The anwers included aspirational vague descriptions of such a feature including the a way to automatically prioritize specific items. + The answers included aspirational vague descriptions of such a feature including the a way to automatically prioritize specific items. ~ Responding about the concrete LSP feature, participants listed variables, record fields, types, functions and function argument candiates as possible completion candidates. Moreover, some suggested the inclusion of the completion context to guide priorization as well as auto-generated contract and function skeletons. Jump-to-Definition - ~ was named significantly often. + ~ was included in three fourth of responses. ~ The specific feature survey revealed the exoected behaviour in more detail; In general, the participants expect the feature to work with any kind of reference, i.e., variable usages, function calls, function arguments and type annotations. Record fields ale equally desired although the ability to define self referencing records was pointed out as a challenge. @@ -218,7 +218,8 @@ It shows that each feature worked without issue in at least one instance. Yet, three features were reported to not work at all and no feature left the users unsurprised. Participant found the hover and diagnostic features to behave particularly unexpectedly. -For the second item of each feature, the survey asked the subject to rate the quality of the language server based on their expectations. +For the second item of each feature, the survey asked the subjects to rate the quality of the language server based on their expectations. +[Figure @fig:results-comp-expectations] summarizes the results. Apart from the same three occasions in which a feature did not work for one participant, the majority of responses show that NLS met its user's expectations at least partially. The results are however highly polarized as the Jump-to-Definition and Hover features demonstrate; Each received equally many votes for being inapt and fully able to hold up to the participants expectations at the same time. Other features were left with with a nuniformly distributed assessment (e.g. Completion and Find-References). diff --git a/log_analysis/flake.nix b/log_analysis/flake.nix new file mode 100644 index 00000000..86613aa6 --- /dev/null +++ b/log_analysis/flake.nix @@ -0,0 +1,36 @@ +{ + inputs.parent.url = "../."; + + outputs = { parent, ... }: parent.inputs.flake-utils.lib.eachDefaultSystem (system: + let + + pkgs = parent.inputs.nixpkgs.legacyPackages.${system}; + jupyter = pkgs.python3.withPackages (ps: with ps; [ + autopep8 + + notebook + + numpy + scipy + pandas + matplotlib seaborn plotly + ]); + + in + { + devShells.default = jupyter.env.overrideAttrs (old: { + shellHook= '' + echo + echo ">>> INFO >>>" + echo + echo "Using python installation at: $(which python)" + echo + echo "<<< INFO <<<" + echo + ''; + + + }); + }); + +} From 5779d4d4c1930da5deedbb9bdc8e225735c32165 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 13 May 2022 13:23:56 +0200 Subject: [PATCH 26/51] Summarize comments --- chapter/evaluation.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index f25862e9..30ff1b0b 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -230,6 +230,38 @@ While a slight majority of responses falls into the upper half of the possible s ##### Comments +###### Hover + +As apparent in ([@fig:results-comp-experience]), most participants experienced unexpected behavior by the LSP when using the hover functionality. +In the comments, extraneous debug output and incorrect displaying of the output by the IDE are pointed out as concrete examples. +However one answer suggests that the feature was working with "usually useful" output. + +###### Diagnostics + +While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], all participants marked that those did not deter from keep using NLS for it as displayed in [@fig:results-comp-expectations]. +In the comments some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues while others mentioned "unclear messages". +However, it was pointed out that it contracts were not checked by the Language Server. +Moreover, a performance issue was brought up noting that in some situations NLS "queues a lot of work and does not respond". + +###### Code Completion + +Comments about the Code Completion feature were unanimously critical. +Some participants noted the little gained "value over the token based completion built into the editor" while others specifically pointed at "missing type information and docs". +Additionally record field completion was found to be missing, yet highly valued. + +##### Document Navigation + +Results and comments about the Go-To-Definition and Find-Referneces were polarized. +On the one hand users reported no issues while others experienced unexpected behavior or were unabke to use the feature at all (cf. [@fig:results-comp-experience]). +Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailabilty. +More practically, cross file navigation was named an important missing feature. + +###### General Performance + +The responses to this item suggest that NLS' perfomance is largely dependent on its usage. +On unmodified files queries were reported to evaluate "instantaniously". +However modifying files caused that "modifications stack up" causing high CPU usage and generally "very slow" responses. +Others pointed out that documentation was slow to resolve while the server itself was "generally fast". ### Quantitative From ff920b45d1a13ad473d56218fa4bcfd4d5ee653e Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 15 May 2022 19:16:58 +0200 Subject: [PATCH 27/51] Flatten experience survey section --- chapter/evaluation.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 30ff1b0b..515f8dbd 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -208,16 +208,17 @@ Error tolerance was detailed as the capability of the language server to continu #### Experience Survey -##### Results The above figures show the turnout of three items from the survey for each of the relevant features. Neither of them shows clear trends with positive and negative reults distributed almost evenly between positive and negative sentiments. + The first graph ([@fig:results-comp-experience]) represents the participants' general experience with the relevant features. It shows that each feature worked without issue in at least one instance. Yet, three features were reported to not work at all and no feature left the users unsurprised. Participant found the hover and diagnostic features to behave particularly unexpectedly. + For the second item of each feature, the survey asked the subjects to rate the quality of the language server based on their expectations. [Figure @fig:results-comp-expectations] summarizes the results. Apart from the same three occasions in which a feature did not work for one participant, the majority of responses show that NLS met its user's expectations at least partially. @@ -225,38 +226,36 @@ The results are however highly polarized as the Jump-to-Definition and Hover fea Other features were left with with a nuniformly distributed assessment (e.g. Completion and Find-References). The clearest result was achieved by the Diagnostics feature, which received a slight but uncontended positive sentiment. -Asking about the general satisfaction with each feature, results in the same mixed answers. +Asking about the general satisfaction with each feature, results in the same mixed answers as seen in [@fig:results-comp-satisfaction]. While a slight majority of responses falls into the upper half of the possible spectrum, two features (of the three that have previously been reported without function) were given the lowest possible rating. -##### Comments - -###### Hover +#### Hover As apparent in ([@fig:results-comp-experience]), most participants experienced unexpected behavior by the LSP when using the hover functionality. In the comments, extraneous debug output and incorrect displaying of the output by the IDE are pointed out as concrete examples. However one answer suggests that the feature was working with "usually useful" output. -###### Diagnostics +#### Diagnostics While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], all participants marked that those did not deter from keep using NLS for it as displayed in [@fig:results-comp-expectations]. In the comments some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues while others mentioned "unclear messages". However, it was pointed out that it contracts were not checked by the Language Server. Moreover, a performance issue was brought up noting that in some situations NLS "queues a lot of work and does not respond". -###### Code Completion +#### Code Completion Comments about the Code Completion feature were unanimously critical. Some participants noted the little gained "value over the token based completion built into the editor" while others specifically pointed at "missing type information and docs". Additionally record field completion was found to be missing, yet highly valued. -##### Document Navigation +#### Document Navigation Results and comments about the Go-To-Definition and Find-Referneces were polarized. On the one hand users reported no issues while others experienced unexpected behavior or were unabke to use the feature at all (cf. [@fig:results-comp-experience]). Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailabilty. More practically, cross file navigation was named an important missing feature. -###### General Performance +#### General Performance The responses to this item suggest that NLS' perfomance is largely dependent on its usage. On unmodified files queries were reported to evaluate "instantaniously". From ef1f9ce2ba706d1a973f419d99afd014deac31bd Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 15 May 2022 19:17:21 +0200 Subject: [PATCH 28/51] Add quantitative results --- chapter/evaluation.md | 68 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 515f8dbd..61711dbd 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -264,3 +264,71 @@ Others pointed out that documentation was slow to resolve while the server itsel ### Quantitative + +The quantitative evaluation focuses on the performance characteristics of NLS. +As described in [@sec:eval-methods-quantitative] a tracing module was embedded into the NLS binary which recorded the runtime together with the size of the analyzed data, i.e., the number of linearization items [@sec:linearization] or size of the analyzed file. + +#### Dataset + +The underlying data set consists of 16760 unique trace records. +Since the `textDocument/didOpen` method is executed on every update of the source, it greatly outnumbers the other events. +The final distrubution of methods traced is: + +| Method | count | linearization based | +| ------------------------- | ----- | ------------------- | +| `textDocument/didOpen` | 13436 | no | +| `textDocument/completion` | 2981 | yes | +| `textDocument/hover` | 227 | yes | +| `textDocument/definition` | 68 | yes | +| `textDocument/references` | 49 | yes | + +: Number of traces per LSP method + +![Distribution of linearization based LSP requests](log_analysis/figures/distribution-by-lin-size.svg){#fig:distribution-by-lin-size} + +![Distribution of file analysis requests](log_analysis/figures/distribution-by-file-size.svg){#fig:distribution-by-file-size} + + +[Figures @fig:distribution-by-lin-size, @fig:distribution-by-file-size] break up these numbers by method and linearization size or file size respectively. +The first figure shows a peak number of traces for completion events between $0$ to $1$ linearization items as well as local maxima around a linearization size of $20$ to $30$ and sustained usage of completion requests in files of $90-400$ items. +Similar to the completion requests (but well outnumbered in total counts), other other methods were used mainly in the range between $200$ and $400$ linearization items. +A visualization of the Empirical Cumulative Distribution Function (ECFD) ([@fig:ecdf-distribution-by-lin-size] corroborates these findings. +Moreover, it shows an additional hike of Jump-to-Definition and Find-References calls at on files with around 1500 linearization items. +The findings for linearization based methods line up with those depicting linearization events (identified as `textDocument/didOpen`). +An initial peak referring to rather small input files between $300$ and $400$ bytes in size is followed by a sustained usage of the NLS on files with $2$ to $6$ kiloBytes of content topped with a final application on $35$ kiloByte large data. + +#### Big Picture Latencies + +![Statistical runtime of different LSP methods](log_analysis/figures/boxplot-latencies.svg){#fig:boxplot-latencies width=\textwidth} + +Comparing the runtime of the individual methods alone in [@fig:boxplot-latencies], reveals three key findings. +First, all linearization based methods exhibit a sub-millisecond latency in at least $95%$ of all invocations and median response times fo less than $100µs$ +However, maximum latencies of completion invocations reached tens of milliseconds and in one recorded case about $300ms$. +Finally, document linearization as associated with the `textDocument/didOpen` method shows a great range with maxima of $1.5 * 10^5µs$ (about $2.5$ minutes) and a generally greater inter quartile range spanning more than tow orders of magnitude. + +#### Special cases + +
+![Runtime latencies of completion requests at differnet linearization sizes](log_analysis/figures/correlation-completions.svg){#fig:correlation-completions width=50%} +![Runtime latencies of hover requests at differnet linearization sizes](log_analysis/figures/correlation-hovers.svg){#fig:correlation-hovers width=50%} + +![Runtime latencies of find-references requests at differnet linearization sizes](log_analysis/figures/correlation-references.svg){#fig:correlation-references width=50%} +![Runtime latencies of jump-to-definition requests at differnet linearization sizes](log_analysis/figures/correlation-definitions.svg){#fig:correlation-definition width=50%} + + +Runtime latencies of different linearization based methods +
+ +![Runtime latencies of file update handlings at different file sizes](log_analysis/figures/correlation-opens.svg){#fig:correlation-opens width=50%} + + +Setting the runtime of completion requests in relation to the linearization size on which the command was performed, shows no clear correlation between the dimensions. +In fact the correlation coefficient between both variables measures $0.01617$ on a linear scale and $0.26$ on a $\log_{10}\log_{10}$ scale. +Instead, vertical colums stand out in the correlation graph [@fig:correlation-completions]. +The height of these colums varies from one to five orders of magnitude. +Considering the item density shows that especially high columns form whenever the server receives a higher load of requests. +Additionally color coding the individual requests by time reveils that the trace points of each column were recorded at a short time interval. +Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. +In case of the `didOpen` method columns are clearly visible too. +However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. + From 112d3bc42048937266dbd523d3a143e32deb2a61 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 15 May 2022 19:18:38 +0200 Subject: [PATCH 29/51] Add survey data --- log_analysis/lsp-trace.log | 16762 +++++++++++++++++++++++++++++++++++ log_analysis/survey.csv | 5 + 2 files changed, 16767 insertions(+) create mode 100644 log_analysis/lsp-trace.log create mode 100644 log_analysis/survey.csv diff --git a/log_analysis/lsp-trace.log b/log_analysis/lsp-trace.log new file mode 100644 index 00000000..9a975b7c --- /dev/null +++ b/log_analysis/lsp-trace.log @@ -0,0 +1,16762 @@ +duration_micros,with_error,method,linearization_size,file_size +196036,false,textDocument/didOpen,,3956 +74,false,textDocument/definition,89, +185,false,textDocument/hover,89, +171,false,textDocument/hover,89, +101,false,textDocument/hover,89, +15,false,textDocument/definition,89, +137,false,textDocument/hover,89, +49,false,textDocument/references,89, +25,false,textDocument/references,89, +189,false,textDocument/hover,89, +91328,false,textDocument/didOpen,,928 +62910,false,textDocument/didOpen,,1808 +54764,false,textDocument/didOpen,,133 +730,false,textDocument/didOpen,,189 +40,true,textDocument/hover,, +18635,false,textDocument/didOpen,,190 +35769,false,textDocument/didOpen,,191 +49472,false,textDocument/didOpen,,133 +142,false,textDocument/didOpen,,167 +29916,false,textDocument/didOpen,,168 +30169,false,textDocument/didOpen,,169 +60872,false,textDocument/didOpen,,242 +80188,false,textDocument/didOpen,,646 +63409,false,textDocument/didOpen,,191 +66291,false,textDocument/didOpen,,191 +4406796,false,textDocument/didOpen,,33655 +101139,false,textDocument/didOpen,,4798 +104293,false,textDocument/didOpen,,4515 +74356,false,textDocument/didOpen,,4517 +81,false,textDocument/completion,309, +91874,false,textDocument/didOpen,,4520 +71,false,textDocument/completion,309, +73235,false,textDocument/didOpen,,4516 +98,false,textDocument/completion,309, +70676,false,textDocument/didOpen,,4519 +849,false,textDocument/didOpen,,4519 +401,false,textDocument/didOpen,,4520 +73,false,textDocument/completion,309, +502,false,textDocument/didOpen,,4524 +1082,false,textDocument/didOpen,,4523 +423,false,textDocument/didOpen,,4523 +95,false,textDocument/completion,309, +108454,false,textDocument/didOpen,,4527 +102401,false,textDocument/didOpen,,4522 +1714,false,textDocument/didOpen,,4518 +160642,false,textDocument/didOpen,,4519 +151387,false,textDocument/didOpen,,4515 +169733,false,textDocument/didOpen,,4516 +180345,false,textDocument/didOpen,,4517 +109,false,textDocument/completion,303, +166748,false,textDocument/didOpen,,4520 +101,false,textDocument/completion,303, +188894,false,textDocument/didOpen,,4522 +99,false,textDocument/completion,303, +268540,false,textDocument/didOpen,,4523 +240740,false,textDocument/didOpen,,4524 +37,false,textDocument/hover,303, +104,false,textDocument/hover,303, +264604,false,textDocument/didOpen,,4525 +249607,false,textDocument/didOpen,,4526 +99,false,textDocument/completion,289, +215026,false,textDocument/didOpen,,4531 +259943,false,textDocument/didOpen,,4532 +273060,false,textDocument/didOpen,,4533 +328277,false,textDocument/didOpen,,4524 +347730,false,textDocument/didOpen,,4525 +302344,false,textDocument/didOpen,,4526 +115,false,textDocument/completion,289, +276612,false,textDocument/didOpen,,4531 +352304,false,textDocument/didOpen,,4532 +293373,false,textDocument/didOpen,,4533 +395851,false,textDocument/didOpen,,4534 +297811,false,textDocument/didOpen,,4535 +101,false,textDocument/completion,289, +384807,false,textDocument/didOpen,,4538 +318291,false,textDocument/didOpen,,4540 +369108,false,textDocument/didOpen,,4541 +312237,false,textDocument/didOpen,,4542 +438616,false,textDocument/didOpen,,4544 +85,false,textDocument/completion,283, +407751,false,textDocument/didOpen,,4549 +335806,false,textDocument/didOpen,,4551 +773,false,textDocument/didOpen,,4553 +48,false,textDocument/completion,1, +2136,false,textDocument/didOpen,,4559 +1928,false,textDocument/didOpen,,4558 +1978,false,textDocument/didOpen,,4561 +671,false,textDocument/didOpen,,4562 +1958,false,textDocument/didOpen,,4563 +1956,false,textDocument/didOpen,,4564 +35,false,textDocument/completion,1, +452,false,textDocument/didOpen,,4567 +475,false,textDocument/didOpen,,4571 +2008,false,textDocument/didOpen,,4572 +2020,false,textDocument/didOpen,,4573 +39,false,textDocument/completion,1, +1968,false,textDocument/didOpen,,4576 +1495,false,textDocument/didOpen,,4580 +1787,false,textDocument/didOpen,,4581 +1299,false,textDocument/didOpen,,4582 +36,false,textDocument/completion,1, +1978,false,textDocument/didOpen,,4585 +1989,false,textDocument/didOpen,,4587 +1965,false,textDocument/didOpen,,4588 +2007,false,textDocument/didOpen,,4589 +1951,false,textDocument/didOpen,,4590 +1969,false,textDocument/didOpen,,4591 +2022,false,textDocument/didOpen,,4590 +2026,false,textDocument/didOpen,,4589 +2044,false,textDocument/didOpen,,4580 +3021,false,textDocument/didOpen,,4588 +2009,false,textDocument/didOpen,,4586 +474,false,textDocument/didOpen,,4582 +1989,false,textDocument/didOpen,,4586 +672,false,textDocument/didOpen,,4588 +37,false,textDocument/completion,1, +1971,false,textDocument/didOpen,,4591 +2038,false,textDocument/didOpen,,4596 +1990,false,textDocument/didOpen,,4598 +1964,false,textDocument/didOpen,,4599 +1980,false,textDocument/didOpen,,4602 +129,false,textDocument/completion,1, +1994,false,textDocument/didOpen,,4603 +492,false,textDocument/didOpen,,4605 +63,false,textDocument/completion,1, +2004,false,textDocument/didOpen,,4607 +2007,false,textDocument/didOpen,,4614 +443,false,textDocument/didOpen,,4616 +472,false,textDocument/didOpen,,4617 +36,false,textDocument/completion,1, +2074,false,textDocument/didOpen,,4620 +152,false,textDocument/completion,1, +496,false,textDocument/didOpen,,4627 +34,false,textDocument/completion,1, +2059,false,textDocument/didOpen,,4633 +2051,false,textDocument/didOpen,,4636 +2050,false,textDocument/didOpen,,4638 +500,false,textDocument/didOpen,,4639 +46,false,textDocument/completion,1, +2055,false,textDocument/didOpen,,4642 +521,false,textDocument/didOpen,,4645 +53,false,textDocument/completion,1, +2036,false,textDocument/didOpen,,4648 +492,false,textDocument/didOpen,,4653 +30,false,textDocument/completion,1, +2055,false,textDocument/didOpen,,4656 +2062,false,textDocument/didOpen,,4665 +1989,false,textDocument/didOpen,,4666 +477,false,textDocument/didOpen,,4667 +31,false,textDocument/completion,1, +1465,false,textDocument/didOpen,,4669 +32,false,textDocument/completion,1, +2023,false,textDocument/didOpen,,4670 +153,false,textDocument/completion,1, +2016,false,textDocument/didOpen,,4677 +137,false,textDocument/completion,1, +533,false,textDocument/didOpen,,4683 +66,false,textDocument/completion,1, +2014,false,textDocument/didOpen,,4686 +502,false,textDocument/didOpen,,4684 +30,false,textDocument/completion,1, +633,false,textDocument/didOpen,,4687 +61,false,textDocument/completion,1, +1977,false,textDocument/didOpen,,4689 +2035,false,textDocument/didOpen,,4683 +502,false,textDocument/didOpen,,4683 +31,false,textDocument/completion,1, +449,false,textDocument/didOpen,,4686 +602,false,textDocument/didOpen,,4682 +501,false,textDocument/didOpen,,4684 +33,false,textDocument/completion,1, +2047,false,textDocument/didOpen,,4687 +1337,false,textDocument/didOpen,,4689 +36,false,textDocument/completion,1, +2033,false,textDocument/didOpen,,4690 +1580,false,textDocument/didOpen,,4687 +1362,false,textDocument/didOpen,,4688 +33,false,textDocument/completion,1, +2057,false,textDocument/didOpen,,4687 +1983,false,textDocument/didOpen,,4686 +527,false,textDocument/didOpen,,4689 +34,false,textDocument/completion,1, +2012,false,textDocument/didOpen,,4695 +493,false,textDocument/didOpen,,4696 +35,false,textDocument/completion,1, +2003,false,textDocument/didOpen,,4695 +509,false,textDocument/didOpen,,4696 +33,false,textDocument/completion,1, +2007,false,textDocument/didOpen,,4700 +133,false,textDocument/completion,1, +1997,false,textDocument/didOpen,,4702 +478,false,textDocument/didOpen,,4705 +34,false,textDocument/completion,1, +2049,false,textDocument/didOpen,,4711 +1975,false,textDocument/didOpen,,4710 +523,false,textDocument/didOpen,,4696 +53,false,textDocument/completion,1, +1985,false,textDocument/didOpen,,4701 +147,false,textDocument/completion,1, +918,false,textDocument/didOpen,,4706 +64,false,textDocument/completion,1, +1981,false,textDocument/didOpen,,4713 +515,false,textDocument/didOpen,,4714 +28,false,textDocument/completion,1, +1958,false,textDocument/didOpen,,4717 +1948,false,textDocument/didOpen,,4720 +1967,false,textDocument/didOpen,,4719 +33,false,textDocument/completion,1, +1943,false,textDocument/didOpen,,4724 +1979,false,textDocument/didOpen,,4725 +1955,false,textDocument/didOpen,,4727 +130,false,textDocument/completion,1, +1959,false,textDocument/didOpen,,4735 +97,false,textDocument/completion,1, +1973,false,textDocument/didOpen,,4748 +120,false,textDocument/completion,1, +1967,false,textDocument/didOpen,,4741 +1911,false,textDocument/didOpen,,4739 +493,false,textDocument/didOpen,,4736 +31,false,textDocument/completion,1, +499,false,textDocument/didOpen,,4748 +31,false,textDocument/completion,1, +1941,false,textDocument/didOpen,,4751 +170,false,textDocument/completion,1, +1999,false,textDocument/didOpen,,4759 +140,false,textDocument/completion,1, +500,false,textDocument/didOpen,,4765 +30,false,textDocument/completion,1, +2016,false,textDocument/didOpen,,4771 +1963,false,textDocument/didOpen,,4772 +129,false,textDocument/completion,1, +1972,false,textDocument/didOpen,,4775 +138,false,textDocument/completion,1, +1980,false,textDocument/didOpen,,4778 +130,false,textDocument/completion,1, +2052,false,textDocument/didOpen,,4779 +137,false,textDocument/completion,1, +1975,false,textDocument/didOpen,,4781 +1979,false,textDocument/didOpen,,4782 +1997,false,textDocument/didOpen,,4786 +1987,false,textDocument/didOpen,,4788 +1982,false,textDocument/didOpen,,4790 +502,false,textDocument/didOpen,,4791 +30,false,textDocument/completion,1, +500,false,textDocument/didOpen,,4793 +34,false,textDocument/completion,1, +1931,false,textDocument/didOpen,,4798 +129,false,textDocument/completion,1, +1950,false,textDocument/didOpen,,4801 +2008,false,textDocument/didOpen,,4802 +34,false,textDocument/completion,1, +1945,false,textDocument/didOpen,,4801 +1882,false,textDocument/didOpen,,4802 +484,false,textDocument/didOpen,,4803 +145,false,textDocument/completion,1, +572,false,textDocument/didOpen,,4808 +517,false,textDocument/didOpen,,4809 +25,false,textDocument/completion,1, +2028,false,textDocument/didOpen,,4813 +142,false,textDocument/completion,1, +3083,false,textDocument/didOpen,,4824 +169,false,textDocument/completion,1, +697,false,textDocument/didOpen,,4829 +30,false,textDocument/completion,1, +1986,false,textDocument/didOpen,,4834 +1957,false,textDocument/didOpen,,4835 +111,false,textDocument/completion,1, +1963,false,textDocument/didOpen,,4838 +457,false,textDocument/didOpen,,4837 +512,false,textDocument/didOpen,,4807 +36,false,textDocument/completion,1, +2007,false,textDocument/didOpen,,4809 +1631,false,textDocument/didOpen,,4810 +32,false,textDocument/completion,1, +1992,false,textDocument/didOpen,,4809 +534,false,textDocument/didOpen,,4810 +62,false,textDocument/completion,1, +680,false,textDocument/didOpen,,4822 +33,false,textDocument/completion,1, +3019,false,textDocument/didOpen,,4828 +126,false,textDocument/completion,1, +1929,false,textDocument/didOpen,,4833 +129,false,textDocument/completion,1, +554,false,textDocument/didOpen,,4834 +37,false,textDocument/completion,1, +1440,false,textDocument/didOpen,,4830 +32,false,textDocument/completion,1, +1960,false,textDocument/didOpen,,4834 +129,false,textDocument/completion,1, +535,false,textDocument/didOpen,,4835 +48,false,textDocument/completion,1, +476,false,textDocument/didOpen,,4838 +37,false,textDocument/completion,1, +482,false,textDocument/didOpen,,4841 +29,false,textDocument/completion,1, +1995,false,textDocument/didOpen,,4842 +1940,false,textDocument/didOpen,,4845 +136,false,textDocument/completion,1, +3045,false,textDocument/didOpen,,4857 +73,false,textDocument/completion,1, +1977,false,textDocument/didOpen,,4861 +1930,false,textDocument/didOpen,,4862 +500,false,textDocument/didOpen,,4881 +33,false,textDocument/completion,1, +1980,false,textDocument/didOpen,,4891 +137,false,textDocument/completion,1, +1960,false,textDocument/didOpen,,4893 +131,false,textDocument/completion,1, +1947,false,textDocument/didOpen,,4894 +1952,false,textDocument/didOpen,,4887 +2026,false,textDocument/didOpen,,4886 +1942,false,textDocument/didOpen,,4887 +38,false,textDocument/completion,1, +538,false,textDocument/didOpen,,4890 +31,false,textDocument/completion,1, +1056,false,textDocument/didOpen,,4886 +1934,false,textDocument/didOpen,,4884 +1940,false,textDocument/didOpen,,4893 +128,false,textDocument/completion,1, +2176,false,textDocument/didOpen,,4885 +1971,false,textDocument/didOpen,,4883 +1995,false,textDocument/didOpen,,4884 +130,false,textDocument/completion,1, +2000,false,textDocument/didOpen,,4904 +131,false,textDocument/completion,1, +2018,false,textDocument/didOpen,,4908 +1979,false,textDocument/didOpen,,4910 +588,false,textDocument/didOpen,,4912 +504,false,textDocument/didOpen,,4913 +1366,false,textDocument/didOpen,,4914 +1982,false,textDocument/didOpen,,4921 +129,false,textDocument/completion,1, +1964,false,textDocument/didOpen,,4922 +1689,false,textDocument/didOpen,,4921 +32,false,textDocument/completion,1, +491,false,textDocument/didOpen,,4928 +35,false,textDocument/completion,1, +1424,false,textDocument/didOpen,,4929 +37,false,textDocument/completion,1, +2007,false,textDocument/didOpen,,4942 +72,false,textDocument/completion,1, +2001,false,textDocument/didOpen,,4955 +101,false,textDocument/completion,1, +2018,false,textDocument/didOpen,,4958 +2046,false,textDocument/didOpen,,4959 +2049,false,textDocument/didOpen,,4935 +2027,false,textDocument/didOpen,,4934 +2011,false,textDocument/didOpen,,4937 +132,false,textDocument/completion,1, +2541,false,textDocument/didOpen,,4939 +120,false,textDocument/completion,1, +1902,false,textDocument/didOpen,,4947 +34,false,textDocument/completion,1, +1938,false,textDocument/didOpen,,4954 +36,false,textDocument/completion,1, +475,false,textDocument/didOpen,,4951 +27,false,textDocument/completion,1, +1967,false,textDocument/didOpen,,4953 +35,false,textDocument/completion,1, +466,false,textDocument/didOpen,,4969 +30,false,textDocument/completion,1, +1342,false,textDocument/didOpen,,4979 +31,false,textDocument/completion,1, +1984,false,textDocument/didOpen,,4980 +1980,false,textDocument/didOpen,,4982 +127,false,textDocument/completion,1, +460,false,textDocument/didOpen,,4993 +30,false,textDocument/completion,1, +457,false,textDocument/didOpen,,4994 +2030,false,textDocument/didOpen,,4995 +2407,false,textDocument/didOpen,,4996 +60,false,textDocument/completion,1, +1108,false,textDocument/didOpen,,4995 +2343,false,textDocument/didOpen,,5107 +1999,false,textDocument/didOpen,,5108 +1980,false,textDocument/didOpen,,5104 +2398,false,textDocument/didOpen,,5105 +43,false,textDocument/completion,1, +864,false,textDocument/didOpen,,5108 +596,false,textDocument/didOpen,,5105 +36,false,textDocument/completion,1, +1289,false,textDocument/didOpen,,5113 +1936,false,textDocument/didOpen,,5106 +1956,false,textDocument/didOpen,,5107 +95,false,textDocument/completion,1, +1987,false,textDocument/didOpen,,5092 +509,false,textDocument/didOpen,,5095 +43,false,textDocument/completion,1, +1972,false,textDocument/didOpen,,5101 +137,false,textDocument/completion,1, +1973,false,textDocument/didOpen,,5098 +2022,false,textDocument/didOpen,,5090 +1968,false,textDocument/didOpen,,5082 +1962,false,textDocument/didOpen,,5083 +1978,false,textDocument/didOpen,,5084 +496,false,textDocument/didOpen,,5086 +35,false,textDocument/completion,1, +1945,false,textDocument/didOpen,,5097 +494,false,textDocument/didOpen,,5102 +41,false,textDocument/completion,1, +2000,false,textDocument/didOpen,,5104 +463,false,textDocument/didOpen,,5105 +37,false,textDocument/completion,1, +1967,false,textDocument/didOpen,,5106 +436,false,textDocument/didOpen,,5108 +31,false,textDocument/completion,1, +1976,false,textDocument/didOpen,,5115 +133,false,textDocument/completion,1, +2962,false,textDocument/didOpen,,5136 +129,false,textDocument/completion,1, +1994,false,textDocument/didOpen,,5137 +163,false,textDocument/completion,1, +1949,false,textDocument/didOpen,,5138 +137,false,textDocument/completion,1, +1947,false,textDocument/didOpen,,5139 +133,false,textDocument/completion,1, +1984,false,textDocument/didOpen,,5148 +722,false,textDocument/didOpen,,5141 +1969,false,textDocument/didOpen,,5145 +2009,false,textDocument/didOpen,,5147 +1955,false,textDocument/didOpen,,5149 +513,false,textDocument/didOpen,,5150 +532,false,textDocument/didOpen,,5151 +33,false,textDocument/completion,1, +2015,false,textDocument/didOpen,,5154 +129,false,textDocument/completion,1, +2020,false,textDocument/didOpen,,5161 +1961,false,textDocument/didOpen,,5170 +1972,false,textDocument/didOpen,,5171 +1937,false,textDocument/didOpen,,5172 +456,false,textDocument/didOpen,,5182 +1978,false,textDocument/didOpen,,5184 +128,false,textDocument/completion,1, +2032,false,textDocument/didOpen,,5187 +141,false,textDocument/completion,1, +2007,false,textDocument/didOpen,,5191 +99,false,textDocument/completion,1, +145,false,textDocument/completion,1, +2006,false,textDocument/didOpen,,5193 +134,false,textDocument/completion,1, +2031,false,textDocument/didOpen,,5194 +98,false,textDocument/completion,1, +1942,false,textDocument/didOpen,,5190 +1940,false,textDocument/didOpen,,5196 +131,false,textDocument/completion,1, +2004,false,textDocument/didOpen,,5198 +140,false,textDocument/completion,1, +1990,false,textDocument/didOpen,,5199 +1995,false,textDocument/didOpen,,5200 +2028,false,textDocument/didOpen,,5198 +1993,false,textDocument/didOpen,,5200 +98,false,textDocument/completion,1, +483,false,textDocument/didOpen,,5208 +58,false,textDocument/completion,1, +1547,false,textDocument/didOpen,,5215 +30,false,textDocument/completion,1, +2009,false,textDocument/didOpen,,5219 +1933,false,textDocument/didOpen,,5220 +1986,false,textDocument/didOpen,,5229 +2083,false,textDocument/didOpen,,5231 +500,false,textDocument/didOpen,,5232 +36,false,textDocument/completion,1, +494,false,textDocument/didOpen,,5235 +30,false,textDocument/completion,1, +491,false,textDocument/didOpen,,5244 +32,false,textDocument/completion,1, +2022,false,textDocument/didOpen,,5253 +503,false,textDocument/didOpen,,5254 +55,false,textDocument/completion,1, +1978,false,textDocument/didOpen,,5257 +2020,false,textDocument/didOpen,,5268 +2039,false,textDocument/didOpen,,5270 +136,false,textDocument/completion,1, +2004,false,textDocument/didOpen,,5272 +1993,false,textDocument/didOpen,,5276 +625,false,textDocument/didOpen,,5277 +47,false,textDocument/completion,1, +459,false,textDocument/didOpen,,5285 +33,false,textDocument/completion,1, +1947,false,textDocument/didOpen,,5283 +1949,false,textDocument/didOpen,,5282 +1964,false,textDocument/didOpen,,5285 +131,false,textDocument/completion,1, +1968,false,textDocument/didOpen,,5289 +601,false,textDocument/didOpen,,5290 +504,false,textDocument/didOpen,,5291 +2012,false,textDocument/didOpen,,5295 +129,false,textDocument/completion,1, +476,false,textDocument/didOpen,,5298 +63,false,textDocument/completion,1, +2039,false,textDocument/didOpen,,5305 +2002,false,textDocument/didOpen,,5305 +2038,false,textDocument/didOpen,,5298 +1974,false,textDocument/didOpen,,5299 +1982,false,textDocument/didOpen,,5299 +465,false,textDocument/didOpen,,5301 +46,false,textDocument/completion,1, +2069,false,textDocument/didOpen,,5303 +2025,false,textDocument/didOpen,,5307 +173,false,textDocument/completion,1, +2031,false,textDocument/didOpen,,5308 +174,false,textDocument/completion,1, +2028,false,textDocument/didOpen,,5312 +461,false,textDocument/didOpen,,5306 +2217,false,textDocument/didOpen,,5303 +1965,false,textDocument/didOpen,,5295 +2080,false,textDocument/didOpen,,5289 +866,false,textDocument/didOpen,,5274 +2064,false,textDocument/didOpen,,5276 +132,false,textDocument/completion,1, +1984,false,textDocument/didOpen,,5279 +2018,false,textDocument/didOpen,,5280 +2003,false,textDocument/didOpen,,5281 +132,false,textDocument/completion,1, +511,false,textDocument/didOpen,,5287 +45,false,textDocument/completion,1, +2050,false,textDocument/didOpen,,5294 +454,false,textDocument/didOpen,,5296 +31,false,textDocument/completion,1, +2034,false,textDocument/didOpen,,5299 +1977,false,textDocument/didOpen,,5272 +2010,false,textDocument/didOpen,,5273 +76,false,textDocument/completion,1, +2015,false,textDocument/didOpen,,5279 +133,false,textDocument/completion,1, +2019,false,textDocument/didOpen,,5273 +1961,false,textDocument/didOpen,,5273 +133,false,textDocument/completion,1, +502,false,textDocument/didOpen,,5279 +33,false,textDocument/completion,1, +1270,false,textDocument/didOpen,,5296 +66,false,textDocument/completion,1, +513,false,textDocument/didOpen,,5307 +33,false,textDocument/completion,1, +1982,false,textDocument/didOpen,,5317 +2070,false,textDocument/didOpen,,5318 +1991,false,textDocument/didOpen,,5319 +122,false,textDocument/completion,1, +2112,false,textDocument/didOpen,,5319 +128,false,textDocument/completion,1, +440,false,textDocument/didOpen,,5327 +2004,false,textDocument/didOpen,,5328 +127,false,textDocument/completion,1, +442,false,textDocument/didOpen,,5328 +487,false,textDocument/didOpen,,5329 +29,false,textDocument/completion,1, +1982,false,textDocument/didOpen,,5335 +1972,false,textDocument/didOpen,,5336 +1931,false,textDocument/didOpen,,5338 +1984,false,textDocument/didOpen,,5335 +1483,false,textDocument/didOpen,,5336 +30,false,textDocument/completion,1, +1976,false,textDocument/didOpen,,5344 +485,false,textDocument/didOpen,,5346 +31,false,textDocument/completion,1, +2013,false,textDocument/didOpen,,5351 +1963,false,textDocument/didOpen,,5351 +2054,false,textDocument/didOpen,,5246 +881,false,textDocument/didOpen,,5351 +456,false,textDocument/didOpen,,5359 +33,false,textDocument/completion,1, +2003,false,textDocument/didOpen,,5362 +133,false,textDocument/completion,1, +470,false,textDocument/didOpen,,5364 +2052,false,textDocument/didOpen,,5364 +1968,false,textDocument/didOpen,,5287 +488,false,textDocument/didOpen,,5288 +35,false,textDocument/completion,1, +1967,false,textDocument/didOpen,,5288 +1949,false,textDocument/didOpen,,5290 +721,false,textDocument/didOpen,,5291 +37,false,textDocument/completion,1, +2012,false,textDocument/didOpen,,5292 +501,false,textDocument/didOpen,,5293 +32,false,textDocument/completion,1, +2094,false,textDocument/didOpen,,5303 +2034,false,textDocument/didOpen,,5304 +2025,false,textDocument/didOpen,,5310 +136,false,textDocument/completion,1, +1960,false,textDocument/didOpen,,5312 +2045,false,textDocument/didOpen,,5313 +167,false,textDocument/completion,1, +2005,false,textDocument/didOpen,,5314 +2017,false,textDocument/didOpen,,5315 +1810,false,textDocument/didOpen,,5314 +51,false,textDocument/completion,1, +443,false,textDocument/didOpen,,5317 +2019,false,textDocument/didOpen,,5320 +159,false,textDocument/completion,1, +471,false,textDocument/didOpen,,5322 +1951,false,textDocument/didOpen,,5319 +2045,false,textDocument/didOpen,,5330 +2049,false,textDocument/didOpen,,5328 +2023,false,textDocument/didOpen,,5329 +128,false,textDocument/completion,1, +2006,false,textDocument/didOpen,,5339 +488,false,textDocument/didOpen,,5331 +1994,false,textDocument/didOpen,,5335 +2018,false,textDocument/didOpen,,5337 +2018,false,textDocument/didOpen,,5339 +459,false,textDocument/didOpen,,5342 +32,false,textDocument/completion,1, +1975,false,textDocument/didOpen,,5344 +1996,false,textDocument/didOpen,,5342 +1964,false,textDocument/didOpen,,5342 +52,false,textDocument/completion,1, +2032,false,textDocument/didOpen,,5343 +1983,false,textDocument/didOpen,,5340 +1988,false,textDocument/didOpen,,5343 +465,false,textDocument/didOpen,,5344 +23,false,textDocument/completion,1, +143,false,textDocument/completion,1, +1987,false,textDocument/didOpen,,5345 +458,false,textDocument/didOpen,,5348 +31,false,textDocument/completion,1, +2009,false,textDocument/didOpen,,5349 +2036,false,textDocument/didOpen,,5351 +2007,false,textDocument/didOpen,,5352 +1903,false,textDocument/didOpen,,5353 +34,false,textDocument/completion,1, +437,false,textDocument/didOpen,,5353 +2003,false,textDocument/didOpen,,5354 +465,false,textDocument/didOpen,,5355 +31,false,textDocument/completion,1, +1966,false,textDocument/didOpen,,5363 +1980,false,textDocument/didOpen,,5364 +487,false,textDocument/didOpen,,5366 +501,false,textDocument/didOpen,,5367 +1974,false,textDocument/didOpen,,5372 +132,false,textDocument/completion,1, +2072,false,textDocument/didOpen,,5373 +1988,false,textDocument/didOpen,,5374 +2065,false,textDocument/didOpen,,5375 +2106,false,textDocument/didOpen,,5386 +841,false,textDocument/didOpen,,5387 +44,false,textDocument/completion,1, +2007,false,textDocument/didOpen,,5389 +842,false,textDocument/didOpen,,5390 +42,false,textDocument/completion,1, +1966,false,textDocument/didOpen,,5400 +133,false,textDocument/completion,1, +2029,false,textDocument/didOpen,,5401 +140,false,textDocument/completion,1, +2021,false,textDocument/didOpen,,5408 +1962,false,textDocument/didOpen,,5412 +2012,false,textDocument/didOpen,,5415 +1929,false,textDocument/didOpen,,5417 +159,false,textDocument/completion,1, +525,false,textDocument/didOpen,,5415 +33,false,textDocument/completion,1, +1995,false,textDocument/didOpen,,5416 +518,false,textDocument/didOpen,,5416 +29,false,textDocument/completion,1, +1970,false,textDocument/didOpen,,5418 +2009,false,textDocument/didOpen,,5419 +2120,false,textDocument/didOpen,,5422 +73,false,textDocument/completion,1, +644,false,textDocument/didOpen,,5400 +1980,false,textDocument/didOpen,,5401 +145,false,textDocument/completion,1, +442,false,textDocument/didOpen,,5408 +1990,false,textDocument/didOpen,,5409 +1939,false,textDocument/didOpen,,5418 +1967,false,textDocument/didOpen,,5421 +100,false,textDocument/completion,1, +1813,false,textDocument/didOpen,,5430 +2007,false,textDocument/didOpen,,5431 +1999,false,textDocument/didOpen,,5432 +2010,false,textDocument/didOpen,,5433 +1775,false,textDocument/didOpen,,5442 +1988,false,textDocument/didOpen,,5440 +2040,false,textDocument/didOpen,,5442 +502,false,textDocument/didOpen,,5444 +36,false,textDocument/completion,1, +2015,false,textDocument/didOpen,,5446 +468,false,textDocument/didOpen,,5447 +32,false,textDocument/completion,1, +463,false,textDocument/didOpen,,5457 +32,false,textDocument/completion,1, +1970,false,textDocument/didOpen,,5464 +138,false,textDocument/completion,1, +2005,false,textDocument/didOpen,,5468 +1996,false,textDocument/didOpen,,5469 +1993,false,textDocument/didOpen,,5470 +490,false,textDocument/didOpen,,5472 +34,false,textDocument/completion,1, +2026,false,textDocument/didOpen,,5475 +1975,false,textDocument/didOpen,,5484 +138,false,textDocument/completion,1, +504,false,textDocument/didOpen,,5490 +43,false,textDocument/completion,1, +2015,false,textDocument/didOpen,,5497 +133,false,textDocument/completion,1, +1971,false,textDocument/didOpen,,5499 +470,false,textDocument/didOpen,,5500 +2002,false,textDocument/didOpen,,5502 +102,false,textDocument/completion,1, +2011,false,textDocument/didOpen,,5503 +1961,false,textDocument/didOpen,,5505 +139,false,textDocument/completion,1, +1331,false,textDocument/didOpen,,5505 +51,false,textDocument/completion,1, +1982,false,textDocument/didOpen,,5511 +2044,false,textDocument/didOpen,,5512 +1966,false,textDocument/didOpen,,5511 +1993,false,textDocument/didOpen,,5514 +1990,false,textDocument/didOpen,,5516 +2040,false,textDocument/didOpen,,5520 +1988,false,textDocument/didOpen,,5522 +2022,false,textDocument/didOpen,,5528 +1027,false,textDocument/didOpen,,5526 +464,false,textDocument/didOpen,,5527 +2049,false,textDocument/didOpen,,5529 +33,false,textDocument/completion,1, +2035,false,textDocument/didOpen,,5534 +2046,false,textDocument/didOpen,,5533 +483,false,textDocument/didOpen,,5535 +38,false,textDocument/completion,1, +2050,false,textDocument/didOpen,,5539 +521,false,textDocument/didOpen,,5541 +544,false,textDocument/didOpen,,5542 +27,false,textDocument/completion,1, +1976,false,textDocument/didOpen,,5545 +247598,false,textDocument/didOpen,,1356 +89010,false,textDocument/didOpen,,2454 +487,false,textDocument/didOpen,,5545 +81376,false,textDocument/didOpen,,1048 +32753,false,textDocument/didOpen,,309 +37772,false,textDocument/didOpen,,141 +10662,false,textDocument/didOpen,,103 +50265,false,textDocument/didOpen,,264 +84022,false,textDocument/didOpen,,1669 +39666,false,textDocument/didOpen,,679 +44021,false,textDocument/didOpen,,406 +277823,false,textDocument/didOpen,,3920 +318764,false,textDocument/didOpen,,3920 +364824,false,textDocument/didOpen,,3923 +366375,false,textDocument/didOpen,,3924 +432265,false,textDocument/didOpen,,3925 +414994,false,textDocument/didOpen,,3926 +527715,false,textDocument/didOpen,,3929 +43,false,textDocument/completion,480, +518252,false,textDocument/didOpen,,3932 +45,false,textDocument/completion,480, +726564,false,textDocument/didOpen,,3937 +43,false,textDocument/completion,480, +865963,false,textDocument/didOpen,,3949 +41,false,textDocument/completion,480, +797317,false,textDocument/didOpen,,3948 +41,false,textDocument/completion,480, +862712,false,textDocument/didOpen,,3953 +41,false,textDocument/completion,480, +1035124,false,textDocument/didOpen,,3959 +1265276,false,textDocument/didOpen,,3967 +65,false,textDocument/completion,480, +948257,false,textDocument/didOpen,,3968 +1136496,false,textDocument/didOpen,,3970 +1138596,false,textDocument/didOpen,,3971 +1129828,false,textDocument/didOpen,,3972 +40,false,textDocument/completion,480, +1281818,false,textDocument/didOpen,,3977 +40,false,textDocument/completion,480, +1284085,false,textDocument/didOpen,,3982 +1463967,false,textDocument/didOpen,,3983 +42,false,textDocument/completion,480, +1433959,false,textDocument/didOpen,,3986 +82,false,textDocument/completion,480, +1491555,false,textDocument/didOpen,,3987 +1500692,false,textDocument/didOpen,,3989 +50,false,textDocument/completion,480, +1594964,false,textDocument/didOpen,,3994 +45,false,textDocument/completion,480, +1603594,false,textDocument/didOpen,,4004 +1241,false,textDocument/didOpen,,3947 +1734454,false,textDocument/didOpen,,4004 +1673547,false,textDocument/didOpen,,3988 +1797768,false,textDocument/didOpen,,3983 +1827814,false,textDocument/didOpen,,3973 +2095186,false,textDocument/didOpen,,3983 +2203507,false,textDocument/didOpen,,3982 +2277666,false,textDocument/didOpen,,3981 +2232278,false,textDocument/didOpen,,3984 +2380312,false,textDocument/didOpen,,3982 +2381110,false,textDocument/didOpen,,3984 +1223,false,textDocument/didOpen,,3985 +39,false,textDocument/completion,480, +2404858,false,textDocument/didOpen,,3987 +2398997,false,textDocument/didOpen,,3988 +2488574,false,textDocument/didOpen,,3989 +68,false,textDocument/completion,481, +2600723,false,textDocument/didOpen,,3992 +2633758,false,textDocument/didOpen,,3993 +2712144,false,textDocument/didOpen,,3994 +2727550,false,textDocument/didOpen,,3997 +1962,false,textDocument/completion,481, +2897085,false,textDocument/didOpen,,4000 +584,false,textDocument/didOpen,,4001 +43,false,textDocument/completion,481, +3661179,false,textDocument/didOpen,,4003 +3786957,false,textDocument/didOpen,,4004 +3583309,false,textDocument/didOpen,,4006 +3599412,false,textDocument/didOpen,,4009 +4005027,false,textDocument/didOpen,,4010 +83,false,textDocument/completion,481, +3902391,false,textDocument/didOpen,,4012 +3991623,false,textDocument/didOpen,,4016 +89,false,textDocument/completion,481, +3800105,false,textDocument/didOpen,,4018 +3952542,false,textDocument/didOpen,,4019 +4371324,false,textDocument/didOpen,,4020 +4211867,false,textDocument/didOpen,,4021 +361052,false,textDocument/didOpen,,4416 +274297,false,textDocument/didOpen,,4417 +318331,false,textDocument/didOpen,,4416 +448763,false,textDocument/didOpen,,4417 +534343,false,textDocument/didOpen,,4378 +653439,false,textDocument/didOpen,,4417 +703097,false,textDocument/didOpen,,4418 +826309,false,textDocument/didOpen,,4420 +1008,false,textDocument/didOpen,,4421 +857892,false,textDocument/didOpen,,4422 +968259,false,textDocument/didOpen,,4423 +1083795,false,textDocument/didOpen,,4424 +41,false,textDocument/completion,547, +1042444,false,textDocument/didOpen,,4427 +43,false,textDocument/completion,547, +1173176,false,textDocument/didOpen,,4430 +1272680,false,textDocument/didOpen,,4431 +79,false,textDocument/completion,547, +1335256,false,textDocument/didOpen,,4434 +42,false,textDocument/completion,547, +1313608,false,textDocument/didOpen,,4447 +41,false,textDocument/completion,547, +1467831,false,textDocument/didOpen,,4453 +1612505,false,textDocument/didOpen,,4454 +40,false,textDocument/completion,547, +1547454,false,textDocument/didOpen,,4457 +39,false,textDocument/completion,547, +1739003,false,textDocument/didOpen,,4463 +40,false,textDocument/completion,547, +1697203,false,textDocument/didOpen,,4464 +41,false,textDocument/completion,547, +1852582,false,textDocument/didOpen,,4469 +1949679,false,textDocument/didOpen,,4470 +58,false,textDocument/completion,547, +1866184,false,textDocument/didOpen,,4440 +56,false,textDocument/completion,547, +2055045,false,textDocument/didOpen,,4450 +41,false,textDocument/completion,547, +2208390,false,textDocument/didOpen,,4455 +2341132,false,textDocument/didOpen,,4457 +352537,false,textDocument/didOpen,,4457 +363353,false,textDocument/didOpen,,4456 +320177,false,textDocument/didOpen,,4460 +280650,false,textDocument/didOpen,,7571 +118525,false,textDocument/didOpen,,4515 +100054,false,textDocument/didOpen,,4798 +1360,false,textDocument/didOpen,,4797 +51653,false,textDocument/didOpen,,4798 +103289,false,textDocument/didOpen,,1700 +103568,false,textDocument/didOpen,,1700 +103810,false,textDocument/didOpen,,4798 +47688,false,textDocument/didOpen,,4797 +52603,false,textDocument/didOpen,,4796 +4250781,false,textDocument/didOpen,,33619 +4162443,false,textDocument/didOpen,,33619 +209,false,textDocument/didOpen,,1 +169,false,textDocument/didOpen,,3 +816,false,textDocument/didOpen,,4 +29,false,textDocument/completion,1, +915,false,textDocument/didOpen,,10 +11,false,textDocument/completion,1, +901,false,textDocument/didOpen,,11 +44,false,textDocument/completion,1, +3498,false,textDocument/didOpen,,24 +3241,false,textDocument/didOpen,,28 +44,false,textDocument/completion,3, +3227,false,textDocument/didOpen,,37 +44,false,textDocument/completion,3, +3257,false,textDocument/didOpen,,42 +1015,false,textDocument/didOpen,,43 +11,false,textDocument/completion,3, +3225,false,textDocument/didOpen,,53 +42,false,textDocument/completion,3, +3317,false,textDocument/didOpen,,56 +10852,false,textDocument/didOpen,,57 +253,false,textDocument/didOpen,,1 +29,false,textDocument/didOpen,,2101 +56525,false,textDocument/didOpen,,4796 +29,false,textDocument/hover,122, +21,false,textDocument/definition,122, +26,false,textDocument/references,122, +4347504,false,textDocument/didOpen,,33619 +10800855,false,textDocument/didOpen,,33619 +15840904,false,textDocument/didOpen,,33619 +3489,false,textDocument/didOpen,,33618 +22045741,false,textDocument/didOpen,,33619 +28517135,false,textDocument/didOpen,,33617 +36518294,false,textDocument/didOpen,,33616 +4366159,false,textDocument/didOpen,,33612 +10077160,false,textDocument/didOpen,,33611 +4230289,false,textDocument/didOpen,,33610 +4291109,false,textDocument/didOpen,,33610 +4417771,false,textDocument/didOpen,,33610 +239450,false,textDocument/didOpen,,4796 +581814,false,textDocument/didOpen,,8263 +23,false,textDocument/references,122, +73,false,textDocument/definition,122, +34,false,textDocument/definition,122, +54,false,textDocument/definition,122, +240018,false,textDocument/didOpen,,4797 +209413,false,textDocument/didOpen,,4796 +11612846,false,textDocument/didOpen,,33618 +16495459,false,textDocument/didOpen,,33619 +23200731,false,textDocument/didOpen,,33625 +28833838,false,textDocument/didOpen,,33626 +3504,false,textDocument/didOpen,,33627 +4879,false,textDocument/didOpen,,33629 +29,false,textDocument/completion,1, +1851,false,textDocument/didOpen,,33629 +40,false,textDocument/completion,1, +1734,false,textDocument/didOpen,,33640 +1522,false,textDocument/didOpen,,33641 +4006,false,textDocument/didOpen,,33660 +1013,false,textDocument/didOpen,,33663 +35,false,textDocument/completion,1, +894,false,textDocument/didOpen,,33663 +53,false,textDocument/completion,1, +1007,false,textDocument/didOpen,,33674 +1005,false,textDocument/didOpen,,33675 +928,false,textDocument/didOpen,,33683 +926,false,textDocument/didOpen,,33694 +1752,false,textDocument/didOpen,,33695 +1790,false,textDocument/didOpen,,33697 +46,false,textDocument/completion,1, +1958,false,textDocument/didOpen,,33709 +1794,false,textDocument/didOpen,,33730 +2555,false,textDocument/didOpen,,33728 +1788,false,textDocument/didOpen,,33729 +1700,false,textDocument/didOpen,,33732 +4488,false,textDocument/didOpen,,33733 +2163,false,textDocument/didOpen,,33736 +67,false,textDocument/completion,1, +2829,false,textDocument/didOpen,,33741 +3759,false,textDocument/didOpen,,33743 +1857,false,textDocument/didOpen,,33744 +2774,false,textDocument/didOpen,,33743 +880,false,textDocument/didOpen,,33742 +3746,false,textDocument/didOpen,,33741 +39759604,false,textDocument/didOpen,,33740 +49419192,false,textDocument/didOpen,,33759 +54742856,false,textDocument/didOpen,,33760 +4227,false,textDocument/didOpen,,33762 +1459,false,textDocument/didOpen,,33766 +7197,false,textDocument/didOpen,,33767 +32,false,textDocument/completion,1, +1571,false,textDocument/didOpen,,33773 +4025,false,textDocument/didOpen,,33775 +1513,false,textDocument/didOpen,,33782 +6164,false,textDocument/didOpen,,33783 +29,false,textDocument/completion,1, +1454,false,textDocument/didOpen,,33782 +1070,false,textDocument/didOpen,,33783 +6126,false,textDocument/didOpen,,33782 +1600,false,textDocument/didOpen,,33775 +4359,false,textDocument/didOpen,,33782 +1495,false,textDocument/didOpen,,33784 +1357,false,textDocument/didOpen,,33785 +1403,false,textDocument/didOpen,,33786 +1305,false,textDocument/didOpen,,33787 +41,false,textDocument/completion,1, +1282,false,textDocument/didOpen,,33796 +1200,false,textDocument/didOpen,,33798 +4939,false,textDocument/didOpen,,33799 +1524,false,textDocument/didOpen,,33798 +4435,false,textDocument/didOpen,,33799 +1607,false,textDocument/didOpen,,33798 +1345,false,textDocument/didOpen,,33822 +1740,false,textDocument/didOpen,,33846 +1382,false,textDocument/didOpen,,33845 +1515,false,textDocument/didOpen,,33844 +1615,false,textDocument/didOpen,,33850 +1545,false,textDocument/didOpen,,33852 +1619,false,textDocument/didOpen,,33854 +1594,false,textDocument/didOpen,,33856 +1658,false,textDocument/didOpen,,33862 +1604,false,textDocument/didOpen,,33864 +1589,false,textDocument/didOpen,,33866 +1611,false,textDocument/didOpen,,33868 +1680,false,textDocument/didOpen,,33870 +1626,false,textDocument/didOpen,,33872 +1808,false,textDocument/didOpen,,33874 +1603,false,textDocument/didOpen,,33870 +1611,false,textDocument/didOpen,,33866 +1662,false,textDocument/didOpen,,33860 +1603,false,textDocument/didOpen,,33859 +1627,false,textDocument/didOpen,,33858 +1633,false,textDocument/didOpen,,33859 +1569,false,textDocument/didOpen,,33858 +1327,false,textDocument/didOpen,,33892 +1613,false,textDocument/didOpen,,33891 +1670,false,textDocument/didOpen,,33889 +1348,false,textDocument/didOpen,,33888 +1519,false,textDocument/didOpen,,33922 +1602,false,textDocument/didOpen,,33916 +1358,false,textDocument/didOpen,,33915 +1568,false,textDocument/didOpen,,33949 +1615,false,textDocument/didOpen,,33946 +61480995,false,textDocument/didOpen,,33945 +3086,false,textDocument/didOpen,,33944 +70183171,false,textDocument/didOpen,,33945 +4027,false,textDocument/didOpen,,33979 +2375,false,textDocument/didOpen,,33972 +75063105,false,textDocument/didOpen,,33971 +3207,false,textDocument/didOpen,,34005 +9912,false,textDocument/didOpen,,34000 +84216745,false,textDocument/didOpen,,33999 +100058074,false,textDocument/didOpen,,34005 +114767890,false,textDocument/didOpen,,34006 +123917276,false,textDocument/didOpen,,34016 +125562778,false,textDocument/didOpen,,34023 +126947053,false,textDocument/didOpen,,34040 +65512,false,textDocument/didOpen,,34074 +135497709,false,textDocument/didOpen,,34073 +2985,false,textDocument/didOpen,,34107 +7438,false,textDocument/didOpen,,34106 +1574,false,textDocument/didOpen,,34105 +13496,false,textDocument/didOpen,,34139 +1599,false,textDocument/didOpen,,34136 +11374,false,textDocument/didOpen,,34135 +12912,false,textDocument/didOpen,,34136 +4663246,false,textDocument/didOpen,,34741 +4561368,false,textDocument/didOpen,,34741 +198671,false,textDocument/didOpen,,3956 +103935,false,textDocument/didOpen,,1700 +110980,false,textDocument/didOpen,,1700 +63572,false,textDocument/didOpen,,1701 +170,false,textDocument/completion,213, +89139,false,textDocument/didOpen,,1704 +70820,false,textDocument/didOpen,,1705 +122,false,textDocument/completion,213, +55008,false,textDocument/didOpen,,1708 +59549,false,textDocument/didOpen,,1683 +58694,false,textDocument/didOpen,,1682 +101,false,textDocument/hover,208, +1752,false,textDocument/didOpen,,1685 +553,false,textDocument/completion,208, +77356,false,textDocument/didOpen,,1688 +77432,false,textDocument/didOpen,,1663 +1357,false,textDocument/didOpen,,1665 +161,false,textDocument/completion,180, +87850,false,textDocument/didOpen,,1668 +70714,false,textDocument/didOpen,,1667 +98534,false,textDocument/didOpen,,1666 +127062,false,textDocument/didOpen,,1667 +145314,false,textDocument/didOpen,,1668 +99895,false,textDocument/didOpen,,1668 +4662124,false,textDocument/didOpen,,34741 +22,false,textDocument/definition,1506, +249413,false,textDocument/didOpen,,1665 +195737,false,textDocument/didOpen,,1666 +240,false,textDocument/completion,207, +177858,false,textDocument/didOpen,,1668 +266192,false,textDocument/didOpen,,1663 +675,false,textDocument/completion,207, +181651,false,textDocument/didOpen,,1669 +138,false,textDocument/completion,207, +224855,false,textDocument/didOpen,,1668 +4543389,false,textDocument/didOpen,,34741 +92677,false,textDocument/didOpen,,1682 +81206,false,textDocument/didOpen,,1686 +132,false,textDocument/completion,118, +208822,false,textDocument/didOpen,,10136 +208933,false,textDocument/didOpen,,10136 +216520,false,textDocument/didOpen,,10136 +215278,false,textDocument/didOpen,,10173 +104586,false,textDocument/didOpen,,10174 +109434,false,textDocument/didOpen,,10175 +216359,false,textDocument/didOpen,,10173 +106798,false,textDocument/didOpen,,10174 +213216,false,textDocument/didOpen,,10174 +226984,false,textDocument/didOpen,,10173 +115269,false,textDocument/didOpen,,10173 +233678,false,textDocument/didOpen,,10174 +2321,false,textDocument/didOpen,,12 +38101,false,textDocument/didOpen,,93 +1569,false,textDocument/didOpen,,5658 +1586,false,textDocument/didOpen,,5658 +185042,false,textDocument/didOpen,,1895 +139101,false,textDocument/didOpen,,1895 +149321,false,textDocument/didOpen,,1894 +108590,false,textDocument/didOpen,,1895 +118,false,textDocument/completion,375, +136974,false,textDocument/didOpen,,1896 +130489,false,textDocument/didOpen,,1899 +98,false,textDocument/completion,375, +157249,false,textDocument/didOpen,,1901 +54,false,textDocument/completion,375, +231945,false,textDocument/didOpen,,1910 +271038,false,textDocument/didOpen,,1913 +192202,false,textDocument/didOpen,,1914 +199954,false,textDocument/didOpen,,1915 +243669,false,textDocument/didOpen,,1916 +309118,false,textDocument/didOpen,,1918 +39,false,textDocument/completion,375, +337924,false,textDocument/didOpen,,1923 +371154,false,textDocument/didOpen,,1925 +42,false,textDocument/completion,375, +316057,false,textDocument/didOpen,,1926 +42,false,textDocument/completion,375, +374565,false,textDocument/didOpen,,1930 +533,false,textDocument/completion,375, +401890,false,textDocument/didOpen,,1928 +392062,false,textDocument/didOpen,,1930 +38,false,textDocument/completion,375, +420303,false,textDocument/didOpen,,1928 +442129,false,textDocument/didOpen,,1929 +55,false,textDocument/completion,375, +443623,false,textDocument/didOpen,,1935 +58,false,textDocument/completion,375, +491979,false,textDocument/didOpen,,1942 +434008,false,textDocument/didOpen,,1943 +57,false,textDocument/completion,375, +472175,false,textDocument/didOpen,,1946 +41,false,textDocument/completion,375, +512545,false,textDocument/didOpen,,1955 +64,false,textDocument/completion,375, +499173,false,textDocument/didOpen,,1961 +12869,false,textDocument/completion,375, +505301,false,textDocument/didOpen,,1965 +534838,false,textDocument/didOpen,,1966 +76,false,textDocument/completion,375, +530537,false,textDocument/didOpen,,1970 +58,false,textDocument/completion,375, +586859,false,textDocument/didOpen,,1972 +42,false,textDocument/completion,375, +580045,false,textDocument/didOpen,,1975 +614788,false,textDocument/didOpen,,1976 +42,false,textDocument/completion,375, +630953,false,textDocument/didOpen,,1981 +40,false,textDocument/completion,375, +664142,false,textDocument/didOpen,,1995 +43,false,textDocument/completion,375, +680865,false,textDocument/didOpen,,2009 +671597,false,textDocument/didOpen,,2010 +69,false,textDocument/completion,375, +669950,false,textDocument/didOpen,,2015 +684566,false,textDocument/didOpen,,2016 +762459,false,textDocument/didOpen,,2021 +1386,false,textDocument/completion,375, +694840,false,textDocument/didOpen,,2025 +774720,false,textDocument/didOpen,,2026 +45,false,textDocument/completion,375, +672777,false,textDocument/didOpen,,2031 +40,false,textDocument/completion,375, +767630,false,textDocument/didOpen,,2034 +760905,false,textDocument/didOpen,,2037 +820629,false,textDocument/didOpen,,2035 +732768,false,textDocument/didOpen,,2037 +844075,false,textDocument/didOpen,,2038 +824372,false,textDocument/didOpen,,2039 +45,false,textDocument/completion,376, +759212,false,textDocument/didOpen,,2042 +815962,false,textDocument/didOpen,,2044 +969844,false,textDocument/didOpen,,2039 +45,false,textDocument/completion,376, +1001837,false,textDocument/didOpen,,2042 +975003,false,textDocument/didOpen,,2043 +1004470,false,textDocument/didOpen,,2045 +39,false,textDocument/completion,376, +1018393,false,textDocument/didOpen,,2050 +2658,false,textDocument/completion,376, +1020073,false,textDocument/didOpen,,2055 +961338,false,textDocument/didOpen,,2056 +42,false,textDocument/completion,376, +988753,false,textDocument/didOpen,,2057 +1143309,false,textDocument/didOpen,,2060 +1042584,false,textDocument/didOpen,,2061 +1071004,false,textDocument/didOpen,,2062 +1051678,false,textDocument/didOpen,,2063 +1165394,false,textDocument/didOpen,,2065 +67,false,textDocument/completion,376, +1142455,false,textDocument/didOpen,,2072 +74,false,textDocument/completion,376, +1146098,false,textDocument/didOpen,,2073 +1154855,false,textDocument/didOpen,,2076 +1163392,false,textDocument/didOpen,,2077 +53,false,textDocument/completion,376, +1277587,false,textDocument/didOpen,,2079 +61,false,textDocument/completion,380, +1104980,false,textDocument/didOpen,,2073 +1155095,false,textDocument/didOpen,,2075 +1992,false,textDocument/completion,378, +1276345,false,textDocument/didOpen,,2077 +1193345,false,textDocument/didOpen,,2078 +91,false,textDocument/completion,378, +1353730,false,textDocument/didOpen,,2081 +63,false,textDocument/completion,379, +1219045,false,textDocument/didOpen,,2083 +1301987,false,textDocument/didOpen,,2085 +39,false,textDocument/completion,378, +1496094,false,textDocument/didOpen,,2088 +70,false,textDocument/completion,378, +1817828,false,textDocument/didOpen,,2093 +1539134,false,textDocument/didOpen,,2085 +1713638,false,textDocument/didOpen,,2084 +1742794,false,textDocument/didOpen,,2085 +43,false,textDocument/completion,381, +1807676,false,textDocument/didOpen,,2091 +92,false,textDocument/completion,380, +1621786,false,textDocument/didOpen,,2084 +1758778,false,textDocument/didOpen,,2086 +128,false,textDocument/completion,380, +1763939,false,textDocument/didOpen,,2089 +1688586,false,textDocument/didOpen,,2090 +68,false,textDocument/completion,380, +1851450,false,textDocument/didOpen,,2091 +69,false,textDocument/completion,380, +1857031,false,textDocument/didOpen,,2085 +1855231,false,textDocument/didOpen,,2086 +1988105,false,textDocument/didOpen,,2088 +308,false,textDocument/completion,385, +1896691,false,textDocument/didOpen,,2089 +2077636,false,textDocument/didOpen,,2091 +1885621,false,textDocument/didOpen,,2090 +1853206,false,textDocument/didOpen,,2093 +1832872,false,textDocument/didOpen,,2097 +1936941,false,textDocument/didOpen,,2098 +71,false,textDocument/completion,387, +1987708,false,textDocument/didOpen,,2099 +2050990,false,textDocument/didOpen,,2101 +2266787,false,textDocument/didOpen,,2100 +2053778,false,textDocument/didOpen,,2099 +2060783,false,textDocument/didOpen,,2102 +53,false,textDocument/completion,387, +2214048,false,textDocument/didOpen,,2103 +49,false,textDocument/completion,387, +2144773,false,textDocument/didOpen,,2100 +2067528,false,textDocument/didOpen,,2101 +2055818,false,textDocument/didOpen,,2100 +2087071,false,textDocument/didOpen,,2101 +2096265,false,textDocument/didOpen,,2103 +4355,false,textDocument/completion,387, +2161911,false,textDocument/didOpen,,2106 +2239175,false,textDocument/didOpen,,2108 +52,false,textDocument/completion,387, +2255170,false,textDocument/didOpen,,2112 +2217550,false,textDocument/didOpen,,2114 +2264415,false,textDocument/didOpen,,2115 +47,false,textDocument/completion,387, +2309397,false,textDocument/didOpen,,2117 +2288418,false,textDocument/didOpen,,2118 +2372675,false,textDocument/didOpen,,2080 +2286964,false,textDocument/didOpen,,2080 +62,false,textDocument/completion,387, +2306127,false,textDocument/didOpen,,2083 +2373531,false,textDocument/didOpen,,2083 +2498322,false,textDocument/didOpen,,2086 +85,false,textDocument/completion,387, +2420051,false,textDocument/didOpen,,2094 +59,false,textDocument/completion,387, +2254759,false,textDocument/didOpen,,2095 +2434382,false,textDocument/didOpen,,2105 +44,false,textDocument/completion,387, +2375943,false,textDocument/didOpen,,2115 +2482620,false,textDocument/didOpen,,2107 +2635178,false,textDocument/didOpen,,2102 +2649109,false,textDocument/didOpen,,2100 +42,false,textDocument/completion,387, +2471123,false,textDocument/didOpen,,2108 +2554577,false,textDocument/didOpen,,2109 +5390,false,textDocument/completion,387, +2380813,false,textDocument/didOpen,,2115 +2541608,false,textDocument/didOpen,,2116 +60,false,textDocument/completion,387, +2371726,false,textDocument/didOpen,,2122 +2511411,false,textDocument/didOpen,,2121 +2760383,false,textDocument/didOpen,,2124 +2699241,false,textDocument/didOpen,,2125 +2699487,false,textDocument/didOpen,,2127 +2705508,false,textDocument/didOpen,,2127 +57,false,textDocument/completion,388, +2897676,false,textDocument/didOpen,,2132 +2922965,false,textDocument/didOpen,,2127 +77,false,textDocument/completion,388, +2861504,false,textDocument/didOpen,,2130 +2831330,false,textDocument/didOpen,,2127 +76,false,textDocument/completion,388, +2801957,false,textDocument/didOpen,,2133 +80,false,textDocument/completion,390, +2930169,false,textDocument/didOpen,,2136 +57,false,textDocument/completion,388, +2885061,false,textDocument/didOpen,,2137 +851,false,textDocument/didOpen,,2142 +734,false,textDocument/didOpen,,2143 +40,false,textDocument/completion,388, +2745701,false,textDocument/didOpen,,2144 +356,false,textDocument/didOpen,,2148 +235,false,textDocument/didOpen,,2149 +233,false,textDocument/didOpen,,2151 +56,false,textDocument/completion,392, +2826980,false,textDocument/didOpen,,2154 +2900174,false,textDocument/didOpen,,2158 +2888243,false,textDocument/didOpen,,2160 +43,false,textDocument/completion,388, +2807522,false,textDocument/didOpen,,2163 +2790510,false,textDocument/didOpen,,2165 +52,false,textDocument/completion,388, +2881699,false,textDocument/didOpen,,2166 +2924129,false,textDocument/didOpen,,2170 +2926962,false,textDocument/didOpen,,2171 +3038344,false,textDocument/didOpen,,2172 +2990718,false,textDocument/didOpen,,2173 +3275132,false,textDocument/didOpen,,2176 +45,false,textDocument/completion,388, +2998259,false,textDocument/didOpen,,2177 +62,false,textDocument/completion,399, +3281346,false,textDocument/didOpen,,2178 +3513356,false,textDocument/didOpen,,2235 +3361081,false,textDocument/didOpen,,2232 +908,false,textDocument/didOpen,,2233 +107,false,textDocument/completion,410, +3333373,false,textDocument/didOpen,,2238 +7539,false,textDocument/completion,402, +970,false,textDocument/didOpen,,2245 +94,false,textDocument/completion,402, +3553520,false,textDocument/didOpen,,2246 +875,false,textDocument/didOpen,,2245 +150,false,textDocument/completion,414, +3575167,false,textDocument/didOpen,,2246 +3372454,false,textDocument/didOpen,,2243 +3321007,false,textDocument/didOpen,,2246 +164,false,textDocument/completion,414, +3474373,false,textDocument/didOpen,,2246 +7756,false,textDocument/completion,414, +3645323,false,textDocument/didOpen,,2245 +88,false,textDocument/completion,414, +3542174,false,textDocument/didOpen,,2246 +3711957,false,textDocument/didOpen,,2250 +3704790,false,textDocument/didOpen,,2246 +22853,false,textDocument/didOpen,,43 +20674,false,textDocument/didOpen,,43 +1319,false,textDocument/didOpen,,42 +13375,false,textDocument/didOpen,,43 +1791,false,textDocument/didOpen,,42 +1444,false,textDocument/didOpen,,45 +1388,false,textDocument/didOpen,,44 +5760,false,textDocument/didOpen,,32 +1740,false,textDocument/didOpen,,31 +4326,false,textDocument/didOpen,,38 +3480,false,textDocument/didOpen,,37 +35481,false,textDocument/didOpen,,180 +16861,false,textDocument/didOpen,,179 +8522,false,textDocument/didOpen,,35 +4140,false,textDocument/didOpen,,34 +8798,false,textDocument/didOpen,,36 +2925,false,textDocument/didOpen,,35 +8409,false,textDocument/didOpen,,38 +8008,false,textDocument/didOpen,,37 +9070,false,textDocument/didOpen,,34 +8869,false,textDocument/didOpen,,33 +8948,false,textDocument/didOpen,,39 +3609,false,textDocument/didOpen,,38 +10735,false,textDocument/didOpen,,51 +8700,false,textDocument/didOpen,,50 +4945,false,textDocument/didOpen,,28 +4015,false,textDocument/didOpen,,27 +6687,false,textDocument/didOpen,,43 +70921,false,textDocument/didOpen,,1708 +633,false,textDocument/didOpen,,1 +562,false,textDocument/didOpen,,610 +779,false,textDocument/didOpen,,508 +521,false,textDocument/didOpen,,440 +489,false,textDocument/didOpen,,439 +24405,false,textDocument/didOpen,,442 +30,false,textDocument/completion,9, +22578,false,textDocument/didOpen,,441 +19669,false,textDocument/didOpen,,442 +22595,false,textDocument/didOpen,,444 +37,false,textDocument/completion,10, +19733,false,textDocument/didOpen,,450 +11950,false,textDocument/didOpen,,452 +22546,false,textDocument/didOpen,,451 +11892,false,textDocument/didOpen,,452 +19469,false,textDocument/didOpen,,453 +23616,false,textDocument/didOpen,,444 +20618,false,textDocument/didOpen,,445 +12618,false,textDocument/didOpen,,447 +25091,false,textDocument/didOpen,,442 +26427,false,textDocument/didOpen,,439 +18930,false,textDocument/didOpen,,430 +10340,false,textDocument/didOpen,,365 +13852,false,textDocument/didOpen,,341 +9902,false,textDocument/didOpen,,339 +12430,false,textDocument/didOpen,,295 +2704,false,textDocument/didOpen,,284 +4059,false,textDocument/didOpen,,285 +4049,false,textDocument/didOpen,,286 +2116,false,textDocument/didOpen,,289 +4032,false,textDocument/didOpen,,290 +3891,false,textDocument/didOpen,,291 +3918,false,textDocument/didOpen,,292 +49,false,textDocument/completion,3, +5325,false,textDocument/didOpen,,295 +59,false,textDocument/completion,3, +2784,false,textDocument/didOpen,,296 +3748,false,textDocument/didOpen,,297 +3591,false,textDocument/didOpen,,299 +49,false,textDocument/completion,3, +2790,false,textDocument/didOpen,,304 +48,false,textDocument/completion,3, +2382,false,textDocument/didOpen,,318 +42,false,textDocument/completion,3, +2825,false,textDocument/didOpen,,325 +3864,false,textDocument/didOpen,,326 +60,false,textDocument/completion,3, +1819,false,textDocument/didOpen,,337 +4227,false,textDocument/didOpen,,339 +48,false,textDocument/completion,3, +2744,false,textDocument/didOpen,,341 +135,false,textDocument/completion,3, +2422,false,textDocument/didOpen,,346 +43,false,textDocument/completion,3, +102288,false,textDocument/didOpen,,1708 +182470,false,textDocument/didOpen,,1708 +70216,false,textDocument/didOpen,,1709 +107320,false,textDocument/didOpen,,1713 +62336,false,textDocument/didOpen,,1719 +115,false,textDocument/completion,78, +27658,false,textDocument/didOpen,,1740 +18909,false,textDocument/didOpen,,1741 +49,false,textDocument/completion,60, +24527,false,textDocument/didOpen,,1747 +77818,false,textDocument/didOpen,,1750 +67,false,textDocument/completion,60, +84820,false,textDocument/didOpen,,1751 +23437,false,textDocument/didOpen,,1753 +19656,false,textDocument/didOpen,,1754 +21345,false,textDocument/didOpen,,1756 +56,false,textDocument/completion,60, +21982,false,textDocument/didOpen,,1761 +36888,false,textDocument/didOpen,,1756 +64,false,textDocument/completion,60, +31018,false,textDocument/didOpen,,1761 +23790,false,textDocument/didOpen,,1762 +27712,false,textDocument/didOpen,,1764 +49,false,textDocument/completion,60, +18607,false,textDocument/didOpen,,1770 +138095,false,textDocument/didOpen,,1771 +117857,false,textDocument/didOpen,,1774 +83345,false,textDocument/didOpen,,1776 +142330,false,textDocument/didOpen,,1777 +144082,false,textDocument/didOpen,,1779 +92878,false,textDocument/didOpen,,1784 +197264,false,textDocument/didOpen,,1786 +183106,false,textDocument/didOpen,,1789 +267,false,textDocument/completion,107, +252814,false,textDocument/didOpen,,1794 +272,false,textDocument/didOpen,,1796 +22,false,textDocument/completion,107, +118934,false,textDocument/didOpen,,1806 +165370,false,textDocument/didOpen,,1807 +138,false,textDocument/completion,107, +160805,false,textDocument/didOpen,,1813 +263169,false,textDocument/didOpen,,1815 +186,false,textDocument/completion,107, +183379,false,textDocument/didOpen,,1817 +606,false,textDocument/didOpen,,1819 +67,false,textDocument/completion,107, +148531,false,textDocument/didOpen,,1820 +115,false,textDocument/completion,78, +132433,false,textDocument/didOpen,,1821 +148596,false,textDocument/didOpen,,1822 +136911,false,textDocument/didOpen,,1829 +156385,false,textDocument/didOpen,,1823 +234,false,textDocument/didOpen,,1821 +121,false,textDocument/completion,78, +270601,false,textDocument/didOpen,,1823 +230881,false,textDocument/didOpen,,1824 +174504,false,textDocument/didOpen,,1826 +166746,false,textDocument/didOpen,,1827 +198,false,textDocument/completion,78, +244188,false,textDocument/didOpen,,1829 +246823,false,textDocument/didOpen,,1831 +142,false,textDocument/completion,78, +339700,false,textDocument/didOpen,,1835 +128,false,textDocument/completion,78, +153152,false,textDocument/didOpen,,1836 +259313,false,textDocument/didOpen,,1839 +298524,false,textDocument/didOpen,,1838 +285558,false,textDocument/didOpen,,1844 +326483,false,textDocument/didOpen,,1845 +728,false,textDocument/didOpen,,1849 +222,false,textDocument/completion,108, +57715,false,textDocument/didOpen,,1852 +70487,false,textDocument/didOpen,,1854 +60127,false,textDocument/didOpen,,1855 +45,false,textDocument/completion,60, +62899,false,textDocument/didOpen,,1857 +57,false,textDocument/completion,60, +110989,false,textDocument/didOpen,,1859 +93517,false,textDocument/didOpen,,1858 +38,false,textDocument/completion,60, +60936,false,textDocument/didOpen,,1863 +87656,false,textDocument/didOpen,,1865 +59,false,textDocument/completion,60, +63937,false,textDocument/didOpen,,1869 +39,false,textDocument/completion,60, +70035,false,textDocument/didOpen,,1876 +48,false,textDocument/completion,60, +83594,false,textDocument/didOpen,,1877 +77024,false,textDocument/didOpen,,1878 +73,false,textDocument/completion,60, +161169,false,textDocument/didOpen,,1883 +56,false,textDocument/completion,60, +77770,false,textDocument/didOpen,,1884 +67055,false,textDocument/didOpen,,1889 +51,false,textDocument/completion,60, +73307,false,textDocument/didOpen,,1896 +44,false,textDocument/completion,60, +321721,false,textDocument/didOpen,,1904 +310176,false,textDocument/didOpen,,1906 +326929,false,textDocument/didOpen,,1908 +323300,false,textDocument/didOpen,,1909 +260296,false,textDocument/didOpen,,1910 +266637,false,textDocument/didOpen,,1914 +297903,false,textDocument/didOpen,,1915 +106,false,textDocument/completion,78, +298680,false,textDocument/didOpen,,1924 +288,false,textDocument/didOpen,,1925 +128,false,textDocument/completion,78, +380630,false,textDocument/didOpen,,1933 +305502,false,textDocument/didOpen,,1934 +126,false,textDocument/completion,78, +279545,false,textDocument/didOpen,,1936 +269261,false,textDocument/didOpen,,1946 +210,false,textDocument/didOpen,,1947 +96,false,textDocument/completion,78, +331376,false,textDocument/didOpen,,1946 +229,false,textDocument/didOpen,,1947 +137,false,textDocument/completion,78, +356271,false,textDocument/didOpen,,1955 +314174,false,textDocument/didOpen,,1957 +113,false,textDocument/completion,78, +326988,false,textDocument/didOpen,,1960 +281053,false,textDocument/didOpen,,1961 +296183,false,textDocument/didOpen,,1963 +354721,false,textDocument/didOpen,,1964 +123,false,textDocument/completion,78, +266911,false,textDocument/didOpen,,1976 +296139,false,textDocument/didOpen,,1975 +349890,false,textDocument/didOpen,,1961 +121474,false,textDocument/didOpen,,1963 +91571,false,textDocument/didOpen,,1965 +68,false,textDocument/completion,60, +123397,false,textDocument/didOpen,,1973 +2576,false,textDocument/completion,60, +95277,false,textDocument/didOpen,,1976 +1349,false,textDocument/completion,60, +161797,false,textDocument/didOpen,,1971 +107502,false,textDocument/didOpen,,1972 +390114,false,textDocument/didOpen,,1978 +423882,false,textDocument/didOpen,,1981 +421047,false,textDocument/didOpen,,1982 +594650,false,textDocument/didOpen,,1983 +488964,false,textDocument/didOpen,,1990 +685499,false,textDocument/didOpen,,1984 +424654,false,textDocument/didOpen,,1981 +378,false,textDocument/didOpen,,1982 +243,false,textDocument/didOpen,,1983 +110,false,textDocument/completion,78, +251,false,textDocument/didOpen,,1985 +218,false,textDocument/didOpen,,1984 +715732,false,textDocument/didOpen,,1983 +10617,false,textDocument/completion,115, +539994,false,textDocument/didOpen,,1985 +592051,false,textDocument/didOpen,,1988 +540224,false,textDocument/didOpen,,1995 +522772,false,textDocument/didOpen,,2001 +503995,false,textDocument/didOpen,,1994 +435523,false,textDocument/didOpen,,2001 +624050,false,textDocument/didOpen,,1995 +553010,false,textDocument/didOpen,,1999 +581289,false,textDocument/didOpen,,2001 +450005,false,textDocument/didOpen,,2002 +97,false,textDocument/completion,78, +361152,false,textDocument/didOpen,,2003 +384697,false,textDocument/didOpen,,2005 +412801,false,textDocument/didOpen,,2004 +116,false,textDocument/completion,78, +352687,false,textDocument/didOpen,,2006 +415377,false,textDocument/didOpen,,2007 +367692,false,textDocument/didOpen,,2008 +403036,false,textDocument/didOpen,,2006 +352382,false,textDocument/didOpen,,2007 +363176,false,textDocument/didOpen,,2006 +525846,false,textDocument/didOpen,,2007 +350807,false,textDocument/didOpen,,2009 +433795,false,textDocument/didOpen,,2011 +194,false,textDocument/completion,78, +391767,false,textDocument/didOpen,,2013 +406393,false,textDocument/didOpen,,2011 +463700,false,textDocument/didOpen,,2015 +127,false,textDocument/completion,78, +392895,false,textDocument/didOpen,,2016 +228,false,textDocument/didOpen,,2017 +505986,false,textDocument/didOpen,,2016 +109,false,textDocument/completion,78, +437,false,textDocument/didOpen,,2011 +208,false,textDocument/completion,78, +593214,false,textDocument/didOpen,,2012 +5333,false,textDocument/completion,116, +888089,false,textDocument/didOpen,,2013 +632,false,textDocument/didOpen,,2014 +44,false,textDocument/completion,1, +437,false,textDocument/didOpen,,2016 +762,false,textDocument/didOpen,,2017 +552,false,textDocument/didOpen,,2033 +420,false,textDocument/didOpen,,2042 +408,false,textDocument/didOpen,,2043 +409,false,textDocument/didOpen,,2050 +57,false,textDocument/completion,1, +498,false,textDocument/didOpen,,2057 +1128,false,textDocument/didOpen,,2059 +333,false,textDocument/didOpen,,2060 +379,false,textDocument/didOpen,,2061 +1029,false,textDocument/didOpen,,2060 +388,false,textDocument/didOpen,,2067 +60,false,textDocument/completion,1, +1046,false,textDocument/didOpen,,2067 +394,false,textDocument/didOpen,,2068 +332,false,textDocument/didOpen,,2073 +85,false,textDocument/completion,1, +620,false,textDocument/didOpen,,2060 +819038,false,textDocument/didOpen,,2012 +731286,false,textDocument/didOpen,,2003 +175,false,textDocument/completion,116, +767242,false,textDocument/didOpen,,2009 +658,false,textDocument/didOpen,,1938 +774490,false,textDocument/didOpen,,2009 +659458,false,textDocument/didOpen,,1958 +993147,false,textDocument/didOpen,,2009 +712506,false,textDocument/didOpen,,2005 +644152,false,textDocument/didOpen,,2006 +106,false,textDocument/completion,116, +664127,false,textDocument/didOpen,,2012 +611549,false,textDocument/didOpen,,1954 +732894,false,textDocument/didOpen,,1953 +941468,false,textDocument/didOpen,,1883 +1199717,false,textDocument/didOpen,,1878 +710983,false,textDocument/didOpen,,1879 +191,false,textDocument/completion,110, +625889,false,textDocument/didOpen,,1886 +20191,false,textDocument/didOpen,,346 +1536,false,textDocument/didOpen,,351 +71,false,textDocument/completion,3, +777,false,textDocument/didOpen,,356 +1273,false,textDocument/didOpen,,357 +1355,false,textDocument/didOpen,,358 +73,false,textDocument/completion,3, +999,false,textDocument/didOpen,,360 +180988,false,textDocument/didOpen,,1886 +86285,false,textDocument/didOpen,,1885 +74955,false,textDocument/didOpen,,1886 +306252,false,textDocument/didOpen,,1887 +178001,false,textDocument/didOpen,,1892 +81407,false,textDocument/didOpen,,1886 +86479,false,textDocument/didOpen,,1885 +163385,false,textDocument/didOpen,,1886 +7942,false,textDocument/didOpen,,360 +117,false,textDocument/didOpen,,346 +300,false,textDocument/didOpen,,349 +304,false,textDocument/didOpen,,348 +277,false,textDocument/didOpen,,350 +355,false,textDocument/didOpen,,289 +601,false,textDocument/didOpen,,290 +566,false,textDocument/didOpen,,292 +320,false,textDocument/didOpen,,294 +55,false,textDocument/completion,1, +272,false,textDocument/didOpen,,295 +1155,false,textDocument/didOpen,,295 +166,false,textDocument/completion,1, +351,false,textDocument/didOpen,,297 +387,false,textDocument/didOpen,,301 +283,false,textDocument/didOpen,,305 +348,false,textDocument/didOpen,,306 +349,false,textDocument/didOpen,,310 +400,false,textDocument/didOpen,,312 +401,false,textDocument/didOpen,,313 +317,false,textDocument/didOpen,,314 +47,false,textDocument/completion,1, +435,false,textDocument/didOpen,,312 +445,false,textDocument/didOpen,,314 +446,false,textDocument/didOpen,,315 +429,false,textDocument/didOpen,,319 +393,false,textDocument/didOpen,,322 +626,false,textDocument/didOpen,,329 +433,false,textDocument/didOpen,,332 +325,false,textDocument/didOpen,,335 +454,false,textDocument/didOpen,,336 +422,false,textDocument/didOpen,,356 +402,false,textDocument/didOpen,,362 +63,false,textDocument/completion,1, +920,false,textDocument/didOpen,,361 +289,false,textDocument/didOpen,,360 +952,false,textDocument/didOpen,,361 +135,false,textDocument/completion,1, +440,false,textDocument/didOpen,,363 +59,false,textDocument/completion,1, +272,false,textDocument/didOpen,,365 +64,false,textDocument/completion,1, +1214,false,textDocument/didOpen,,366 +158,false,textDocument/completion,1, +338,false,textDocument/didOpen,,365 +348,false,textDocument/didOpen,,367 +62,false,textDocument/completion,1, +294,false,textDocument/didOpen,,369 +335,false,textDocument/didOpen,,370 +494,false,textDocument/didOpen,,358 +351,false,textDocument/didOpen,,361 +304,false,textDocument/didOpen,,363 +243,false,textDocument/didOpen,,366 +34,false,textDocument/completion,1, +1055,false,textDocument/didOpen,,370 +403,false,textDocument/didOpen,,373 +282,false,textDocument/didOpen,,378 +257,false,textDocument/didOpen,,374 +1017,false,textDocument/didOpen,,368 +103,false,textDocument/completion,1, +263,false,textDocument/didOpen,,372 +265,false,textDocument/didOpen,,376 +1120,false,textDocument/didOpen,,375 +134,false,textDocument/completion,1, +267,false,textDocument/didOpen,,378 +264,false,textDocument/didOpen,,374 +263,false,textDocument/didOpen,,373 +953,false,textDocument/didOpen,,372 +237,false,textDocument/didOpen,,367 +236,false,textDocument/didOpen,,368 +311,false,textDocument/didOpen,,367 +267,false,textDocument/didOpen,,369 +271,false,textDocument/didOpen,,370 +270,false,textDocument/didOpen,,373 +35,false,textDocument/completion,1, +418,false,textDocument/didOpen,,375 +296,false,textDocument/didOpen,,369 +321,false,textDocument/didOpen,,370 +222,false,textDocument/didOpen,,373 +35,false,textDocument/completion,1, +219,false,textDocument/didOpen,,374 +1316,false,textDocument/didOpen,,369 +305,false,textDocument/didOpen,,375 +251,false,textDocument/didOpen,,377 +74,false,textDocument/completion,1, +360,false,textDocument/didOpen,,375 +272,false,textDocument/didOpen,,377 +324,false,textDocument/didOpen,,379 +41,false,textDocument/completion,1, +321,false,textDocument/didOpen,,382 +262,false,textDocument/didOpen,,385 +369,false,textDocument/didOpen,,386 +250,false,textDocument/didOpen,,387 +27,false,textDocument/completion,1, +304,false,textDocument/didOpen,,391 +156,false,textDocument/didOpen,,392 +405,false,textDocument/didOpen,,394 +366,false,textDocument/didOpen,,401 +342,false,textDocument/didOpen,,402 +45,false,textDocument/completion,1, +290,false,textDocument/didOpen,,406 +279,false,textDocument/didOpen,,407 +70,false,textDocument/didOpen,,409 +35,false,textDocument/completion,1, +61,false,textDocument/didOpen,,411 +290,false,textDocument/didOpen,,415 +262,false,textDocument/didOpen,,422 +330,false,textDocument/didOpen,,420 +333,false,textDocument/didOpen,,421 +344,false,textDocument/didOpen,,422 +42,false,textDocument/completion,1, +607,false,textDocument/didOpen,,425 +50,false,textDocument/completion,1, +252,false,textDocument/didOpen,,400 +347,false,textDocument/didOpen,,401 +293,false,textDocument/didOpen,,402 +36,false,textDocument/completion,1, +275,false,textDocument/didOpen,,411 +219,false,textDocument/didOpen,,413 +345,false,textDocument/didOpen,,415 +48,false,textDocument/completion,1, +733,false,textDocument/didOpen,,417 +988,false,textDocument/didOpen,,418 +261,false,textDocument/didOpen,,416 +992,false,textDocument/didOpen,,418 +261,false,textDocument/didOpen,,419 +349,false,textDocument/didOpen,,420 +41,false,textDocument/completion,1, +467,false,textDocument/didOpen,,424 +293,false,textDocument/didOpen,,425 +462,false,textDocument/didOpen,,427 +284,false,textDocument/didOpen,,428 +46,false,textDocument/completion,1, +326,false,textDocument/didOpen,,437 +358,false,textDocument/didOpen,,440 +77,false,textDocument/completion,1, +328,false,textDocument/didOpen,,443 +1034,false,textDocument/didOpen,,442 +390,false,textDocument/didOpen,,444 +47,false,textDocument/completion,1, +314,false,textDocument/didOpen,,449 +63,false,textDocument/didOpen,,451 +40,false,textDocument/completion,1, +283,false,textDocument/didOpen,,457 +271,false,textDocument/didOpen,,458 +324,false,textDocument/didOpen,,463 +958,false,textDocument/didOpen,,460 +325,false,textDocument/didOpen,,463 +37,false,textDocument/completion,1, +265,false,textDocument/didOpen,,428 +312,false,textDocument/didOpen,,426 +484,false,textDocument/didOpen,,427 +425,false,textDocument/didOpen,,428 +374,false,textDocument/didOpen,,430 +302,false,textDocument/didOpen,,433 +1432,false,textDocument/didOpen,,434 +286,false,textDocument/didOpen,,435 +333,false,textDocument/didOpen,,438 +538,false,textDocument/didOpen,,441 +78,false,textDocument/completion,1, +359,false,textDocument/didOpen,,444 +1289,false,textDocument/didOpen,,445 +364,false,textDocument/didOpen,,450 +635,false,textDocument/didOpen,,445 +76,false,textDocument/completion,1, +280,false,textDocument/didOpen,,450 +600,false,textDocument/didOpen,,445 +65,false,textDocument/completion,1, +306,false,textDocument/didOpen,,448 +324,false,textDocument/didOpen,,444 +38,false,textDocument/completion,1, +1081,false,textDocument/didOpen,,448 +358,false,textDocument/didOpen,,449 +35,false,textDocument/completion,1, +648,false,textDocument/didOpen,,450 +32,false,textDocument/completion,1, +421,false,textDocument/didOpen,,451 +52,false,textDocument/completion,1, +1086,false,textDocument/didOpen,,452 +292,false,textDocument/didOpen,,453 +41,false,textDocument/completion,1, +405,false,textDocument/didOpen,,454 +38,false,textDocument/completion,1, +509,false,textDocument/didOpen,,416 +591,false,textDocument/didOpen,,425 +380,false,textDocument/didOpen,,417 +456,false,textDocument/didOpen,,416 +277,false,textDocument/didOpen,,425 +322,false,textDocument/didOpen,,421 +352,false,textDocument/didOpen,,419 +377,false,textDocument/didOpen,,421 +42,false,textDocument/completion,1, +287,false,textDocument/didOpen,,424 +475,false,textDocument/didOpen,,425 +345,false,textDocument/didOpen,,426 +73,false,textDocument/didOpen,,427 +60,false,textDocument/completion,1, +90,false,textDocument/didOpen,,427 +57,false,textDocument/completion,1, +1085,false,textDocument/didOpen,,436 +285,false,textDocument/didOpen,,438 +691,false,textDocument/didOpen,,440 +39,false,textDocument/completion,1, +279,false,textDocument/didOpen,,443 +32,false,textDocument/completion,1, +301,false,textDocument/didOpen,,444 +42,false,textDocument/completion,1, +1497,false,textDocument/didOpen,,447 +421,false,textDocument/didOpen,,448 +311,false,textDocument/didOpen,,454 +41,false,textDocument/completion,1, +289,false,textDocument/didOpen,,460 +37,false,textDocument/completion,1, +1759,false,textDocument/didOpen,,464 +280,false,textDocument/didOpen,,454 +283,false,textDocument/didOpen,,451 +73,false,textDocument/didOpen,,453 +43,false,textDocument/completion,1, +276,false,textDocument/didOpen,,455 +284,false,textDocument/didOpen,,456 +413,false,textDocument/didOpen,,457 +286,false,textDocument/didOpen,,458 +1183,false,textDocument/didOpen,,459 +461,false,textDocument/didOpen,,460 +87,false,textDocument/completion,1, +292,false,textDocument/didOpen,,461 +35,false,textDocument/completion,1, +588,false,textDocument/didOpen,,462 +90,false,textDocument/completion,1, +313,false,textDocument/didOpen,,463 +41,false,textDocument/completion,1, +307,false,textDocument/didOpen,,465 +278,false,textDocument/didOpen,,466 +587,false,textDocument/didOpen,,468 +81,false,textDocument/completion,1, +468,false,textDocument/didOpen,,470 +281,false,textDocument/didOpen,,471 +83,false,textDocument/didOpen,,458 +344,false,textDocument/didOpen,,471 +104,false,textDocument/didOpen,,469 +99,false,textDocument/didOpen,,465 +277,false,textDocument/didOpen,,463 +360,false,textDocument/didOpen,,461 +166,false,textDocument/didOpen,,460 +152,false,textDocument/didOpen,,444 +159,false,textDocument/didOpen,,438 +178,false,textDocument/didOpen,,430 +153,false,textDocument/didOpen,,433 +15615,false,textDocument/didOpen,,434 +69,false,textDocument/completion,7, +4349,false,textDocument/didOpen,,439 +100,false,textDocument/didOpen,,440 +3930,false,textDocument/didOpen,,443 +6410,false,textDocument/didOpen,,442 +5240,false,textDocument/didOpen,,443 +33,false,textDocument/completion,7, +5242,false,textDocument/didOpen,,447 +49,false,textDocument/completion,7, +4308,false,textDocument/didOpen,,448 +6790,false,textDocument/didOpen,,449 +203,false,textDocument/didOpen,,453 +260,false,textDocument/didOpen,,451 +631,false,textDocument/didOpen,,453 +25457,false,textDocument/didOpen,,456 +71,false,textDocument/completion,7, +8293,false,textDocument/didOpen,,463 +41,false,textDocument/completion,7, +185,false,textDocument/didOpen,,466 +10991,false,textDocument/didOpen,,478 +176,false,textDocument/didOpen,,466 +7785,false,textDocument/didOpen,,467 +158,false,textDocument/didOpen,,468 +532,false,textDocument/didOpen,,470 +159,false,textDocument/didOpen,,468 +175,false,textDocument/didOpen,,466 +59061,false,textDocument/didOpen,,460 +20787,false,textDocument/didOpen,,459 +3851,false,textDocument/didOpen,,448 +5851,false,textDocument/didOpen,,442 +4973,false,textDocument/didOpen,,443 +231,false,textDocument/didOpen,,446 +124,false,textDocument/didOpen,,447 +61,false,textDocument/completion,7, +4549,false,textDocument/didOpen,,448 +6634,false,textDocument/didOpen,,442 +8644,false,textDocument/didOpen,,445 +7424,false,textDocument/didOpen,,446 +13,false,textDocument/completion,7, +4204,false,textDocument/didOpen,,456 +17761,false,textDocument/didOpen,,456 +24,false,textDocument/completion,7, +4072,false,textDocument/didOpen,,461 +5977,false,textDocument/didOpen,,442 +10944,false,textDocument/didOpen,,443 +91,false,textDocument/didOpen,,446 +57,false,textDocument/completion,7, +4489,false,textDocument/didOpen,,448 +7776,false,textDocument/didOpen,,451 +42,false,textDocument/completion,7, +7057,false,textDocument/didOpen,,449 +74,false,textDocument/didOpen,,452 +44,false,textDocument/completion,7, +24836,false,textDocument/didOpen,,454 +8273,false,textDocument/didOpen,,455 +6109,false,textDocument/didOpen,,457 +36780,false,textDocument/didOpen,,458 +46,false,textDocument/completion,41, +18471,false,textDocument/didOpen,,464 +4302,false,textDocument/didOpen,,465 +72,false,textDocument/didOpen,,468 +18134,false,textDocument/didOpen,,464 +156,false,textDocument/didOpen,,433 +35153,false,textDocument/didOpen,,464 +26124,false,textDocument/didOpen,,465 +4299,false,textDocument/didOpen,,466 +16047,false,textDocument/didOpen,,449 +24487,false,textDocument/didOpen,,443 +6407,false,textDocument/didOpen,,437 +9204,false,textDocument/didOpen,,449 +4854,false,textDocument/didOpen,,466 +34508,false,textDocument/didOpen,,465 +3764,false,textDocument/didOpen,,458 +50684,false,textDocument/didOpen,,459 +46,false,textDocument/completion,41, +26015,false,textDocument/didOpen,,467 +57,false,textDocument/completion,41, +63783,false,textDocument/didOpen,,468 +25508,false,textDocument/didOpen,,469 +41265,false,textDocument/didOpen,,472 +248,false,textDocument/didOpen,,433 +44846,false,textDocument/didOpen,,464 +35613,false,textDocument/didOpen,,465 +154,false,textDocument/didOpen,,434 +3988,false,textDocument/didOpen,,429 +340,false,textDocument/didOpen,,430 +111,false,textDocument/completion,7, +185,false,textDocument/didOpen,,432 +16415,false,textDocument/didOpen,,429 +241,false,textDocument/didOpen,,430 +65,false,textDocument/completion,7, +152,false,textDocument/didOpen,,436 +8023,false,textDocument/didOpen,,440 +26298,false,textDocument/didOpen,,441 +57,false,textDocument/completion,7, +16080,false,textDocument/didOpen,,442 +4638,false,textDocument/didOpen,,443 +8377,false,textDocument/didOpen,,444 +62,false,textDocument/completion,7, +7896,false,textDocument/didOpen,,445 +31,false,textDocument/completion,7, +7930,false,textDocument/didOpen,,446 +8786,false,textDocument/didOpen,,446 +32,false,textDocument/completion,7, +212,false,textDocument/didOpen,,452 +249,false,textDocument/didOpen,,426 +286,false,textDocument/didOpen,,430 +33,false,textDocument/completion,1, +296,false,textDocument/didOpen,,432 +39,false,textDocument/completion,1, +312,false,textDocument/didOpen,,436 +286,false,textDocument/didOpen,,430 +37,false,textDocument/completion,1, +987,false,textDocument/didOpen,,434 +270,false,textDocument/didOpen,,435 +278,false,textDocument/didOpen,,434 +33,false,textDocument/completion,1, +348,false,textDocument/didOpen,,435 +1094,false,textDocument/didOpen,,435 +567,false,textDocument/didOpen,,436 +54,false,textDocument/completion,1, +386,false,textDocument/didOpen,,438 +142,false,textDocument/didOpen,,439 +152,false,textDocument/didOpen,,438 +383,false,textDocument/didOpen,,442 +69,false,textDocument/completion,1, +154,false,textDocument/didOpen,,441 +260,false,textDocument/didOpen,,438 +158,false,textDocument/didOpen,,441 +145,false,textDocument/didOpen,,445 +73,false,textDocument/completion,1, +295,false,textDocument/didOpen,,449 +46,false,textDocument/completion,1, +386,false,textDocument/didOpen,,453 +41,false,textDocument/completion,1, +1456,false,textDocument/didOpen,,449 +404,false,textDocument/didOpen,,450 +67,false,textDocument/completion,1, +333,false,textDocument/didOpen,,455 +450,false,textDocument/didOpen,,456 +403,false,textDocument/didOpen,,457 +320,false,textDocument/didOpen,,458 +40,false,textDocument/completion,1, +327,false,textDocument/didOpen,,465 +31947,false,textDocument/didOpen,,469 +79,false,textDocument/completion,16, +37454,false,textDocument/didOpen,,474 +19477,false,textDocument/didOpen,,477 +25686,false,textDocument/didOpen,,497 +29569,false,textDocument/didOpen,,496 +22961,false,textDocument/didOpen,,497 +51,false,textDocument/completion,17, +20030,false,textDocument/didOpen,,498 +287,false,textDocument/didOpen,,499 +40,false,textDocument/completion,1, +475,false,textDocument/didOpen,,502 +344,false,textDocument/didOpen,,503 +35,false,textDocument/completion,1, +277,false,textDocument/didOpen,,511 +58,false,textDocument/completion,1, +444,false,textDocument/didOpen,,513 +61,false,textDocument/completion,1, +406,false,textDocument/didOpen,,509 +27489,false,textDocument/didOpen,,497 +30587,false,textDocument/didOpen,,498 +71,false,textDocument/completion,17, +21082,false,textDocument/didOpen,,499 +57,false,textDocument/completion,17, +21011,false,textDocument/didOpen,,500 +28521,false,textDocument/didOpen,,501 +18,false,textDocument/completion,17, +19032,false,textDocument/didOpen,,503 +34731,false,textDocument/didOpen,,501 +17684,false,textDocument/didOpen,,500 +22363,false,textDocument/didOpen,,501 +15,false,textDocument/completion,17, +39497,false,textDocument/didOpen,,500 +23122,false,textDocument/didOpen,,501 +20,false,textDocument/completion,17, +23925,false,textDocument/didOpen,,504 +20,false,textDocument/completion,17, +23611,false,textDocument/didOpen,,500 +20160,false,textDocument/didOpen,,501 +14,false,textDocument/completion,17, +18080,false,textDocument/didOpen,,503 +143486,false,textDocument/didOpen,,1886 +57844,false,textDocument/didOpen,,1885 +47918,false,textDocument/didOpen,,1886 +69888,false,textDocument/didOpen,,1887 +154686,false,textDocument/didOpen,,1887 +108639,false,textDocument/didOpen,,1887 +79397,false,textDocument/didOpen,,1886 +120004,false,textDocument/didOpen,,1887 +100,false,textDocument/completion,106, +83170,false,textDocument/didOpen,,1889 +56506,false,textDocument/didOpen,,1884 +91050,false,textDocument/didOpen,,1883 +95573,false,textDocument/didOpen,,1884 +80100,false,textDocument/didOpen,,1885 +87170,false,textDocument/didOpen,,1884 +90076,false,textDocument/didOpen,,1885 +84450,false,textDocument/didOpen,,1884 +73798,false,textDocument/didOpen,,1886 +117262,false,textDocument/didOpen,,1888 +139248,false,textDocument/didOpen,,1888 +141840,false,textDocument/didOpen,,1888 +67545,false,textDocument/didOpen,,1888 +219,false,textDocument/completion,110, +75906,false,textDocument/didOpen,,1889 +167,false,textDocument/completion,110, +64679,false,textDocument/didOpen,,1890 +117,false,textDocument/completion,110, +94180,false,textDocument/didOpen,,1891 +64688,false,textDocument/didOpen,,1892 +199,false,textDocument/completion,110, +101880,false,textDocument/didOpen,,1894 +109,false,textDocument/completion,110, +1207,false,textDocument/didOpen,,1893 +1525,false,textDocument/didOpen,,1894 +145,false,textDocument/completion,110, +94897,false,textDocument/didOpen,,1894 +207,false,textDocument/completion,110, +139198,false,textDocument/didOpen,,1894 +70140,false,textDocument/didOpen,,1896 +68438,false,textDocument/didOpen,,1898 +141566,false,textDocument/didOpen,,1898 +1113,false,textDocument/didOpen,,1899 +323,false,textDocument/didOpen,,1900 +146,false,textDocument/completion,110, +97818,false,textDocument/didOpen,,1899 +143928,false,textDocument/didOpen,,1899 +66548,false,textDocument/didOpen,,1891 +60247,false,textDocument/didOpen,,1885 +100801,false,textDocument/didOpen,,1891 +63205,false,textDocument/didOpen,,1899 +81579,false,textDocument/didOpen,,1887 +67589,false,textDocument/didOpen,,1899 +85058,false,textDocument/didOpen,,1900 +85039,false,textDocument/didOpen,,1908 +119721,false,textDocument/didOpen,,1909 +9471,false,textDocument/didOpen,,346 +5549,false,textDocument/didOpen,,347 +85,false,textDocument/completion,3, +4724,false,textDocument/didOpen,,350 +150,false,textDocument/completion,3, +3024,false,textDocument/didOpen,,345 +6775,false,textDocument/didOpen,,347 +175,false,textDocument/completion,3, +3817,false,textDocument/didOpen,,349 +109,false,textDocument/didOpen,,351 +3774,false,textDocument/didOpen,,349 +3036,false,textDocument/didOpen,,350 +145,false,textDocument/completion,3, +116,false,textDocument/didOpen,,353 +167,false,textDocument/completion,3, +2204,false,textDocument/didOpen,,351 +2940,false,textDocument/didOpen,,352 +194,false,textDocument/completion,2, +3013,false,textDocument/didOpen,,352 +35,false,textDocument/completion,3, +3014,false,textDocument/didOpen,,354 +2978,false,textDocument/didOpen,,355 +3004,false,textDocument/didOpen,,354 +4532,false,textDocument/didOpen,,344 +151,false,textDocument/completion,3, +210,false,textDocument/didOpen,,1 +79,false,textDocument/didOpen,,96 +923,false,textDocument/didOpen,,1 +972,false,textDocument/didOpen,,7 +971,false,textDocument/didOpen,,1 +4856,false,textDocument/didOpen,,344 +1258,false,textDocument/didOpen,,344 +1007,false,textDocument/didOpen,,346 +899,false,textDocument/didOpen,,347 +669,false,textDocument/didOpen,,350 +96,false,textDocument/completion,1, +1081,false,textDocument/didOpen,,359 +1134,false,textDocument/didOpen,,362 +1300,false,textDocument/didOpen,,360 +4763,false,textDocument/didOpen,,362 +46,false,textDocument/completion,5, +4940,false,textDocument/didOpen,,363 +5141,false,textDocument/didOpen,,364 +95,false,textDocument/didOpen,,365 +11,false,textDocument/completion,5, +5250,false,textDocument/didOpen,,368 +5141,false,textDocument/didOpen,,379 +5087,false,textDocument/didOpen,,381 +2506,false,textDocument/didOpen,,385 +11,false,textDocument/completion,5, +12094,false,textDocument/didOpen,,387 +38,false,textDocument/completion,5, +52,false,textDocument/completion,5, +6403,false,textDocument/didOpen,,388 +44,false,textDocument/completion,5, +16153,false,textDocument/didOpen,,389 +40,false,textDocument/completion,5, +4995,false,textDocument/didOpen,,392 +4936,false,textDocument/didOpen,,391 +7969,false,textDocument/didOpen,,386 +46,false,textDocument/completion,5, +1388,false,textDocument/didOpen,,387 +4963,false,textDocument/didOpen,,389 +4158,false,textDocument/didOpen,,383 +34,false,textDocument/completion,5, +4943,false,textDocument/didOpen,,389 +4871,false,textDocument/didOpen,,387 +5939,false,textDocument/didOpen,,388 +46,false,textDocument/completion,5, +4087,false,textDocument/didOpen,,392 +14,false,textDocument/completion,5, +4909,false,textDocument/didOpen,,393 +44,false,textDocument/completion,5, +4936,false,textDocument/didOpen,,396 +2480,false,textDocument/didOpen,,398 +1543,false,textDocument/didOpen,,399 +16,false,textDocument/completion,5, +2749,false,textDocument/didOpen,,402 +12,false,textDocument/completion,5, +6141,false,textDocument/didOpen,,403 +44,false,textDocument/completion,5, +5248,false,textDocument/didOpen,,405 +4666,false,textDocument/didOpen,,406 +6001,false,textDocument/didOpen,,409 +46,false,textDocument/completion,5, +4912,false,textDocument/didOpen,,413 +7288,false,textDocument/didOpen,,421 +1363,false,textDocument/didOpen,,422 +50,false,textDocument/completion,5, +7557,false,textDocument/didOpen,,423 +53,false,textDocument/completion,5, +6274,false,textDocument/didOpen,,424 +2673,false,textDocument/didOpen,,427 +15,false,textDocument/completion,5, +4519,false,textDocument/didOpen,,431 +2443,false,textDocument/didOpen,,433 +10,false,textDocument/completion,5, +4491,false,textDocument/didOpen,,434 +4208,false,textDocument/didOpen,,437 +2892,false,textDocument/didOpen,,441 +4882,false,textDocument/didOpen,,440 +6000,false,textDocument/didOpen,,441 +29,false,textDocument/completion,5, +5586,false,textDocument/didOpen,,447 +12,false,textDocument/completion,5, +4876,false,textDocument/didOpen,,448 +45,false,textDocument/completion,5, +4686,false,textDocument/didOpen,,458 +1325,false,textDocument/didOpen,,459 +10,false,textDocument/completion,5, +5050,false,textDocument/didOpen,,465 +4445,false,textDocument/didOpen,,466 +34,false,textDocument/completion,5, +5229,false,textDocument/didOpen,,469 +5264,false,textDocument/didOpen,,470 +5263,false,textDocument/didOpen,,472 +1059,false,textDocument/didOpen,,473 +1709,false,textDocument/didOpen,,477 +5137,false,textDocument/didOpen,,480 +3800,false,textDocument/didOpen,,481 +28,false,textDocument/completion,5, +5374,false,textDocument/didOpen,,484 +5674,false,textDocument/didOpen,,488 +5486,false,textDocument/didOpen,,487 +7075,false,textDocument/didOpen,,489 +4723,false,textDocument/didOpen,,493 +4638,false,textDocument/didOpen,,494 +14,false,textDocument/completion,5, +7506,false,textDocument/didOpen,,493 +4244,false,textDocument/didOpen,,494 +12,false,textDocument/completion,5, +5472,false,textDocument/didOpen,,493 +6328,false,textDocument/didOpen,,494 +13,false,textDocument/completion,5, +4919,false,textDocument/didOpen,,493 +5699,false,textDocument/didOpen,,494 +11,false,textDocument/completion,5, +5018,false,textDocument/didOpen,,501 +1170,false,textDocument/didOpen,,503 +5301,false,textDocument/didOpen,,504 +4944,false,textDocument/didOpen,,507 +5721,false,textDocument/didOpen,,509 +46,false,textDocument/completion,5, +49,false,textDocument/completion,5, +5987,false,textDocument/didOpen,,510 +44,false,textDocument/completion,5, +5900,false,textDocument/didOpen,,511 +47,false,textDocument/completion,5, +5394,false,textDocument/didOpen,,508 +3757,false,textDocument/didOpen,,510 +36,false,textDocument/completion,5, +4992,false,textDocument/didOpen,,518 +1418,false,textDocument/didOpen,,519 +5522,false,textDocument/didOpen,,522 +5019,false,textDocument/didOpen,,520 +5100,false,textDocument/didOpen,,521 +4982,false,textDocument/didOpen,,522 +23493,false,textDocument/didOpen,,524 +36,false,textDocument/completion,23, +12938,false,textDocument/didOpen,,525 +26487,false,textDocument/didOpen,,526 +594,false,textDocument/didOpen,,527 +567,false,textDocument/didOpen,,528 +36,false,textDocument/completion,23, +30891,false,textDocument/didOpen,,534 +34,false,textDocument/completion,23, +16395,false,textDocument/didOpen,,536 +20,false,textDocument/completion,23, +10581,false,textDocument/didOpen,,537 +9843,false,textDocument/didOpen,,540 +10372,false,textDocument/didOpen,,539 +10226,false,textDocument/didOpen,,540 +36689,false,textDocument/didOpen,,546 +10759,false,textDocument/didOpen,,547 +18,false,textDocument/completion,23, +49,false,textDocument/completion,23, +38236,false,textDocument/didOpen,,551 +15,false,textDocument/completion,23, +30990,false,textDocument/didOpen,,555 +43,false,textDocument/completion,23, +10660,false,textDocument/didOpen,,561 +9919,false,textDocument/didOpen,,562 +9190,false,textDocument/didOpen,,571 +21,false,textDocument/completion,23, +30435,false,textDocument/didOpen,,572 +43,false,textDocument/completion,23, +27699,false,textDocument/didOpen,,573 +15266,false,textDocument/didOpen,,574 +51,false,textDocument/completion,23, +32646,false,textDocument/didOpen,,575 +43,false,textDocument/completion,23, +11103,false,textDocument/didOpen,,573 +15589,false,textDocument/didOpen,,572 +28681,false,textDocument/didOpen,,574 +56,false,textDocument/completion,23, +32974,false,textDocument/didOpen,,575 +44,false,textDocument/completion,23, +11602,false,textDocument/didOpen,,578 +31518,false,textDocument/didOpen,,579 +44,false,textDocument/completion,23, +11163,false,textDocument/didOpen,,583 +11167,false,textDocument/didOpen,,584 +31879,false,textDocument/didOpen,,588 +27,false,textDocument/completion,23, +52611,false,textDocument/didOpen,,595 +54,false,textDocument/completion,25, +24129,false,textDocument/didOpen,,596 +690,false,textDocument/didOpen,,600 +46,false,textDocument/completion,25, +703,false,textDocument/didOpen,,601 +53,false,textDocument/completion,25, +707,false,textDocument/didOpen,,602 +43,false,textDocument/completion,25, +700,false,textDocument/didOpen,,598 +722,false,textDocument/didOpen,,600 +61,false,textDocument/completion,25, +52133,false,textDocument/didOpen,,604 +717,false,textDocument/didOpen,,605 +11,false,textDocument/completion,25, +21101,false,textDocument/didOpen,,610 +25933,false,textDocument/didOpen,,615 +28143,false,textDocument/didOpen,,616 +47152,false,textDocument/didOpen,,575 +19598,false,textDocument/didOpen,,576 +33491,false,textDocument/didOpen,,580 +45690,false,textDocument/didOpen,,582 +98,false,textDocument/completion,11, +17440,false,textDocument/didOpen,,584 +47831,false,textDocument/didOpen,,583 +94,false,textDocument/completion,11, +46126,false,textDocument/didOpen,,585 +1560,false,textDocument/completion,11, +46016,false,textDocument/didOpen,,583 +886,false,textDocument/completion,11, +27685,false,textDocument/didOpen,,588 +18745,false,textDocument/didOpen,,590 +66,false,textDocument/completion,11, +330,false,textDocument/didOpen,,593 +292,false,textDocument/didOpen,,594 +295,false,textDocument/completion,11, +312,false,textDocument/completion,11, +48548,false,textDocument/didOpen,,595 +207,false,textDocument/completion,22, +48476,false,textDocument/didOpen,,596 +22199,false,textDocument/didOpen,,597 +24301,false,textDocument/didOpen,,596 +33646,false,textDocument/didOpen,,597 +21872,false,textDocument/didOpen,,602 +46899,false,textDocument/didOpen,,603 +14683,false,textDocument/didOpen,,604 +65,false,textDocument/completion,11, +16861,false,textDocument/didOpen,,609 +49013,false,textDocument/didOpen,,610 +361,false,textDocument/didOpen,,612 +300,false,textDocument/completion,11, +24379,false,textDocument/didOpen,,615 +32893,false,textDocument/didOpen,,620 +34804,false,textDocument/didOpen,,621 +65,false,textDocument/completion,11, +44837,false,textDocument/didOpen,,628 +58505,false,textDocument/didOpen,,629 +234,false,textDocument/completion,26, +55103,false,textDocument/didOpen,,633 +632,false,textDocument/completion,26, +42381,false,textDocument/didOpen,,634 +54970,false,textDocument/didOpen,,635 +45261,false,textDocument/didOpen,,636 +21804,false,textDocument/didOpen,,635 +59095,false,textDocument/didOpen,,636 +75670,false,textDocument/didOpen,,622 +40971,false,textDocument/didOpen,,614 +488,false,textDocument/didOpen,,615 +372,false,textDocument/completion,11, +60712,false,textDocument/didOpen,,617 +35264,false,textDocument/didOpen,,609 +558,false,textDocument/didOpen,,611 +301,false,textDocument/completion,11, +57673,false,textDocument/didOpen,,612 +89627,false,textDocument/didOpen,,599 +82869,false,textDocument/didOpen,,602 +48234,false,textDocument/didOpen,,603 +29274,false,textDocument/didOpen,,604 +73,false,textDocument/completion,11, +31750,false,textDocument/didOpen,,607 +30206,false,textDocument/didOpen,,608 +26020,false,textDocument/didOpen,,614 +62251,false,textDocument/didOpen,,619 +89,false,textDocument/completion,21, +31290,false,textDocument/didOpen,,626 +32158,false,textDocument/didOpen,,627 +57024,false,textDocument/didOpen,,630 +89,false,textDocument/completion,11, +32161,false,textDocument/didOpen,,632 +53340,false,textDocument/didOpen,,633 +73,false,textDocument/completion,11, +35399,false,textDocument/didOpen,,632 +24510,false,textDocument/didOpen,,633 +67,false,textDocument/completion,11, +58312,false,textDocument/didOpen,,629 +72,false,textDocument/completion,11, +25553,false,textDocument/didOpen,,636 +58647,false,textDocument/didOpen,,637 +57761,false,textDocument/didOpen,,637 +86,false,textDocument/completion,11, +53998,false,textDocument/didOpen,,640 +74,false,textDocument/completion,11, +55545,false,textDocument/didOpen,,646 +50733,false,textDocument/didOpen,,647 +113,false,textDocument/completion,21, +66492,false,textDocument/didOpen,,649 +45508,false,textDocument/didOpen,,655 +42421,false,textDocument/didOpen,,662 +70,false,textDocument/completion,11, +53875,false,textDocument/didOpen,,671 +26812,false,textDocument/didOpen,,676 +49689,false,textDocument/didOpen,,675 +34900,false,textDocument/didOpen,,676 +522,false,textDocument/didOpen,,678 +426,false,textDocument/completion,29, +526,false,textDocument/didOpen,,683 +338,false,textDocument/completion,29, +517,false,textDocument/didOpen,,684 +341,false,textDocument/completion,29, +65005,false,textDocument/didOpen,,685 +58314,false,textDocument/didOpen,,686 +115,false,textDocument/completion,30, +72231,false,textDocument/didOpen,,696 +77556,false,textDocument/didOpen,,697 +363,false,textDocument/completion,33, +89811,false,textDocument/didOpen,,700 +97382,false,textDocument/didOpen,,701 +128,false,textDocument/completion,35, +75111,false,textDocument/didOpen,,689 +98377,false,textDocument/didOpen,,685 +100426,false,textDocument/didOpen,,689 +57188,false,textDocument/didOpen,,690 +90,false,textDocument/completion,32, +103225,false,textDocument/didOpen,,671 +75157,false,textDocument/didOpen,,677 +68,false,textDocument/completion,29, +61920,false,textDocument/didOpen,,680 +70766,false,textDocument/didOpen,,681 +79,false,textDocument/completion,11, +65501,false,textDocument/didOpen,,684 +79428,false,textDocument/didOpen,,687 +62527,false,textDocument/didOpen,,689 +47656,false,textDocument/didOpen,,690 +66237,false,textDocument/didOpen,,690 +21420,false,textDocument/didOpen,,693 +19553,false,textDocument/didOpen,,696 +83,false,textDocument/completion,11, +22467,false,textDocument/didOpen,,701 +49589,false,textDocument/didOpen,,702 +119,false,textDocument/completion,33, +19580,false,textDocument/didOpen,,703 +16577,false,textDocument/didOpen,,250 +440622,false,textDocument/didOpen,,7575 +302968,false,textDocument/didOpen,,7586 +305524,false,textDocument/didOpen,,7587 +356158,false,textDocument/didOpen,,7583 +491377,false,textDocument/didOpen,,7577 +562655,false,textDocument/didOpen,,7581 +741799,false,textDocument/didOpen,,7580 +735855,false,textDocument/didOpen,,7585 +873,false,textDocument/didOpen,,7586 +36,false,textDocument/completion,1, +3798,false,textDocument/didOpen,,7587 +650,false,textDocument/didOpen,,7592 +33,false,textDocument/completion,1, +2851,false,textDocument/didOpen,,7594 +79,false,textDocument/completion,1, +1910,false,textDocument/didOpen,,7595 +92,false,textDocument/completion,1, +1737,false,textDocument/didOpen,,7598 +1257,false,textDocument/didOpen,,7599 +3836,false,textDocument/didOpen,,7600 +1428,false,textDocument/didOpen,,7601 +2182,false,textDocument/didOpen,,7602 +1960,false,textDocument/didOpen,,7603 +2150,false,textDocument/didOpen,,7608 +1599,false,textDocument/didOpen,,7611 +107,false,textDocument/completion,1, +1738,false,textDocument/didOpen,,7613 +68,false,textDocument/completion,1, +2691,false,textDocument/didOpen,,7614 +112,false,textDocument/completion,1, +1818,false,textDocument/didOpen,,7615 +2244,false,textDocument/didOpen,,7628 +1184,false,textDocument/didOpen,,7624 +3336,false,textDocument/didOpen,,7626 +2802,false,textDocument/didOpen,,7629 +88,false,textDocument/completion,1, +3270,false,textDocument/didOpen,,7634 +141,false,textDocument/completion,1, +2329,false,textDocument/didOpen,,7640 +2321,false,textDocument/didOpen,,7647 +888,false,textDocument/didOpen,,7648 +1450,false,textDocument/didOpen,,7650 +79,false,textDocument/completion,1, +2373,false,textDocument/didOpen,,7653 +1297,false,textDocument/didOpen,,7654 +2254,false,textDocument/didOpen,,7655 +148,false,textDocument/completion,1, +2687,false,textDocument/didOpen,,7658 +79,false,textDocument/completion,1, +2478,false,textDocument/didOpen,,7659 +97,false,textDocument/completion,1, +1355,false,textDocument/didOpen,,7661 +67,false,textDocument/completion,1, +694,false,textDocument/didOpen,,7663 +42,false,textDocument/completion,1, +897,false,textDocument/didOpen,,7664 +35,false,textDocument/completion,1, +1600,false,textDocument/didOpen,,7665 +79,false,textDocument/completion,1, +2411,false,textDocument/didOpen,,7668 +172,false,textDocument/completion,1, +3829,false,textDocument/didOpen,,7669 +73,false,textDocument/completion,1, +1060,false,textDocument/didOpen,,7672 +2405,false,textDocument/didOpen,,7675 +1506,false,textDocument/didOpen,,7675 +86,false,textDocument/completion,1, +1322,false,textDocument/didOpen,,7677 +1224,false,textDocument/didOpen,,7674 +1700,false,textDocument/didOpen,,7675 +619,false,textDocument/didOpen,,7674 +2124,false,textDocument/didOpen,,7675 +178,false,textDocument/completion,1, +534,false,textDocument/didOpen,,7678 +1541,false,textDocument/didOpen,,7681 +1834,false,textDocument/didOpen,,7674 +955,false,textDocument/didOpen,,7675 +72,false,textDocument/completion,1, +1012,false,textDocument/didOpen,,7676 +3769,false,textDocument/didOpen,,7678 +132,false,textDocument/completion,1, +2135,false,textDocument/didOpen,,7677 +3094,false,textDocument/didOpen,,7677 +90,false,textDocument/completion,1, +3611,false,textDocument/didOpen,,7678 +2099,false,textDocument/didOpen,,7681 +1294,false,textDocument/didOpen,,7683 +63,false,textDocument/completion,1, +3971,false,textDocument/didOpen,,7685 +3081,false,textDocument/didOpen,,7689 +128,false,textDocument/completion,1, +1317,false,textDocument/didOpen,,7692 +1990,false,textDocument/didOpen,,7693 +1661,false,textDocument/didOpen,,7694 +1388,false,textDocument/didOpen,,7695 +918,false,textDocument/didOpen,,7696 +85,false,textDocument/completion,1, +1599,false,textDocument/didOpen,,7699 +1193,false,textDocument/didOpen,,7697 +1298,false,textDocument/didOpen,,7699 +100,false,textDocument/completion,1, +2658,false,textDocument/didOpen,,7701 +1399,false,textDocument/didOpen,,7704 +1365,false,textDocument/didOpen,,7705 +114,false,textDocument/completion,1, +2679,false,textDocument/didOpen,,7708 +1415,false,textDocument/didOpen,,7712 +76,false,textDocument/completion,1, +2926,false,textDocument/didOpen,,7714 +649,false,textDocument/didOpen,,7713 +1738,false,textDocument/didOpen,,7718 +2625,false,textDocument/didOpen,,7716 +1326,false,textDocument/didOpen,,7718 +60,false,textDocument/completion,1, +1467,false,textDocument/didOpen,,7720 +1889,false,textDocument/didOpen,,7722 +910,false,textDocument/didOpen,,7723 +1192,false,textDocument/didOpen,,7725 +115,false,textDocument/completion,1, +2880,false,textDocument/didOpen,,7727 +2645,false,textDocument/didOpen,,7729 +1489,false,textDocument/didOpen,,7730 +594,false,textDocument/didOpen,,7733 +41,false,textDocument/completion,1, +992,false,textDocument/didOpen,,7734 +74,false,textDocument/completion,1, +2402,false,textDocument/didOpen,,7733 +88,false,textDocument/completion,1, +945,false,textDocument/didOpen,,7734 +2176,false,textDocument/didOpen,,7735 +182,false,textDocument/completion,1, +1907,false,textDocument/didOpen,,7734 +109,false,textDocument/completion,1, +863,false,textDocument/didOpen,,7735 +948,false,textDocument/didOpen,,7736 +70,false,textDocument/completion,1, +4725,false,textDocument/didOpen,,7740 +1301,false,textDocument/didOpen,,7743 +66,false,textDocument/completion,1, +2933,false,textDocument/didOpen,,7745 +1060,false,textDocument/didOpen,,7746 +79,false,textDocument/completion,1, +1978,false,textDocument/didOpen,,7750 +2762,false,textDocument/didOpen,,7746 +2563,false,textDocument/didOpen,,7747 +122,false,textDocument/completion,1, +3201,false,textDocument/didOpen,,7749 +1039,false,textDocument/didOpen,,7750 +4272,false,textDocument/didOpen,,7747 +155,false,textDocument/completion,1, +1989,false,textDocument/didOpen,,7749 +105,false,textDocument/completion,1, +4048,false,textDocument/didOpen,,7751 +1085,false,textDocument/didOpen,,7752 +3086,false,textDocument/didOpen,,7748 +2520,false,textDocument/didOpen,,7728 +2740,false,textDocument/didOpen,,7748 +1509,false,textDocument/didOpen,,7743 +1894,false,textDocument/didOpen,,7744 +82,false,textDocument/completion,1, +1861,false,textDocument/didOpen,,7745 +910,false,textDocument/didOpen,,7744 +51,false,textDocument/completion,1, +2697,false,textDocument/didOpen,,7749 +2428,false,textDocument/didOpen,,7750 +1111,false,textDocument/didOpen,,7751 +55,false,textDocument/completion,1, +1478,false,textDocument/didOpen,,7753 +4341,false,textDocument/didOpen,,7744 +2128,false,textDocument/didOpen,,7745 +159,false,textDocument/completion,1, +718,false,textDocument/didOpen,,7754 +1467,false,textDocument/didOpen,,7751 +135,false,textDocument/completion,1, +1330,false,textDocument/didOpen,,7754 +1578,false,textDocument/didOpen,,7745 +1120,false,textDocument/didOpen,,7746 +147,false,textDocument/completion,1, +1286,false,textDocument/didOpen,,7755 +1735,false,textDocument/didOpen,,7751 +966,false,textDocument/didOpen,,7752 +70,false,textDocument/completion,1, +1781,false,textDocument/didOpen,,7761 +436,false,textDocument/didOpen,,7757 +449,false,textDocument/didOpen,,7758 +40,false,textDocument/completion,1, +2758,false,textDocument/didOpen,,7760 +2959,false,textDocument/didOpen,,7761 +1316,false,textDocument/didOpen,,7757 +1217,false,textDocument/didOpen,,7758 +59,false,textDocument/completion,1, +1977,false,textDocument/didOpen,,7767 +3142,false,textDocument/didOpen,,7763 +1639,false,textDocument/didOpen,,7764 +145,false,textDocument/completion,1, +1896,false,textDocument/didOpen,,7773 +1834,false,textDocument/didOpen,,7768 +949,false,textDocument/didOpen,,7769 +710,false,textDocument/didOpen,,7770 +893,false,textDocument/didOpen,,7771 +846457,false,textDocument/didOpen,,7777 +90,false,textDocument/hover,291, +45,false,textDocument/definition,291, +67,false,textDocument/references,291, +1715,false,textDocument/didOpen,,7769 +1948,false,textDocument/didOpen,,7759 +751,false,textDocument/didOpen,,7758 +795,false,textDocument/didOpen,,7759 +1198,false,textDocument/didOpen,,7760 +64,false,textDocument/completion,291, +1567,false,textDocument/didOpen,,7764 +101,false,textDocument/completion,291, +925,false,textDocument/didOpen,,7767 +82,false,textDocument/completion,291, +1221,false,textDocument/didOpen,,7770 +82,false,textDocument/completion,291, +727,false,textDocument/didOpen,,7775 +56,false,textDocument/completion,291, +1716,false,textDocument/didOpen,,7776 +970,false,textDocument/didOpen,,7776 +1569,false,textDocument/didOpen,,7778 +1022,false,textDocument/didOpen,,7779 +878,false,textDocument/didOpen,,7781 +70,false,textDocument/completion,291, +870,false,textDocument/didOpen,,7781 +73,false,textDocument/completion,291, +939,false,textDocument/didOpen,,7785 +1359,false,textDocument/didOpen,,7783 +422,false,textDocument/didOpen,,7784 +1108,false,textDocument/didOpen,,7785 +626,false,textDocument/didOpen,,7781 +55,false,textDocument/completion,291, +1247,false,textDocument/didOpen,,7786 +238,false,textDocument/completion,291, +1384,false,textDocument/didOpen,,7789 +78,false,textDocument/completion,291, +1101,false,textDocument/didOpen,,7791 +693,false,textDocument/didOpen,,7794 +64,false,textDocument/completion,291, +1301,false,textDocument/didOpen,,7795 +709,false,textDocument/didOpen,,7796 +754,false,textDocument/didOpen,,7797 +1018310,false,textDocument/didOpen,,7801 +1111354,false,textDocument/didOpen,,7806 +768,false,textDocument/didOpen,,7807 +22,false,textDocument/completion,1, +1605,false,textDocument/didOpen,,7817 +1292,false,textDocument/didOpen,,7819 +4134,false,textDocument/didOpen,,7817 +1236,false,textDocument/didOpen,,7816 +1002,false,textDocument/didOpen,,7818 +732,false,textDocument/didOpen,,7820 +59,false,textDocument/completion,1, +488,false,textDocument/didOpen,,7822 +1395,false,textDocument/didOpen,,7817 +1139,false,textDocument/didOpen,,7818 +1517,false,textDocument/didOpen,,7819 +94,false,textDocument/completion,1, +1072,false,textDocument/didOpen,,7821 +1783,false,textDocument/didOpen,,7820 +537,false,textDocument/didOpen,,7819 +583,false,textDocument/didOpen,,7820 +56,false,textDocument/completion,1, +484,false,textDocument/didOpen,,7821 +1421,false,textDocument/didOpen,,7822 +79,false,textDocument/completion,1, +1013,false,textDocument/didOpen,,7822 +83,false,textDocument/completion,1, +971,false,textDocument/didOpen,,7826 +1258,false,textDocument/didOpen,,7825 +2680,false,textDocument/didOpen,,7826 +92,false,textDocument/completion,1, +778,false,textDocument/didOpen,,7828 +728,false,textDocument/didOpen,,7826 +991,false,textDocument/didOpen,,7822 +1521,false,textDocument/didOpen,,7820 +2240,false,textDocument/didOpen,,7820 +130,false,textDocument/completion,1, +1309,false,textDocument/didOpen,,7818 +642,false,textDocument/didOpen,,7821 +55,false,textDocument/completion,1, +641,false,textDocument/didOpen,,7826 +37,false,textDocument/completion,1, +962,false,textDocument/didOpen,,7828 +51,false,textDocument/completion,1, +2583,false,textDocument/didOpen,,7830 +1265,false,textDocument/didOpen,,7831 +73,false,textDocument/completion,1, +1276,false,textDocument/didOpen,,7832 +1357,false,textDocument/didOpen,,7836 +56,false,textDocument/completion,1, +1067,false,textDocument/didOpen,,7840 +729,false,textDocument/didOpen,,7841 +62,false,textDocument/completion,1, +1170,false,textDocument/didOpen,,7847 +61,false,textDocument/completion,1, +6801,false,textDocument/didOpen,,7852 +64,false,textDocument/completion,3, +2267,false,textDocument/didOpen,,7855 +74,false,textDocument/completion,1, +1241,false,textDocument/didOpen,,7857 +1515,false,textDocument/didOpen,,7859 +17503,false,textDocument/didOpen,,7860 +105,false,textDocument/completion,3, +1194,false,textDocument/didOpen,,7861 +1012,false,textDocument/didOpen,,7862 +944,false,textDocument/didOpen,,7866 +65,false,textDocument/completion,1, +722,false,textDocument/didOpen,,7872 +59,false,textDocument/completion,1, +8078,false,textDocument/didOpen,,7877 +76,false,textDocument/completion,3, +4390,false,textDocument/didOpen,,7877 +92,false,textDocument/completion,3, +930,false,textDocument/didOpen,,7880 +55,false,textDocument/completion,1, +4339,false,textDocument/didOpen,,7889 +40,false,textDocument/completion,3, +654,false,textDocument/didOpen,,7890 +1196,false,textDocument/didOpen,,7886 +1343484,false,textDocument/didOpen,,7892 +1382282,false,textDocument/didOpen,,7893 +1388812,false,textDocument/didOpen,,7889 +1534186,false,textDocument/didOpen,,7894 +1623596,false,textDocument/didOpen,,7896 +1206,false,textDocument/didOpen,,7893 +655,false,textDocument/didOpen,,7894 +681,false,textDocument/didOpen,,7901 +2162,false,textDocument/didOpen,,7895 +3103,false,textDocument/didOpen,,7894 +1675282,false,textDocument/didOpen,,7902 +1123,false,textDocument/didOpen,,7904 +130,false,textDocument/completion,295, +1960333,false,textDocument/didOpen,,7906 +1924669,false,textDocument/didOpen,,7907 +1439,false,textDocument/completion,295, +1948999,false,textDocument/didOpen,,7911 +84,false,textDocument/completion,295, +2081121,false,textDocument/didOpen,,7916 +2166800,false,textDocument/didOpen,,7917 +85,false,textDocument/completion,295, +2304590,false,textDocument/didOpen,,7923 +2421438,false,textDocument/didOpen,,7924 +944,false,textDocument/didOpen,,7925 +1634,false,textDocument/completion,298, +2511711,false,textDocument/didOpen,,7929 +2557781,false,textDocument/didOpen,,7930 +2667317,false,textDocument/didOpen,,7931 +3478,false,textDocument/didOpen,,7932 +2839917,false,textDocument/didOpen,,7933 +2029,false,textDocument/completion,298, +2699066,false,textDocument/didOpen,,7935 +2809133,false,textDocument/didOpen,,7936 +3346278,false,textDocument/didOpen,,7935 +3028,false,textDocument/didOpen,,7939 +35,false,textDocument/completion,1, +3478948,false,textDocument/didOpen,,7944 +64,false,textDocument/completion,298, +1177,false,textDocument/didOpen,,7952 +51,false,textDocument/completion,1, +1029,false,textDocument/didOpen,,7957 +1631,false,textDocument/didOpen,,7958 +34,false,textDocument/completion,1, +908,false,textDocument/didOpen,,7959 +47,false,textDocument/completion,1, +938,false,textDocument/didOpen,,7960 +41,false,textDocument/completion,1, +1139,false,textDocument/didOpen,,7961 +26,false,textDocument/completion,1, +1447,false,textDocument/didOpen,,7962 +3340230,false,textDocument/didOpen,,7963 +1342,false,textDocument/didOpen,,7964 +3505260,false,textDocument/didOpen,,7962 +1279,false,textDocument/didOpen,,7956 +753,false,textDocument/didOpen,,7957 +93,false,textDocument/completion,305, +656,false,textDocument/didOpen,,7959 +966,false,textDocument/didOpen,,7961 +50,false,textDocument/completion,305, +1331,false,textDocument/didOpen,,7964 +98,false,textDocument/completion,305, +847,false,textDocument/didOpen,,7968 +68,false,textDocument/completion,305, +895,false,textDocument/didOpen,,7974 +725,false,textDocument/didOpen,,7971 +79,false,textDocument/completion,305, +1529,false,textDocument/didOpen,,7974 +766,false,textDocument/didOpen,,7972 +498,false,textDocument/didOpen,,7968 +980,false,textDocument/didOpen,,7966 +695,false,textDocument/didOpen,,7962 +103,false,textDocument/completion,305, +494,false,textDocument/didOpen,,7949 +491,false,textDocument/didOpen,,7950 +818,false,textDocument/didOpen,,7952 +65,false,textDocument/completion,305, +1063,false,textDocument/didOpen,,7955 +101,false,textDocument/completion,305, +808,false,textDocument/didOpen,,7960 +83,false,textDocument/completion,305, +2172,false,textDocument/didOpen,,7963 +636,false,textDocument/didOpen,,7964 +721,false,textDocument/didOpen,,7965 +57,false,textDocument/completion,305, +884,false,textDocument/didOpen,,7967 +2063,false,textDocument/didOpen,,7968 +1398,false,textDocument/didOpen,,7969 +489,false,textDocument/didOpen,,7959 +893,false,textDocument/didOpen,,7960 +102,false,textDocument/completion,305, +1013,false,textDocument/didOpen,,7960 +106,false,textDocument/completion,305, +828,false,textDocument/didOpen,,7968 +58,false,textDocument/completion,305, +894,false,textDocument/didOpen,,7971 +93,false,textDocument/completion,305, +1318,false,textDocument/didOpen,,7976 +119,false,textDocument/completion,305, +1803,false,textDocument/didOpen,,7979 +125,false,textDocument/completion,305, +858,false,textDocument/didOpen,,7984 +755,false,textDocument/didOpen,,7988 +641,false,textDocument/didOpen,,7990 +842,false,textDocument/didOpen,,7986 +487,false,textDocument/didOpen,,7993 +471,false,textDocument/didOpen,,7994 +43,false,textDocument/completion,305, +2089,false,textDocument/didOpen,,7999 +168,false,textDocument/completion,305, +511,false,textDocument/didOpen,,8000 +75,false,textDocument/completion,305, +798,false,textDocument/didOpen,,8001 +97,false,textDocument/completion,305, +1393,false,textDocument/didOpen,,8002 +106,false,textDocument/completion,305, +1055,false,textDocument/didOpen,,8011 +121,false,textDocument/completion,305, +1566,false,textDocument/didOpen,,8012 +1606,false,textDocument/didOpen,,8013 +2081,false,textDocument/didOpen,,8014 +1375,false,textDocument/didOpen,,7993 +699,false,textDocument/didOpen,,7992 +1015,false,textDocument/didOpen,,7993 +2333,false,textDocument/didOpen,,7985 +167,false,textDocument/completion,1, +992,false,textDocument/didOpen,,7983 +1038,false,textDocument/didOpen,,7986 +86,false,textDocument/completion,1, +2306,false,textDocument/didOpen,,7994 +1036,false,textDocument/didOpen,,7993 +586,false,textDocument/didOpen,,7992 +1331,false,textDocument/didOpen,,7994 +75,false,textDocument/completion,1, +626,false,textDocument/didOpen,,7993 +548,false,textDocument/didOpen,,7994 +930,false,textDocument/didOpen,,7995 +79,false,textDocument/completion,1, +1017,false,textDocument/didOpen,,8002 +58,false,textDocument/completion,1, +1772,false,textDocument/didOpen,,8004 +39,false,textDocument/hover,1, +122,false,textDocument/hover,1, +882,false,textDocument/didOpen,,8004 +1934,false,textDocument/didOpen,,7950 +665,false,textDocument/didOpen,,7951 +1905,false,textDocument/didOpen,,7952 +3154,false,textDocument/didOpen,,7946 +33,false,textDocument/hover,1, +68,false,textDocument/hover,1, +33,false,textDocument/hover,1, +1303,false,textDocument/didOpen,,7947 +2230,false,textDocument/didOpen,,7946 +1545,false,textDocument/didOpen,,7948 +60,false,textDocument/completion,1, +5089,false,textDocument/didOpen,,7951 +4731,false,textDocument/didOpen,,7955 +66,false,textDocument/completion,1, +2562,false,textDocument/didOpen,,7957 +46,false,textDocument/hover,1, +61,false,textDocument/hover,1, +58,false,textDocument/hover,1, +45,false,textDocument/hover,1, +2100,false,textDocument/didOpen,,7947 +1083,false,textDocument/didOpen,,7946 +3160,false,textDocument/didOpen,,7947 +4076139,false,textDocument/didOpen,,7948 +4306228,false,textDocument/didOpen,,7955 +37,false,textDocument/hover,313, +2686,false,textDocument/didOpen,,7953 +550,false,textDocument/didOpen,,7954 +1147,false,textDocument/didOpen,,7953 +1215,false,textDocument/didOpen,,7957 +189,false,textDocument/completion,313, +1445,false,textDocument/didOpen,,7959 +132,false,textDocument/completion,313, +1529,false,textDocument/didOpen,,7961 +66,false,textDocument/completion,313, +2032,false,textDocument/didOpen,,7962 +3634,false,textDocument/didOpen,,7963 +100,false,textDocument/completion,313, +1912,false,textDocument/didOpen,,7959 +191,false,textDocument/completion,313, +4354269,false,textDocument/didOpen,,7966 +4437047,false,textDocument/didOpen,,7967 +4470122,false,textDocument/didOpen,,7968 +3274,false,textDocument/completion,307, +606,false,textDocument/didOpen,,7975 +83,false,textDocument/completion,307, +494,false,textDocument/didOpen,,7978 +437,false,textDocument/didOpen,,7976 +53,false,textDocument/completion,307, +413,false,textDocument/didOpen,,7977 +408,false,textDocument/didOpen,,7978 +383,false,textDocument/didOpen,,7976 +768,false,textDocument/didOpen,,7978 +52,false,textDocument/completion,307, +791,false,textDocument/didOpen,,7980 +809,false,textDocument/didOpen,,7978 +845,false,textDocument/didOpen,,7981 +155,false,textDocument/completion,307, +965,false,textDocument/didOpen,,7982 +748,false,textDocument/didOpen,,7983 +142,false,textDocument/completion,307, +560,false,textDocument/didOpen,,7985 +1535,false,textDocument/didOpen,,7987 +1020,false,textDocument/didOpen,,7988 +248,false,textDocument/completion,307, +682,false,textDocument/didOpen,,7994 +192,false,textDocument/hover,307, +67,false,textDocument/hover,307, +643,false,textDocument/didOpen,,7993 +173,false,textDocument/hover,307, +81,false,textDocument/hover,307, +1088,false,textDocument/didOpen,,7997 +72,false,textDocument/completion,307, +941,false,textDocument/didOpen,,7998 +463,false,textDocument/didOpen,,7995 +755,false,textDocument/didOpen,,7996 +1093,false,textDocument/didOpen,,7995 +125,false,textDocument/hover,307, +22,false,textDocument/definition,307, +1739,false,textDocument/didOpen,,7993 +2199,false,textDocument/didOpen,,7994 +61,false,textDocument/completion,307, +2443,false,textDocument/didOpen,,7996 +67,false,textDocument/completion,307, +1953,false,textDocument/didOpen,,7997 +1883,false,textDocument/didOpen,,7991 +1054,false,textDocument/didOpen,,7991 +52,false,textDocument/completion,307, +4645451,false,textDocument/didOpen,,7990 +1536,false,textDocument/didOpen,,7993 +204,false,textDocument/completion,315, +675,false,textDocument/didOpen,,7994 +1133,false,textDocument/didOpen,,7995 +150,false,textDocument/completion,315, +874,false,textDocument/didOpen,,7997 +4791379,false,textDocument/didOpen,,7988 +1335,false,textDocument/didOpen,,7990 +158,false,textDocument/completion,317, +587,false,textDocument/didOpen,,7996 +6242,false,textDocument/completion,317, +830,false,textDocument/didOpen,,7999 +684,false,textDocument/didOpen,,7998 +492,false,textDocument/didOpen,,7999 +883,false,textDocument/didOpen,,7998 +589,false,textDocument/didOpen,,7999 +954,false,textDocument/didOpen,,8000 +711,false,textDocument/didOpen,,8002 +227,false,textDocument/completion,317, +624,false,textDocument/didOpen,,8003 +2090,false,textDocument/didOpen,,8004 +254,false,textDocument/completion,317, +985,false,textDocument/didOpen,,8006 +2061,false,textDocument/didOpen,,8010 +4978959,false,textDocument/didOpen,,8009 +5122648,false,textDocument/didOpen,,8011 +2981,false,textDocument/completion,317, +5068773,false,textDocument/didOpen,,8014 +6224578,false,textDocument/didOpen,,8017 +6741536,false,textDocument/didOpen,,8019 +6672551,false,textDocument/didOpen,,8020 +4244,false,textDocument/completion,317, +6642517,false,textDocument/didOpen,,8022 +7372284,false,textDocument/didOpen,,8028 +7287096,false,textDocument/didOpen,,8030 +7364955,false,textDocument/didOpen,,8029 +7672758,false,textDocument/didOpen,,8030 +7609074,false,textDocument/didOpen,,8035 +4907,false,textDocument/completion,326, +1459,false,textDocument/didOpen,,8037 +115,false,textDocument/completion,326, +7723290,false,textDocument/didOpen,,8039 +7846285,false,textDocument/didOpen,,8047 +8076194,false,textDocument/didOpen,,8055 +7958776,false,textDocument/didOpen,,8054 +8391760,false,textDocument/didOpen,,8055 +8448046,false,textDocument/didOpen,,8054 +8534346,false,textDocument/didOpen,,8055 +8810400,false,textDocument/didOpen,,8064 +9063539,false,textDocument/didOpen,,8060 +1028,false,textDocument/didOpen,,8065 +35,false,textDocument/completion,1, +4345,false,textDocument/didOpen,,8078 +939,false,textDocument/didOpen,,8081 +8253,false,textDocument/didOpen,,8082 +652,false,textDocument/didOpen,,8084 +593,false,textDocument/didOpen,,8085 +33,false,textDocument/completion,1, +849,false,textDocument/didOpen,,8089 +4305,false,textDocument/didOpen,,8090 +35,false,textDocument/completion,1, +961,false,textDocument/didOpen,,8091 +5842,false,textDocument/didOpen,,8090 +869,false,textDocument/didOpen,,8092 +29,false,textDocument/completion,1, +47579,false,textDocument/didOpen,,8094 +1006,false,textDocument/didOpen,,8095 +80,false,textDocument/completion,1, +12842,false,textDocument/didOpen,,8099 +856,false,textDocument/didOpen,,8100 +834,false,textDocument/didOpen,,8101 +53,false,textDocument/completion,1, +39268,false,textDocument/didOpen,,8105 +910,false,textDocument/didOpen,,8107 +30,false,textDocument/completion,1, +45328,false,textDocument/didOpen,,8108 +14379,false,textDocument/didOpen,,8111 +49,false,textDocument/completion,3, +963,false,textDocument/didOpen,,8114 +9166,false,textDocument/didOpen,,8115 +1017,false,textDocument/didOpen,,8116 +34,false,textDocument/completion,1, +7164,false,textDocument/didOpen,,8117 +1023,false,textDocument/didOpen,,8120 +466,false,textDocument/didOpen,,8125 +42,false,textDocument/completion,1, +952,false,textDocument/didOpen,,8128 +9463370,false,textDocument/didOpen,,8131 +9466950,false,textDocument/didOpen,,8137 +9782474,false,textDocument/didOpen,,8138 +1179,false,textDocument/didOpen,,8140 +89,false,textDocument/completion,328, +10326674,false,textDocument/didOpen,,8142 +10658100,false,textDocument/didOpen,,8145 +10151799,false,textDocument/didOpen,,8146 +9955861,false,textDocument/didOpen,,8147 +38,false,textDocument/completion,328, +10476146,false,textDocument/didOpen,,8146 +10589998,false,textDocument/didOpen,,8147 +58,false,textDocument/completion,328, +10663576,false,textDocument/didOpen,,8153 +10972549,false,textDocument/didOpen,,8154 +783,false,textDocument/didOpen,,8152 +497,false,textDocument/didOpen,,8153 +42,false,textDocument/completion,330, +624,false,textDocument/didOpen,,8154 +571,false,textDocument/didOpen,,8154 +501,false,textDocument/didOpen,,8155 +38,false,textDocument/completion,330, +10818219,false,textDocument/didOpen,,8156 +1308,false,textDocument/didOpen,,8153 +1052,false,textDocument/didOpen,,8154 +1246,false,textDocument/didOpen,,8151 +1125,false,textDocument/didOpen,,8152 +650,false,textDocument/didOpen,,8153 +10964809,false,textDocument/didOpen,,8154 +11005559,false,textDocument/didOpen,,8153 +11440969,false,textDocument/didOpen,,8154 +11534735,false,textDocument/didOpen,,8151 +12098191,false,textDocument/didOpen,,8150 +12050236,false,textDocument/didOpen,,8152 +12091550,false,textDocument/didOpen,,8153 +56,false,textDocument/definition,330, +12022125,false,textDocument/didOpen,,8152 +12241497,false,textDocument/didOpen,,8153 +12326675,false,textDocument/didOpen,,8154 +1251,false,textDocument/didOpen,,8156 +1114,false,textDocument/didOpen,,8157 +1143,false,textDocument/didOpen,,8159 +151,false,textDocument/completion,330, +12539089,false,textDocument/didOpen,,8160 +12632486,false,textDocument/didOpen,,8159 +1009,false,textDocument/didOpen,,8161 +38,false,textDocument/completion,330, +1290,false,textDocument/didOpen,,8163 +1264,false,textDocument/didOpen,,8164 +2670,false,textDocument/didOpen,,8165 +94,false,textDocument/completion,330, +834,false,textDocument/didOpen,,8164 +2991,false,textDocument/didOpen,,8165 +1200,false,textDocument/didOpen,,8159 +51,false,textDocument/hover,330, +40,false,textDocument/hover,330, +48,false,textDocument/hover,330, +81,false,textDocument/hover,330, +2184,false,textDocument/didOpen,,8160 +1305,false,textDocument/didOpen,,8158 +26,false,textDocument/definition,330, +42,false,textDocument/hover,330, +59,false,textDocument/hover,330, +57,false,textDocument/hover,330, +42,false,textDocument/hover,330, +49,false,textDocument/hover,330, +2666,false,textDocument/didOpen,,8159 +3889,false,textDocument/didOpen,,8158 +654,false,textDocument/didOpen,,8159 +12997253,false,textDocument/didOpen,,8159 +58,false,textDocument/hover,330, +1066,false,textDocument/didOpen,,8176 +43,false,textDocument/completion,330, +13592441,false,textDocument/didOpen,,8158 +1408,false,textDocument/didOpen,,8157 +13924329,false,textDocument/didOpen,,8159 +13856690,false,textDocument/didOpen,,8161 +58,false,textDocument/completion,330, +13765130,false,textDocument/didOpen,,8163 +13893169,false,textDocument/didOpen,,8166 +54,false,textDocument/completion,330, +14499191,false,textDocument/didOpen,,8169 +57,false,textDocument/completion,330, +11850595,false,textDocument/didOpen,,8175 +56,false,textDocument/completion,330, +595849,false,textDocument/didOpen,,8182 +37,false,textDocument/hover,344, +86,false,textDocument/hover,344, +56,false,textDocument/hover,344, +48,false,textDocument/hover,344, +510059,false,textDocument/didOpen,,8174 +536463,false,textDocument/didOpen,,8182 +72,false,textDocument/hover,344, +54,false,textDocument/hover,344, +122,false,textDocument/hover,344, +831800,false,textDocument/didOpen,,8183 +922011,false,textDocument/didOpen,,8184 +1080997,false,textDocument/didOpen,,8185 +1229722,false,textDocument/didOpen,,8177 +1483058,false,textDocument/didOpen,,8178 +1556131,false,textDocument/didOpen,,8180 +688,false,textDocument/completion,341, +1694090,false,textDocument/didOpen,,8181 +970,false,textDocument/didOpen,,8182 +1869769,false,textDocument/didOpen,,8185 +1682,false,textDocument/didOpen,,8186 +244,false,textDocument/completion,344, +1707,false,textDocument/didOpen,,8182 +6996,false,textDocument/didOpen,,8185 +1983447,false,textDocument/didOpen,,8186 +1579,false,textDocument/completion,344, +2104296,false,textDocument/didOpen,,8188 +2158648,false,textDocument/didOpen,,8189 +2207831,false,textDocument/didOpen,,8191 +2538,false,textDocument/completion,344, +2411929,false,textDocument/didOpen,,8190 +2609945,false,textDocument/didOpen,,8186 +2669750,false,textDocument/didOpen,,8178 +638,false,textDocument/didOpen,,8182 +459,false,textDocument/didOpen,,8187 +191,false,textDocument/completion,341, +2866326,false,textDocument/didOpen,,8186 +2941684,false,textDocument/didOpen,,8188 +3147763,false,textDocument/didOpen,,8194 +3089775,false,textDocument/didOpen,,8196 +3231680,false,textDocument/didOpen,,8198 +3552010,false,textDocument/didOpen,,8188 +3737860,false,textDocument/didOpen,,8198 +4085398,false,textDocument/didOpen,,8200 +4285453,false,textDocument/didOpen,,8202 +4357796,false,textDocument/didOpen,,8204 +4550124,false,textDocument/didOpen,,8212 +4428003,false,textDocument/didOpen,,8204 +4734071,false,textDocument/didOpen,,8214 +4763556,false,textDocument/didOpen,,8224 +4962024,false,textDocument/didOpen,,8222 +5063721,false,textDocument/didOpen,,8230 +5188922,false,textDocument/didOpen,,8234 +5528525,false,textDocument/didOpen,,8236 +5853578,false,textDocument/didOpen,,8244 +49,false,textDocument/hover,344, +55,false,textDocument/hover,344, +213,false,textDocument/hover,344, +43,false,textDocument/hover,344, +104,false,textDocument/hover,344, +74,false,textDocument/hover,344, +79,false,textDocument/hover,344, +73,false,textDocument/hover,344, +57,false,textDocument/hover,344, +88,false,textDocument/hover,344, +68,false,textDocument/hover,344, +77,false,textDocument/hover,344, +86,false,textDocument/hover,344, +57,false,textDocument/hover,344, +104,false,textDocument/hover,344, +101,false,textDocument/hover,344, +163,false,textDocument/hover,344, +187,false,textDocument/hover,344, +44,false,textDocument/hover,344, +94,false,textDocument/hover,344, +72,false,textDocument/hover,344, +106,false,textDocument/hover,344, +96,false,textDocument/hover,344, +55,false,textDocument/hover,344, +92,false,textDocument/hover,344, +90,false,textDocument/hover,344, +88,false,textDocument/hover,344, +65,false,textDocument/hover,344, +30,false,textDocument/hover,344, +62,false,textDocument/hover,344, +64,false,textDocument/hover,344, +66,false,textDocument/hover,344, +114,false,textDocument/hover,344, +53,false,textDocument/hover,344, +61,false,textDocument/hover,344, +64,false,textDocument/hover,344, +72,false,textDocument/hover,344, +53,false,textDocument/references,344, +38,false,textDocument/references,344, +45,false,textDocument/references,344, +42,false,textDocument/references,344, +40,false,textDocument/references,344, +16,false,textDocument/references,344, +75,false,textDocument/references,344, +28,false,textDocument/definition,344, +77,false,textDocument/definition,344, +29,false,textDocument/definition,344, +83,false,textDocument/references,344, +22,false,textDocument/references,344, +49,false,textDocument/references,344, +76,false,textDocument/definition,344, +79,false,textDocument/references,344, +602556,false,textDocument/didOpen,,8244 +63,false,textDocument/hover,344, +107,false,textDocument/hover,344, +78,false,textDocument/hover,344, +79,false,textDocument/hover,344, +45,false,textDocument/hover,344, +99,false,textDocument/hover,344, +70,false,textDocument/hover,344, +590850,false,textDocument/didOpen,,8244 +226,false,textDocument/hover,344, +163,false,textDocument/hover,344, +96,false,textDocument/hover,344, +85,false,textDocument/hover,344, +49,false,textDocument/hover,344, +124,false,textDocument/hover,344, +88,false,textDocument/hover,344, +56,false,textDocument/hover,344, +66,false,textDocument/hover,344, +136,false,textDocument/hover,344, +63,false,textDocument/hover,344, +86,false,textDocument/hover,344, +49,false,textDocument/hover,344, +93,false,textDocument/hover,344, +5324649,false,textDocument/didOpen,,34741 +583303,false,textDocument/didOpen,,8244 +68,false,textDocument/hover,344, +63,false,textDocument/hover,344, +13152371,false,textDocument/didOpen,,34748 +4087,false,textDocument/didOpen,,34749 +28,false,textDocument/completion,1, +38,false,textDocument/hover,344, +19069645,false,textDocument/didOpen,,34748 +4299,false,textDocument/didOpen,,34751 +29,false,textDocument/completion,1, +2787,false,textDocument/didOpen,,34750 +34,false,textDocument/completion,1, +6158,false,textDocument/didOpen,,34756 +37,false,textDocument/completion,1, +3632,false,textDocument/didOpen,,34757 +7284,false,textDocument/didOpen,,34758 +7890,false,textDocument/didOpen,,34766 +6903,false,textDocument/didOpen,,34765 +150,false,textDocument/hover,344, +41,false,textDocument/hover,344, +26574004,false,textDocument/didOpen,,34741 +191,false,textDocument/hover,344, +126,false,textDocument/hover,344, +62,false,textDocument/hover,344, +89,false,textDocument/hover,344, +107,false,textDocument/hover,344, +156,false,textDocument/hover,344, +81,false,textDocument/hover,344, +113,false,textDocument/hover,344, +172,false,textDocument/hover,344, +52,false,textDocument/definition,1506, +72,false,textDocument/definition,1506, +86,false,textDocument/definition,1506, +320,false,textDocument/references,1506, +87,false,textDocument/hover,1506, +497,false,textDocument/didOpen,,8245 +481399,false,textDocument/didOpen,,8246 +337880,false,textDocument/didOpen,,8290 +154,false,textDocument/hover,291, +109,false,textDocument/hover,291, +67,false,textDocument/hover,291, +432997,false,textDocument/didOpen,,8290 +36,false,textDocument/hover,291, +65,false,textDocument/hover,291, +457040,false,textDocument/didOpen,,8290 +62,false,textDocument/hover,291, +53,false,textDocument/definition,1506, +77,false,textDocument/definition,1506, +183,false,textDocument/references,1506, +73,false,textDocument/hover,1506, +132,false,textDocument/hover,1506, +60,false,textDocument/definition,1506, +67,false,textDocument/definition,1506, +71,false,textDocument/definition,1506, +117,false,textDocument/references,1506, +5300593,false,textDocument/didOpen,,34741 +31,false,textDocument/references,1506, +60,false,textDocument/references,1506, +78,false,textDocument/references,1506, +74,false,textDocument/references,1506, +51,false,textDocument/references,1506, +73,false,textDocument/references,1506, +139,false,textDocument/hover,1506, +4326,false,textDocument/didOpen,,34703 +12928228,false,textDocument/didOpen,,34741 +4499,false,textDocument/didOpen,,34740 +19128724,false,textDocument/didOpen,,34741 +179,false,textDocument/references,1506, +54,false,textDocument/references,1506, +38,false,textDocument/references,1506, +56,false,textDocument/references,1506, +52,false,textDocument/references,1506, +35,false,textDocument/references,1506, +68,false,textDocument/definition,1506, +42,false,textDocument/definition,1506, +62,false,textDocument/definition,1506, +73,false,textDocument/definition,1506, +120,false,textDocument/hover,1506, +26880368,false,textDocument/didOpen,,34760 +225172,false,textDocument/didOpen,,2473 +34244223,false,textDocument/didOpen,,34754 +24,false,textDocument/references,203, +25,false,textDocument/references,203, +34,false,textDocument/references,203, +30,false,textDocument/definition,203, +78,false,textDocument/references,203, +28,false,textDocument/references,203, +33,false,textDocument/references,203, +45246835,false,textDocument/didOpen,,34750 +93,false,textDocument/definition,203, +27,false,textDocument/references,203, +17,false,textDocument/references,203, +31,false,textDocument/definition,203, +45,false,textDocument/hover,203, +51,false,textDocument/hover,203, +75,false,textDocument/hover,203, +93,false,textDocument/definition,203, +70,false,textDocument/references,203, +59284781,false,textDocument/didOpen,,34748 +4242,false,textDocument/didOpen,,34750 +28,false,textDocument/completion,1, +68392578,false,textDocument/didOpen,,34754 +75987266,false,textDocument/didOpen,,34755 +196,false,textDocument/completion,1506, +85268743,false,textDocument/didOpen,,34758 +88320726,false,textDocument/didOpen,,34769 +87958242,false,textDocument/didOpen,,34771 +136,false,textDocument/completion,1506, +109751600,false,textDocument/didOpen,,34776 +4722,false,textDocument/didOpen,,34779 +1645,false,textDocument/completion,1510, +119101512,false,textDocument/didOpen,,34782 +361844,false,textDocument/didOpen,,8290 +93,false,textDocument/hover,291, +52,false,textDocument/hover,291, +105,false,textDocument/hover,291, +105,false,textDocument/hover,291, +400938,false,textDocument/didOpen,,8244 +406,false,textDocument/hover,344, +171,false,textDocument/hover,344, +131,false,textDocument/hover,344, +473411,false,textDocument/didOpen,,8244 +84,false,textDocument/hover,344, +45,false,textDocument/hover,344, +107,false,textDocument/hover,344, +191,false,textDocument/hover,344, +106,false,textDocument/hover,344, +106,false,textDocument/hover,344, +103,false,textDocument/hover,344, +166,false,textDocument/hover,344, +112,false,textDocument/hover,344, +504839,false,textDocument/didOpen,,8244 +21,false,textDocument/definition,344, +31,false,textDocument/references,344, +110,false,textDocument/hover,344, +179482,false,textDocument/didOpen,,10173 +537810,false,textDocument/didOpen,,8244 +119,false,textDocument/hover,344, +238,false,textDocument/hover,344, +128,false,textDocument/hover,344, +127,false,textDocument/hover,344, +142,false,textDocument/hover,344, +100,false,textDocument/hover,344, +99,false,textDocument/hover,344, +98,false,textDocument/hover,344, +99,false,textDocument/hover,344, +98,false,textDocument/hover,344, +157,false,textDocument/hover,344, +140,false,textDocument/hover,344, +141,false,textDocument/hover,344, +54,false,textDocument/hover,344, +144,false,textDocument/hover,344, +141,false,textDocument/hover,344, +141,false,textDocument/hover,344, +153,false,textDocument/hover,344, +111,false,textDocument/hover,344, +144,false,textDocument/hover,344, +15,false,textDocument/definition,344, +14,false,textDocument/definition,344, +35,false,textDocument/definition,344, +34,false,textDocument/hover,344, +362089,false,textDocument/didOpen,,7575 +129,false,textDocument/hover,291, +13,false,textDocument/definition,291, +360154,false,textDocument/didOpen,,7575 +44,false,textDocument/hover,291, +33,false,textDocument/hover,291, +46,false,textDocument/definition,291, +156,false,textDocument/hover,291, +155,false,textDocument/hover,291, +14,false,textDocument/definition,291, +14,false,textDocument/definition,291, +27,false,textDocument/definition,291, +14,false,textDocument/definition,291, +278394,false,textDocument/didOpen,,7574 +277289,false,textDocument/didOpen,,7575 +48,false,textDocument/definition,291, +14,false,textDocument/definition,291, +70,false,textDocument/hover,291, +91,false,textDocument/hover,291, +98,false,textDocument/hover,291, +164,false,textDocument/hover,291, +100,false,textDocument/hover,291, +98,false,textDocument/hover,291, +96,false,textDocument/hover,291, +99,false,textDocument/hover,291, +163,false,textDocument/hover,291, +356569,false,textDocument/didOpen,,7575 +45,false,textDocument/definition,291, +29,false,textDocument/definition,291, +46,false,textDocument/references,291, +14,false,textDocument/definition,291, +45,false,textDocument/definition,291, +27,false,textDocument/hover,291, +35,false,textDocument/hover,291, +98,false,textDocument/hover,291, +81,false,textDocument/hover,291, +98,false,textDocument/hover,291, +105,false,textDocument/hover,291, +96,false,textDocument/hover,291, +104,false,textDocument/hover,291, +91,false,textDocument/hover,291, +90,false,textDocument/hover,291, +31,false,textDocument/hover,291, +92,false,textDocument/hover,291, +107,false,textDocument/hover,291, +418833,false,textDocument/didOpen,,7575 +14,false,textDocument/references,291, +13,false,textDocument/definition,291, +13,false,textDocument/definition,291, +14,false,textDocument/definition,291, +14,false,textDocument/definition,291, +45,false,textDocument/hover,291, +93,false,textDocument/hover,291, +97,false,textDocument/hover,291, +35,false,textDocument/hover,291, +98,false,textDocument/hover,291, +398687,false,textDocument/didOpen,,7575 +18,false,textDocument/definition,291, +42,false,textDocument/references,291, +375691,false,textDocument/didOpen,,7575 +26,false,textDocument/definition,291, +72340,false,textDocument/didOpen,,703 +205,false,textDocument/didOpen,,424 +191,false,textDocument/didOpen,,284 +882,false,textDocument/didOpen,,250 +172,false,textDocument/didOpen,,250 +815,false,textDocument/didOpen,,252 +88,false,textDocument/completion,1, +212,false,textDocument/didOpen,,254 +209,false,textDocument/didOpen,,254 +28,false,textDocument/completion,1, +853,false,textDocument/didOpen,,256 +209,false,textDocument/didOpen,,258 +62,false,textDocument/completion,1, +811,false,textDocument/didOpen,,262 +349893,false,textDocument/didOpen,,7575 +259149,false,textDocument/didOpen,,7571 +144,false,textDocument/hover,291, +398,false,textDocument/hover,291, +103,false,textDocument/hover,291, +217,false,textDocument/hover,291, +215,false,textDocument/hover,291, +104,false,textDocument/hover,291, +95,false,textDocument/hover,291, +19,false,textDocument/definition,291, +28,false,textDocument/references,291, +26,false,textDocument/references,291, +293701,false,textDocument/didOpen,,7575 +320914,false,textDocument/didOpen,,7571 +461510,false,textDocument/didOpen,,7575 +234,false,textDocument/hover,291, +101,false,textDocument/hover,291, +46,false,textDocument/hover,291, +527743,false,textDocument/didOpen,,7568 +608698,false,textDocument/didOpen,,7575 +187,false,textDocument/hover,291, +47,false,textDocument/hover,291, +19,false,textDocument/definition,291, +160,false,textDocument/hover,291, +103,false,textDocument/hover,291, +73,false,textDocument/hover,291, +104,false,textDocument/hover,291, +126686,false,textDocument/didOpen,,1802 +196160,false,textDocument/didOpen,,10173 +1957,false,textDocument/didOpen,,6057 +69674,false,textDocument/didOpen,,146 +1729,false,textDocument/didOpen,,6057 +2066,false,textDocument/didOpen,,6057 +2727,false,textDocument/didOpen,,6060 +2071,false,textDocument/didOpen,,6061 +3059,false,textDocument/didOpen,,6062 +2465,false,textDocument/didOpen,,6063 +1636,false,textDocument/didOpen,,6064 +1584,false,textDocument/didOpen,,6065 +12,true,textDocument/completion,, +2659,false,textDocument/didOpen,,6066 +6163,false,textDocument/didOpen,,6069 +37,true,textDocument/completion,, +6159,false,textDocument/didOpen,,6076 +28,true,textDocument/completion,, +2956,false,textDocument/didOpen,,6078 +8488,false,textDocument/didOpen,,6082 +27,true,textDocument/completion,, +3970,false,textDocument/didOpen,,6085 +4678,false,textDocument/didOpen,,6089 +30,true,textDocument/completion,, +3983,false,textDocument/didOpen,,6091 +7766,false,textDocument/didOpen,,6092 +4490,false,textDocument/didOpen,,6093 +8340,false,textDocument/didOpen,,6092 +2489,false,textDocument/didOpen,,6091 +3853,false,textDocument/didOpen,,6078 +1650,false,textDocument/didOpen,,6079 +3560,false,textDocument/didOpen,,6080 +3612,false,textDocument/didOpen,,6081 +2882,false,textDocument/didOpen,,6082 +3313,false,textDocument/didOpen,,6083 +1534,false,textDocument/didOpen,,6083 +1669,false,textDocument/didOpen,,6057 +343,false,textDocument/didOpen,,6391 +302,false,textDocument/didOpen,,6390 +307,false,textDocument/didOpen,,6393 +34,false,textDocument/completion,1, +356,false,textDocument/didOpen,,6391 +1800,false,textDocument/didOpen,,6392 +105,false,textDocument/completion,1, +297,false,textDocument/didOpen,,6392 +28,false,textDocument/completion,1, +1457,false,textDocument/didOpen,,6393 +380,false,textDocument/didOpen,,6394 +32,false,textDocument/completion,1, +1376,false,textDocument/didOpen,,6394 +291,false,textDocument/didOpen,,6393 +2005,false,textDocument/didOpen,,6394 +36,false,textDocument/completion,1, +333,false,textDocument/didOpen,,6395 +1489,false,textDocument/didOpen,,6395 +125,false,textDocument/completion,1, +331,false,textDocument/didOpen,,6396 +1358,false,textDocument/didOpen,,6396 +124,false,textDocument/completion,1, +1573,false,textDocument/didOpen,,6397 +2009,false,textDocument/didOpen,,6092 +556,false,textDocument/didOpen,,5949 +440,false,textDocument/didOpen,,5949 +29,false,textDocument/completion,1, +2025,false,textDocument/didOpen,,5950 +119,false,textDocument/completion,1, +1919,false,textDocument/didOpen,,5780 +1889,false,textDocument/didOpen,,5780 +31,false,textDocument/completion,1, +1951,false,textDocument/didOpen,,5781 +1951,false,textDocument/didOpen,,5780 +1900,false,textDocument/didOpen,,5781 +128,false,textDocument/completion,1, +2269,false,textDocument/didOpen,,5782 +2264,false,textDocument/didOpen,,5576 +2746,false,textDocument/didOpen,,5576 +136,false,textDocument/completion,1, +2224,false,textDocument/didOpen,,5577 +1869,false,textDocument/didOpen,,5578 +124,false,textDocument/completion,1, +1935,false,textDocument/didOpen,,5577 +356308,false,textDocument/didOpen,,4462 +317793,false,textDocument/didOpen,,4463 +351,false,textDocument/completion,547, +354195,false,textDocument/didOpen,,4463 +471064,false,textDocument/didOpen,,4463 +85215,false,textDocument/didOpen,,1054 +1622,false,textDocument/didOpen,,6083 +7609,false,textDocument/didOpen,,6084 +6845,false,textDocument/didOpen,,6085 +6996,false,textDocument/didOpen,,6088 +6960,false,textDocument/didOpen,,6086 +7021,false,textDocument/didOpen,,6085 +769,false,textDocument/didOpen,,6086 +6593,false,textDocument/didOpen,,6087 +36725,false,textDocument/didOpen,,6429 +40130,false,textDocument/didOpen,,6427 +37804,false,textDocument/didOpen,,6423 +23600,false,textDocument/didOpen,,6413 +48153,false,textDocument/didOpen,,6411 +58364,false,textDocument/didOpen,,6403 +62355,false,textDocument/didOpen,,6405 +101,false,textDocument/completion,55, +1054,false,textDocument/didOpen,,6406 +51618,false,textDocument/didOpen,,6412 +1067,false,textDocument/didOpen,,6406 +31990,false,textDocument/didOpen,,6407 +29404,false,textDocument/didOpen,,6408 +52592,false,textDocument/didOpen,,6407 +47272,false,textDocument/didOpen,,6405 +56816,false,textDocument/didOpen,,6403 +63608,false,textDocument/didOpen,,6401 +1672,false,textDocument/didOpen,,6057 +1579,false,textDocument/didOpen,,6022 +1538,false,textDocument/didOpen,,6019 +1455,false,textDocument/didOpen,,6020 +1430,false,textDocument/didOpen,,6021 +1538,false,textDocument/didOpen,,6023 +29,true,textDocument/completion,, +1192,false,textDocument/didOpen,,6012 +4246,false,textDocument/didOpen,,6011 +1514,false,textDocument/didOpen,,6014 +1604,false,textDocument/didOpen,,6016 +30,false,textDocument/completion,1, +1528,false,textDocument/didOpen,,6026 +2143,false,textDocument/didOpen,,6028 +11,false,textDocument/completion,1, +2679,false,textDocument/didOpen,,6031 +13,false,textDocument/completion,1, +7427,false,textDocument/didOpen,,6033 +7300,false,textDocument/didOpen,,6031 +2577,false,textDocument/didOpen,,6036 +13,false,textDocument/completion,1, +4479,false,textDocument/didOpen,,6041 +7463,false,textDocument/didOpen,,6042 +5845,false,textDocument/didOpen,,6043 +6083,false,textDocument/didOpen,,6044 +5962,false,textDocument/didOpen,,6045 +5072,false,textDocument/didOpen,,6047 +5639,false,textDocument/didOpen,,6048 +3973,false,textDocument/didOpen,,6047 +116,false,textDocument/completion,1, +902,false,textDocument/didOpen,,6052 +25,false,textDocument/completion,1, +2230,false,textDocument/didOpen,,6056 +931,false,textDocument/didOpen,,6057 +26,false,textDocument/completion,1, +5570,false,textDocument/didOpen,,6058 +5591,false,textDocument/didOpen,,6059 +7315,false,textDocument/didOpen,,6060 +825,false,textDocument/didOpen,,6064 +13,false,textDocument/completion,3, +726,false,textDocument/didOpen,,6069 +20,false,textDocument/completion,3, +1481,false,textDocument/didOpen,,6072 +5562,false,textDocument/didOpen,,6073 +44,false,textDocument/completion,3, +275442,false,textDocument/didOpen,,7575 +102541,false,textDocument/didOpen,,4548 +125945,false,textDocument/didOpen,,10173 +66183,false,textDocument/didOpen,,2473 +35903,false,textDocument/didOpen,,333 +88910,false,textDocument/didOpen,,1054 +185,false,textDocument/didOpen,,667 +767,false,textDocument/didOpen,,670 +339,false,textDocument/completion,88, +813,false,textDocument/didOpen,,672 +246,false,textDocument/didOpen,,673 +81,false,textDocument/completion,88, +785,false,textDocument/didOpen,,676 +1022,false,textDocument/didOpen,,677 +324,false,textDocument/completion,88, +1119,false,textDocument/didOpen,,678 +848,false,textDocument/didOpen,,679 +1111,false,textDocument/didOpen,,680 +404,false,textDocument/completion,88, +1088,false,textDocument/didOpen,,679 +760,false,textDocument/didOpen,,681 +164,false,textDocument/completion,88, +1215,false,textDocument/didOpen,,685 +1087,false,textDocument/didOpen,,686 +1169,false,textDocument/didOpen,,687 +1290,false,textDocument/didOpen,,689 +399,false,textDocument/completion,88, +289,false,textDocument/didOpen,,691 +288,false,textDocument/didOpen,,763 +1158,false,textDocument/didOpen,,767 +1178,false,textDocument/didOpen,,771 +791,false,textDocument/didOpen,,754 +1111,false,textDocument/didOpen,,757 +572,false,textDocument/completion,88, +1167,false,textDocument/didOpen,,758 +1171,false,textDocument/didOpen,,741 +1109,false,textDocument/didOpen,,742 +1135,false,textDocument/didOpen,,743 +1115,false,textDocument/didOpen,,744 +772,false,textDocument/didOpen,,745 +576,false,textDocument/completion,88, +57444,false,textDocument/didOpen,,264 +171502,false,textDocument/didOpen,,2247 +97921,false,textDocument/didOpen,,2253 +115688,false,textDocument/didOpen,,2249 +153099,false,textDocument/didOpen,,2247 +136714,false,textDocument/didOpen,,2223 +6145,false,textDocument/didOpen,,2224 +116,false,textDocument/completion,402, +180626,false,textDocument/didOpen,,2225 +174127,false,textDocument/didOpen,,2226 +191977,false,textDocument/didOpen,,2227 +271734,false,textDocument/didOpen,,2230 +54,false,textDocument/completion,402, +290467,false,textDocument/didOpen,,2239 +91,false,textDocument/completion,402, +291411,false,textDocument/didOpen,,2241 +298635,false,textDocument/didOpen,,2242 +268437,false,textDocument/didOpen,,2243 +36,false,textDocument/completion,402, +388788,false,textDocument/didOpen,,2251 +1333,false,textDocument/completion,402, +354867,false,textDocument/didOpen,,2256 +36,false,textDocument/completion,402, +355360,false,textDocument/didOpen,,2267 +580,false,textDocument/completion,402, +400992,false,textDocument/didOpen,,2270 +429637,false,textDocument/didOpen,,2271 +433543,false,textDocument/didOpen,,2272 +489070,false,textDocument/didOpen,,2274 +38,false,textDocument/completion,402, +424727,false,textDocument/didOpen,,2278 +48,false,textDocument/completion,402, +474974,false,textDocument/didOpen,,2286 +35,false,textDocument/completion,402, +514598,false,textDocument/didOpen,,2292 +37,false,textDocument/completion,402, +489229,false,textDocument/didOpen,,2295 +585747,false,textDocument/didOpen,,2296 +40,false,textDocument/completion,402, +606048,false,textDocument/didOpen,,2298 +561911,false,textDocument/didOpen,,2300 +35,false,textDocument/completion,402, +622720,false,textDocument/didOpen,,2301 +578729,false,textDocument/didOpen,,2302 +37,false,textDocument/completion,402, +594635,false,textDocument/didOpen,,2303 +562150,false,textDocument/didOpen,,2304 +572924,false,textDocument/didOpen,,2304 +764220,false,textDocument/didOpen,,2305 +39,false,textDocument/completion,402, +626581,false,textDocument/didOpen,,2307 +666235,false,textDocument/didOpen,,2308 +707754,false,textDocument/didOpen,,2350 +765789,false,textDocument/didOpen,,2351 +750575,false,textDocument/didOpen,,2353 +798106,false,textDocument/didOpen,,2354 +756039,false,textDocument/didOpen,,2355 +706378,false,textDocument/didOpen,,2356 +789393,false,textDocument/didOpen,,2358 +756780,false,textDocument/didOpen,,2359 +826435,false,textDocument/didOpen,,2360 +901959,false,textDocument/didOpen,,2361 +931124,false,textDocument/didOpen,,2360 +917146,false,textDocument/didOpen,,2361 +813195,false,textDocument/didOpen,,2362 +1011071,false,textDocument/didOpen,,2404 +1098851,false,textDocument/didOpen,,2402 +984007,false,textDocument/didOpen,,2404 +1502,false,textDocument/completion,402, +1074601,false,textDocument/didOpen,,2407 +1109815,false,textDocument/didOpen,,2467 +1127462,false,textDocument/didOpen,,2468 +1108749,false,textDocument/didOpen,,2470 +37,false,textDocument/completion,415, +1179365,false,textDocument/didOpen,,2472 +1076075,false,textDocument/didOpen,,2473 +1182762,false,textDocument/didOpen,,2475 +4003,false,textDocument/completion,416, +1141561,false,textDocument/didOpen,,2476 +1073544,false,textDocument/didOpen,,2478 +1177345,false,textDocument/didOpen,,2479 +1259804,false,textDocument/didOpen,,2480 +68,false,textDocument/completion,418, +1159343,false,textDocument/didOpen,,2481 +1295114,false,textDocument/didOpen,,2484 +1449371,false,textDocument/didOpen,,2669 +1441760,false,textDocument/didOpen,,2668 +1414967,false,textDocument/didOpen,,2670 +1470371,false,textDocument/didOpen,,2668 +1504775,false,textDocument/didOpen,,2684 +1461078,false,textDocument/didOpen,,2683 +1502253,false,textDocument/didOpen,,2684 +1760844,false,textDocument/didOpen,,2683 +1852753,false,textDocument/didOpen,,2678 +1990504,false,textDocument/didOpen,,2679 +462,false,textDocument/didOpen,,2680 +2077936,false,textDocument/didOpen,,2679 +901,false,textDocument/didOpen,,2680 +782,false,textDocument/didOpen,,2681 +76,false,textDocument/completion,439, +1975745,false,textDocument/didOpen,,2684 +69,false,textDocument/completion,436, +2099979,false,textDocument/didOpen,,2689 +1846819,false,textDocument/didOpen,,2684 +1945660,false,textDocument/didOpen,,2684 +66,false,textDocument/completion,436, +451,false,textDocument/didOpen,,2692 +345,false,textDocument/didOpen,,2693 +6096,false,textDocument/completion,436, +416,false,textDocument/didOpen,,2701 +361,false,textDocument/didOpen,,2691 +1514,false,textDocument/didOpen,,2694 +656,false,textDocument/completion,436, +1632,false,textDocument/didOpen,,2697 +2692,false,textDocument/didOpen,,2698 +515,false,textDocument/completion,436, +1717,false,textDocument/didOpen,,2702 +1666,false,textDocument/didOpen,,2703 +660,false,textDocument/completion,436, +1694,false,textDocument/didOpen,,2710 +2718,false,textDocument/didOpen,,2715 +626,false,textDocument/completion,436, +1628,false,textDocument/didOpen,,2716 +21939,false,textDocument/didOpen,,2712 +44314,false,textDocument/didOpen,,2714 +69,false,textDocument/completion,8, +21337,false,textDocument/didOpen,,2712 +99268,false,textDocument/didOpen,,2713 +40892,false,textDocument/didOpen,,2714 +40,false,textDocument/completion,8, +46501,false,textDocument/didOpen,,2716 +19692,false,textDocument/didOpen,,2717 +39,false,textDocument/completion,8, +1585,false,textDocument/didOpen,,2720 +2103,false,textDocument/didOpen,,2717 +157,false,textDocument/completion,8, +1597,false,textDocument/didOpen,,2718 +1618,false,textDocument/didOpen,,2722 +2183521,false,textDocument/didOpen,,2721 +159790,false,textDocument/didOpen,,1909 +49103,false,textDocument/didOpen,,262 +141900,false,textDocument/didOpen,,1914 +185558,false,textDocument/didOpen,,1916 +2751,false,textDocument/completion,112, +77966,false,textDocument/didOpen,,1914 +443514,false,textDocument/didOpen,,1916 +510844,false,textDocument/didOpen,,1917 +142940,false,textDocument/didOpen,,1918 +166,false,textDocument/completion,112, +279867,false,textDocument/didOpen,,1919 +257858,false,textDocument/didOpen,,1924 +213699,false,textDocument/didOpen,,1925 +385418,false,textDocument/didOpen,,1926 +436,false,textDocument/completion,112, +252727,false,textDocument/didOpen,,1925 +100422,false,textDocument/didOpen,,1926 +109,false,textDocument/completion,112, +345546,false,textDocument/didOpen,,1929 +215919,false,textDocument/didOpen,,1930 +527633,false,textDocument/didOpen,,1932 +535889,false,textDocument/didOpen,,1933 +581222,false,textDocument/didOpen,,1935 +1246,false,textDocument/didOpen,,1936 +485,false,textDocument/completion,114, +891,false,textDocument/didOpen,,1937 +353262,false,textDocument/didOpen,,1941 +316544,false,textDocument/didOpen,,1945 +112,false,textDocument/completion,115, +616217,false,textDocument/didOpen,,1944 +342699,false,textDocument/didOpen,,1917 +257941,false,textDocument/didOpen,,1909 +425576,false,textDocument/didOpen,,1916 +84,false,textDocument/completion,78, +210262,false,textDocument/didOpen,,1915 +234995,false,textDocument/didOpen,,1916 +87,false,textDocument/completion,78, +352543,false,textDocument/didOpen,,1917 +584549,false,textDocument/didOpen,,1919 +245919,false,textDocument/didOpen,,1920 +100,false,textDocument/completion,78, +501342,false,textDocument/didOpen,,1930 +155913,false,textDocument/didOpen,,1931 +215291,false,textDocument/didOpen,,1929 +310073,false,textDocument/didOpen,,1932 +747,false,textDocument/didOpen,,1936 +398715,false,textDocument/didOpen,,1942 +576323,false,textDocument/didOpen,,1934 +497542,false,textDocument/didOpen,,1944 +375480,false,textDocument/didOpen,,1945 +100,false,textDocument/completion,78, +401626,false,textDocument/didOpen,,1944 +181196,false,textDocument/didOpen,,1945 +147899,false,textDocument/didOpen,,1946 +138,false,textDocument/completion,78, +231077,false,textDocument/didOpen,,1950 +832,false,textDocument/completion,78, +506750,false,textDocument/didOpen,,1955 +148383,false,textDocument/didOpen,,1956 +154840,false,textDocument/didOpen,,1957 +111,false,textDocument/completion,60, +155151,false,textDocument/didOpen,,1956 +186179,false,textDocument/didOpen,,1957 +103,false,textDocument/completion,60, +322867,false,textDocument/didOpen,,1956 +80432,false,textDocument/didOpen,,1957 +54,false,textDocument/completion,60, +156019,false,textDocument/didOpen,,1958 +149797,false,textDocument/didOpen,,1959 +52,false,textDocument/completion,60, +155125,false,textDocument/didOpen,,1961 +78,false,textDocument/completion,60, +179131,false,textDocument/didOpen,,1962 +153,false,textDocument/completion,60, +182091,false,textDocument/didOpen,,1967 +122,false,textDocument/completion,60, +296197,false,textDocument/didOpen,,1972 +475509,false,textDocument/didOpen,,1973 +389765,false,textDocument/didOpen,,1972 +267273,false,textDocument/didOpen,,1973 +735089,false,textDocument/didOpen,,1972 +248592,false,textDocument/didOpen,,1973 +294346,false,textDocument/didOpen,,1971 +541327,false,textDocument/didOpen,,1970 +318789,false,textDocument/didOpen,,1971 +380867,false,textDocument/didOpen,,1972 +286381,false,textDocument/didOpen,,1973 +112,false,textDocument/completion,112, +328863,false,textDocument/didOpen,,1974 +395966,false,textDocument/didOpen,,1975 +493438,false,textDocument/didOpen,,1971 +329184,false,textDocument/didOpen,,1970 +319376,false,textDocument/didOpen,,1971 +408525,false,textDocument/didOpen,,1976 +452395,false,textDocument/didOpen,,1972 +364271,false,textDocument/didOpen,,1982 +104,false,textDocument/completion,78, +612050,false,textDocument/didOpen,,1981 +612900,false,textDocument/didOpen,,1972 +488271,false,textDocument/didOpen,,1974 +375511,false,textDocument/didOpen,,1975 +306735,false,textDocument/didOpen,,1978 +83,false,textDocument/completion,78, +674128,false,textDocument/didOpen,,1985 +203300,false,textDocument/didOpen,,1986 +292311,false,textDocument/didOpen,,1987 +91,false,textDocument/completion,78, +417835,false,textDocument/didOpen,,1989 +666195,false,textDocument/didOpen,,1991 +105,false,textDocument/completion,78, +210284,false,textDocument/didOpen,,1992 +608396,false,textDocument/didOpen,,1991 +368070,false,textDocument/didOpen,,1989 +577959,false,textDocument/didOpen,,1988 +258818,false,textDocument/didOpen,,1989 +231250,false,textDocument/didOpen,,1990 +98,false,textDocument/completion,78, +842529,false,textDocument/didOpen,,1997 +163371,false,textDocument/didOpen,,1998 +278729,false,textDocument/didOpen,,1999 +112,false,textDocument/completion,60, +1109969,false,textDocument/didOpen,,1997 +202788,false,textDocument/didOpen,,1998 +617852,false,textDocument/didOpen,,1997 +273377,false,textDocument/didOpen,,1995 +1438081,false,textDocument/didOpen,,1997 +729,false,textDocument/didOpen,,2000 +861919,false,textDocument/didOpen,,2001 +363,false,textDocument/completion,78, +825,false,textDocument/didOpen,,2005 +511,false,textDocument/completion,78, +467,false,textDocument/didOpen,,2011 +269,false,textDocument/didOpen,,2012 +610398,false,textDocument/didOpen,,2003 +290736,false,textDocument/didOpen,,2006 +1026,false,textDocument/completion,78, +898764,false,textDocument/didOpen,,2017 +1821587,false,textDocument/didOpen,,2018 +812520,false,textDocument/didOpen,,2023 +554352,false,textDocument/didOpen,,2025 +490152,false,textDocument/didOpen,,2026 +441022,false,textDocument/didOpen,,2027 +519493,false,textDocument/didOpen,,2028 +116,false,textDocument/completion,117, +588622,false,textDocument/didOpen,,2067 +609299,false,textDocument/didOpen,,2068 +2013,false,textDocument/completion,118, +566100,false,textDocument/didOpen,,2070 +576120,false,textDocument/didOpen,,2074 +656582,false,textDocument/didOpen,,2075 +165,false,textDocument/completion,118, +533763,false,textDocument/didOpen,,2076 +617024,false,textDocument/didOpen,,2076 +561732,false,textDocument/didOpen,,2066 +906042,false,textDocument/didOpen,,2071 +588761,false,textDocument/didOpen,,2073 +112,false,textDocument/completion,118, +871944,false,textDocument/didOpen,,2080 +798680,false,textDocument/didOpen,,2081 +650791,false,textDocument/didOpen,,2080 +766201,false,textDocument/didOpen,,2081 +197,false,textDocument/didOpen,,2084 +531,false,textDocument/didOpen,,2086 +361,false,textDocument/didOpen,,2087 +295,false,textDocument/completion,118, +332,false,textDocument/didOpen,,2088 +482,false,textDocument/didOpen,,2095 +819120,false,textDocument/didOpen,,2094 +844341,false,textDocument/didOpen,,2099 +174,false,textDocument/didOpen,,2100 +586,false,textDocument/didOpen,,2105 +529,false,textDocument/didOpen,,2106 +440,false,textDocument/didOpen,,2107 +542,false,textDocument/didOpen,,2108 +733,false,textDocument/didOpen,,2109 +408,false,textDocument/completion,118, +689,false,textDocument/didOpen,,2112 +575,false,textDocument/completion,118, +1102,false,textDocument/didOpen,,2113 +444,false,textDocument/completion,118, +276,false,textDocument/didOpen,,2114 +217,false,textDocument/completion,118, +518,false,textDocument/didOpen,,2122 +410,false,textDocument/completion,118, +1992,false,textDocument/didOpen,,2124 +1025,false,textDocument/didOpen,,2130 +711,false,textDocument/didOpen,,2131 +808,false,textDocument/didOpen,,2103 +582,false,textDocument/didOpen,,2131 +768,false,textDocument/didOpen,,2130 +865,false,textDocument/didOpen,,2132 +763,false,textDocument/didOpen,,2131 +735,false,textDocument/didOpen,,2103 +585,false,textDocument/didOpen,,2131 +1023308,false,textDocument/didOpen,,2094 +666277,false,textDocument/didOpen,,2093 +722467,false,textDocument/didOpen,,2094 +785918,false,textDocument/didOpen,,2096 +688714,false,textDocument/didOpen,,2099 +1370700,false,textDocument/didOpen,,2109 +237,false,textDocument/didOpen,,2116 +140,false,textDocument/didOpen,,2117 +2180,false,textDocument/completion,118, +813460,false,textDocument/didOpen,,2121 +914051,false,textDocument/didOpen,,2123 +691969,false,textDocument/didOpen,,2127 +605007,false,textDocument/didOpen,,2149 +565641,false,textDocument/didOpen,,2147 +519,false,textDocument/didOpen,,2150 +1498910,false,textDocument/didOpen,,2151 +1007331,false,textDocument/didOpen,,2152 +775916,false,textDocument/didOpen,,2163 +953540,false,textDocument/didOpen,,2162 +1217843,false,textDocument/didOpen,,2177 +220,false,textDocument/didOpen,,2180 +878,false,textDocument/didOpen,,2181 +1271144,false,textDocument/didOpen,,2186 +1278122,false,textDocument/didOpen,,2187 +812633,false,textDocument/didOpen,,2194 +1229162,false,textDocument/didOpen,,2190 +890021,false,textDocument/didOpen,,2189 +1074546,false,textDocument/didOpen,,2190 +829756,false,textDocument/didOpen,,2195 +1203173,false,textDocument/didOpen,,2191 +1021110,false,textDocument/didOpen,,2191 +854863,false,textDocument/didOpen,,2193 +1620870,false,textDocument/didOpen,,2195 +974178,false,textDocument/didOpen,,2193 +1455135,false,textDocument/didOpen,,2196 +925379,false,textDocument/didOpen,,2197 +1384221,false,textDocument/didOpen,,2196 +1120863,false,textDocument/didOpen,,2200 +906277,false,textDocument/didOpen,,2204 +1333976,false,textDocument/didOpen,,2204 +3036928,false,textDocument/didOpen,,2204 +1462428,false,textDocument/didOpen,,2203 +1114531,false,textDocument/didOpen,,2202 +1484721,false,textDocument/didOpen,,2203 +979967,false,textDocument/didOpen,,2206 +2154182,false,textDocument/didOpen,,2208 +1218856,false,textDocument/didOpen,,2209 +1133058,false,textDocument/didOpen,,2210 +1384778,false,textDocument/didOpen,,2229 +187,false,textDocument/didOpen,,2230 +1177528,false,textDocument/didOpen,,2210 +2065116,false,textDocument/didOpen,,2229 +184,false,textDocument/didOpen,,2230 +1211378,false,textDocument/didOpen,,2210 +1085020,false,textDocument/didOpen,,2229 +1328018,false,textDocument/didOpen,,2230 +1132993,false,textDocument/didOpen,,2231 +194,false,textDocument/didOpen,,2233 +139,false,textDocument/completion,121, +143,false,textDocument/didOpen,,2234 +139,false,textDocument/didOpen,,2235 +3498265,false,textDocument/didOpen,,2235 +136209,false,textDocument/didOpen,,2236 +139848,false,textDocument/didOpen,,2237 +137577,false,textDocument/didOpen,,2241 +137155,false,textDocument/didOpen,,2246 +34,false,textDocument/completion,60, +1137386,false,textDocument/didOpen,,2247 +1802785,false,textDocument/didOpen,,2210 +1683394,false,textDocument/didOpen,,2214 +1049504,false,textDocument/didOpen,,2217 +1164922,false,textDocument/didOpen,,2210 +1877896,false,textDocument/didOpen,,2247 +1197469,false,textDocument/didOpen,,2210 +1524051,false,textDocument/didOpen,,2213 +1342387,false,textDocument/didOpen,,2214 +788627,false,textDocument/didOpen,,2215 +2513,false,textDocument/completion,78, +791245,false,textDocument/didOpen,,2222 +98,false,textDocument/completion,78, +683577,false,textDocument/didOpen,,2233 +713213,false,textDocument/didOpen,,2234 +948516,false,textDocument/didOpen,,2239 +760046,false,textDocument/didOpen,,2241 +2101383,false,textDocument/didOpen,,2246 +610396,false,textDocument/didOpen,,2242 +792109,false,textDocument/didOpen,,2261 +2123987,false,textDocument/didOpen,,2253 +954081,false,textDocument/didOpen,,2257 +871722,false,textDocument/didOpen,,2259 +1052522,false,textDocument/didOpen,,2252 +1543957,false,textDocument/didOpen,,2255 +98,false,textDocument/completion,78, +514152,false,textDocument/didOpen,,2265 +684045,false,textDocument/didOpen,,2268 +639931,false,textDocument/didOpen,,2269 +3589196,false,textDocument/didOpen,,2276 +1513527,false,textDocument/didOpen,,2278 +1462866,false,textDocument/didOpen,,2282 +1466615,false,textDocument/didOpen,,2280 +1377704,false,textDocument/didOpen,,2282 +1545749,false,textDocument/didOpen,,2280 +2313726,false,textDocument/didOpen,,2281 +557657,false,textDocument/didOpen,,2280 +3224709,false,textDocument/didOpen,,2281 +2497056,false,textDocument/didOpen,,2266 +2723335,false,textDocument/didOpen,,2267 +4375,false,textDocument/completion,125, +3159505,false,textDocument/didOpen,,2269 +3083369,false,textDocument/didOpen,,2273 +118,false,textDocument/completion,125, +106,false,textDocument/completion,125, +2995592,false,textDocument/didOpen,,2272 +2850081,false,textDocument/didOpen,,2273 +2610889,false,textDocument/didOpen,,2275 +19095,false,textDocument/completion,125, +2851508,false,textDocument/didOpen,,2276 +2952884,false,textDocument/didOpen,,2278 +3085243,false,textDocument/didOpen,,2275 +3083489,false,textDocument/didOpen,,2276 +121,false,textDocument/completion,125, +2929577,false,textDocument/didOpen,,2285 +2785467,false,textDocument/didOpen,,2286 +154,false,textDocument/completion,125, +2825291,false,textDocument/didOpen,,2288 +3085570,false,textDocument/didOpen,,2295 +2733712,false,textDocument/didOpen,,2285 +3168165,false,textDocument/didOpen,,2286 +2587131,false,textDocument/didOpen,,2288 +441,false,textDocument/didOpen,,2289 +147,false,textDocument/completion,116, +444,false,textDocument/didOpen,,2290 +463,false,textDocument/didOpen,,2291 +134,false,textDocument/completion,116, +2859998,false,textDocument/didOpen,,2304 +2843589,false,textDocument/didOpen,,2307 +3539548,false,textDocument/didOpen,,2285 +3495884,false,textDocument/didOpen,,2286 +125,false,textDocument/completion,125, +1781093,false,textDocument/didOpen,,2287 +1885549,false,textDocument/didOpen,,2288 +2088530,false,textDocument/didOpen,,2289 +105,false,textDocument/completion,78, +3949545,false,textDocument/didOpen,,2288 +3199030,false,textDocument/didOpen,,2289 +3257695,false,textDocument/didOpen,,2292 +1459806,false,textDocument/didOpen,,2298 +1622854,false,textDocument/didOpen,,2299 +93,false,textDocument/completion,78, +1915820,false,textDocument/didOpen,,2302 +2382861,false,textDocument/didOpen,,2303 +1678650,false,textDocument/didOpen,,2304 +1862782,false,textDocument/didOpen,,2306 +110,false,textDocument/completion,78, +1780433,false,textDocument/didOpen,,2311 +1839702,false,textDocument/didOpen,,2322 +2102258,false,textDocument/didOpen,,2323 +1664191,false,textDocument/didOpen,,2324 +4810,false,textDocument/completion,78, +1510440,false,textDocument/didOpen,,2336 +1670927,false,textDocument/didOpen,,2338 +2335632,false,textDocument/didOpen,,2339 +2031560,false,textDocument/didOpen,,2340 +1754062,false,textDocument/didOpen,,2342 +91,false,textDocument/completion,78, +4804,false,textDocument/completion,78, +1562575,false,textDocument/didOpen,,2345 +1945060,false,textDocument/didOpen,,2345 +107,false,textDocument/completion,78, +2028410,false,textDocument/didOpen,,2358 +1745879,false,textDocument/didOpen,,2359 +2992401,false,textDocument/didOpen,,2360 +17279,false,textDocument/didOpen,,266 +443241,false,textDocument/didOpen,,267 +17,false,textDocument/completion,28, +608032,false,textDocument/didOpen,,285 +816782,false,textDocument/didOpen,,262 +335038,false,textDocument/didOpen,,265 +360768,false,textDocument/didOpen,,267 +245671,false,textDocument/didOpen,,269 +92,false,textDocument/completion,4, +166043,false,textDocument/didOpen,,271 +54812,false,textDocument/didOpen,,272 +345756,false,textDocument/didOpen,,278 +133,false,textDocument/didOpen,,279 +205,false,textDocument/didOpen,,281 +191,false,textDocument/completion,27, +152,false,textDocument/didOpen,,286 +175,false,textDocument/completion,27, +192,false,textDocument/didOpen,,287 +152,false,textDocument/didOpen,,288 +205,false,textDocument/completion,27, +373852,false,textDocument/didOpen,,301 +3289050,false,textDocument/didOpen,,2363 +2701332,false,textDocument/didOpen,,2364 +2619851,false,textDocument/didOpen,,2366 +2829051,false,textDocument/didOpen,,2365 +2898050,false,textDocument/didOpen,,2366 +3139975,false,textDocument/didOpen,,2367 +3695092,false,textDocument/didOpen,,2372 +2611675,false,textDocument/didOpen,,2373 +2740730,false,textDocument/didOpen,,2374 +108,false,textDocument/completion,78, +2295893,false,textDocument/didOpen,,2375 +107,false,textDocument/completion,78, +2472888,false,textDocument/didOpen,,2376 +2661139,false,textDocument/didOpen,,2376 +104,false,textDocument/completion,78, +2552584,false,textDocument/didOpen,,2377 +2691019,false,textDocument/didOpen,,2378 +107,false,textDocument/completion,78, +234956,false,textDocument/didOpen,,2387 +806858,false,textDocument/didOpen,,2389 +1185423,false,textDocument/didOpen,,2390 +50,false,textDocument/completion,60, +263378,false,textDocument/didOpen,,2391 +921794,false,textDocument/didOpen,,2397 +3007027,false,textDocument/didOpen,,2416 +2180235,false,textDocument/didOpen,,2417 +2175927,false,textDocument/didOpen,,2421 +2599997,false,textDocument/didOpen,,2427 +2578642,false,textDocument/didOpen,,2428 +2526705,false,textDocument/didOpen,,2429 +95,false,textDocument/completion,78, +2003959,false,textDocument/didOpen,,2425 +2418111,false,textDocument/didOpen,,2426 +2545881,false,textDocument/didOpen,,2427 +2271695,false,textDocument/didOpen,,2428 +2161342,false,textDocument/didOpen,,2433 +2677156,false,textDocument/didOpen,,2436 +87,false,textDocument/completion,78, +2836425,false,textDocument/didOpen,,2440 +1971226,false,textDocument/didOpen,,2441 +89,false,textDocument/completion,78, +2180528,false,textDocument/didOpen,,2755 +3238731,false,textDocument/didOpen,,2441 +2596179,false,textDocument/didOpen,,2755 +2087403,false,textDocument/didOpen,,2753 +2717272,false,textDocument/didOpen,,2754 +3086389,false,textDocument/didOpen,,2441 +2214858,false,textDocument/didOpen,,2426 +2484105,false,textDocument/didOpen,,2417 +4299275,false,textDocument/didOpen,,2366 +5330831,false,textDocument/didOpen,,2360 +4656917,false,textDocument/didOpen,,2359 +5027156,false,textDocument/didOpen,,2364 +6006792,false,textDocument/didOpen,,2325 +4581903,false,textDocument/didOpen,,2317 +5190688,false,textDocument/didOpen,,2316 +690,false,textDocument/didOpen,,2315 +4989064,false,textDocument/didOpen,,2314 +377,false,textDocument/didOpen,,2260 +664,false,textDocument/didOpen,,2255 +631,false,textDocument/didOpen,,2254 +303,false,textDocument/didOpen,,2260 +4562960,false,textDocument/didOpen,,2314 +3195128,false,textDocument/didOpen,,2317 +2135514,false,textDocument/didOpen,,2318 +2959951,false,textDocument/didOpen,,2319 +105,false,textDocument/completion,78, +3222357,false,textDocument/didOpen,,2320 +2146627,false,textDocument/didOpen,,2320 +105,false,textDocument/completion,78, +2860834,false,textDocument/didOpen,,2321 +2840995,false,textDocument/didOpen,,2333 +190,false,textDocument/didOpen,,2334 +2387609,false,textDocument/didOpen,,2334 +5101871,false,textDocument/didOpen,,2297 +4019162,false,textDocument/didOpen,,2249 +3645020,false,textDocument/didOpen,,2254 +4318657,false,textDocument/didOpen,,2250 +3735065,false,textDocument/didOpen,,2254 +3871991,false,textDocument/didOpen,,2249 +4463263,false,textDocument/didOpen,,2250 +4459394,false,textDocument/didOpen,,2252 +1885205,false,textDocument/didOpen,,2253 +142,false,textDocument/completion,78, +2533629,false,textDocument/didOpen,,2257 +7158,false,textDocument/completion,78, +98,false,textDocument/completion,78, +2435087,false,textDocument/didOpen,,2259 +2484782,false,textDocument/didOpen,,2260 +3022736,false,textDocument/didOpen,,2259 +126,false,textDocument/completion,78, +1687425,false,textDocument/didOpen,,2260 +2410710,false,textDocument/didOpen,,2268 +4246277,false,textDocument/didOpen,,2272 +4227998,false,textDocument/didOpen,,2273 +3890613,false,textDocument/didOpen,,2276 +20494,false,textDocument/completion,119, +4280094,false,textDocument/didOpen,,2279 +4188448,false,textDocument/didOpen,,2280 +3759773,false,textDocument/didOpen,,2281 +4248781,false,textDocument/didOpen,,2283 +5992,false,textDocument/completion,119, +5170437,false,textDocument/didOpen,,2284 +3872239,false,textDocument/didOpen,,2285 +4302073,false,textDocument/didOpen,,2276 +4222295,false,textDocument/didOpen,,2277 +4561898,false,textDocument/didOpen,,2278 +183,false,textDocument/completion,119, +4147642,false,textDocument/didOpen,,2281 +118,false,textDocument/completion,119, +4319869,false,textDocument/didOpen,,2288 +4137909,false,textDocument/didOpen,,2293 +4449930,false,textDocument/didOpen,,2295 +7855,false,textDocument/completion,119, +4026225,false,textDocument/didOpen,,2296 +4729089,false,textDocument/didOpen,,2297 +281,false,textDocument/completion,119, +4091476,false,textDocument/didOpen,,2298 +3864258,false,textDocument/didOpen,,2299 +4142818,false,textDocument/didOpen,,2302 +4098852,false,textDocument/didOpen,,2305 +4292669,false,textDocument/didOpen,,2307 +4349380,false,textDocument/didOpen,,2308 +4418440,false,textDocument/didOpen,,2312 +4046794,false,textDocument/didOpen,,2313 +4042913,false,textDocument/didOpen,,2316 +130,false,textDocument/completion,123, +4050552,false,textDocument/didOpen,,2324 +4158574,false,textDocument/didOpen,,2329 +259,false,textDocument/completion,123, +4236494,false,textDocument/didOpen,,2336 +4406962,false,textDocument/didOpen,,2343 +4041034,false,textDocument/didOpen,,2344 +156,false,textDocument/completion,123, +4384087,false,textDocument/didOpen,,2351 +4118136,false,textDocument/didOpen,,2336 +4463205,false,textDocument/didOpen,,2337 +3956870,false,textDocument/didOpen,,2343 +3927146,false,textDocument/didOpen,,2344 +4802143,false,textDocument/didOpen,,2345 +4419292,false,textDocument/didOpen,,2347 +200,false,textDocument/completion,123, +7680,false,textDocument/completion,123, +4159763,false,textDocument/didOpen,,2352 +4707550,false,textDocument/didOpen,,2353 +8823,false,textDocument/completion,123, +4635390,false,textDocument/didOpen,,2358 +7406,false,textDocument/completion,123, +4893608,false,textDocument/didOpen,,2364 +22413,false,textDocument/completion,123, +5058882,false,textDocument/didOpen,,2365 +8969,false,textDocument/completion,123, +4403317,false,textDocument/didOpen,,2371 +109,false,textDocument/completion,123, +4634929,false,textDocument/didOpen,,2372 +4533125,false,textDocument/didOpen,,2379 +4495462,false,textDocument/didOpen,,2386 +4686700,false,textDocument/didOpen,,2388 +3929850,false,textDocument/didOpen,,2393 +6831,false,textDocument/completion,119, +4922486,false,textDocument/didOpen,,2394 +4987952,false,textDocument/didOpen,,2401 +4656864,false,textDocument/didOpen,,2399 +5141005,false,textDocument/didOpen,,2397 +4627623,false,textDocument/didOpen,,2395 +4931538,false,textDocument/didOpen,,2396 +5209061,false,textDocument/didOpen,,2398 +2645803,false,textDocument/didOpen,,2400 +88,false,textDocument/completion,78, +5429611,false,textDocument/didOpen,,2398 +2591392,false,textDocument/didOpen,,2399 +133,false,textDocument/completion,78, +2507476,false,textDocument/didOpen,,2401 +2480101,false,textDocument/didOpen,,2399 +4952904,false,textDocument/didOpen,,2398 +2670801,false,textDocument/didOpen,,2400 +122,false,textDocument/completion,78, +2585830,false,textDocument/didOpen,,2401 +2930737,false,textDocument/didOpen,,2402 +150,false,textDocument/completion,78, +2473803,false,textDocument/didOpen,,2403 +2692065,false,textDocument/didOpen,,2406 +6184506,false,textDocument/didOpen,,2408 +4955909,false,textDocument/didOpen,,2409 +5276021,false,textDocument/didOpen,,2412 +19528,false,textDocument/completion,137, +4834414,false,textDocument/didOpen,,2418 +5413864,false,textDocument/didOpen,,2419 +5361743,false,textDocument/didOpen,,2420 +6246738,false,textDocument/didOpen,,2429 +5631313,false,textDocument/didOpen,,2430 +7347,false,textDocument/completion,137, +5010066,false,textDocument/didOpen,,2431 +5339727,false,textDocument/didOpen,,2430 +5732599,false,textDocument/didOpen,,2409 +781079,false,textDocument/didOpen,,262 +5357364,false,textDocument/didOpen,,2414 +5472429,false,textDocument/didOpen,,2410 +5358278,false,textDocument/didOpen,,2409 +5346769,false,textDocument/didOpen,,2414 +5460310,false,textDocument/didOpen,,2410 +5249830,false,textDocument/didOpen,,2409 +5490875,false,textDocument/didOpen,,2414 +2939575,false,textDocument/didOpen,,2419 +2974957,false,textDocument/didOpen,,2418 +3076950,false,textDocument/didOpen,,2423 +3255372,false,textDocument/didOpen,,2427 +3192724,false,textDocument/didOpen,,2429 +28284,false,textDocument/completion,78, +3539628,false,textDocument/didOpen,,2435 +2722455,false,textDocument/didOpen,,2440 +2868673,false,textDocument/didOpen,,2444 +3413299,false,textDocument/didOpen,,2445 +108,false,textDocument/completion,78, +3353691,false,textDocument/didOpen,,2449 +3010900,false,textDocument/didOpen,,2453 +7754,false,textDocument/completion,78, +2753845,false,textDocument/didOpen,,2455 +3397895,false,textDocument/didOpen,,2456 +98,false,textDocument/completion,78, +3330640,false,textDocument/didOpen,,2457 +2912022,false,textDocument/didOpen,,2455 +3470772,false,textDocument/didOpen,,2440 +3046244,false,textDocument/didOpen,,2443 +2340909,false,textDocument/didOpen,,2443 +20,false,textDocument/completion,21, +514,false,textDocument/didOpen,,2448 +350,false,textDocument/didOpen,,2447 +7761,false,textDocument/didOpen,,2446 +35,false,textDocument/completion,1, +1892022,false,textDocument/didOpen,,2455 +2429086,false,textDocument/didOpen,,2452 +17,false,textDocument/completion,21, +2523398,false,textDocument/didOpen,,2454 +2955628,false,textDocument/didOpen,,2460 +3407534,false,textDocument/didOpen,,2461 +3504793,false,textDocument/didOpen,,2463 +4359126,false,textDocument/didOpen,,2461 +3296475,false,textDocument/didOpen,,2461 +2914845,false,textDocument/didOpen,,2463 +3567902,false,textDocument/didOpen,,2466 +133,false,textDocument/completion,82, +2777143,false,textDocument/didOpen,,2472 +2926428,false,textDocument/didOpen,,2471 +3387395,false,textDocument/didOpen,,2472 +2843789,false,textDocument/didOpen,,2480 +3308401,false,textDocument/didOpen,,2483 +3447725,false,textDocument/didOpen,,2484 +9641,false,textDocument/completion,82, +2895409,false,textDocument/didOpen,,2491 +3222311,false,textDocument/didOpen,,2492 +442,false,textDocument/didOpen,,2495 +444,false,textDocument/didOpen,,2496 +412,false,textDocument/didOpen,,2498 +12,false,textDocument/completion,82, +3447245,false,textDocument/didOpen,,2502 +3412120,false,textDocument/didOpen,,2504 +3598281,false,textDocument/didOpen,,2510 +3155132,false,textDocument/didOpen,,2511 +3461592,false,textDocument/didOpen,,2512 +3567189,false,textDocument/didOpen,,2513 +402,false,textDocument/didOpen,,2513 +9405,false,textDocument/didOpen,,2520 +3263110,false,textDocument/didOpen,,2522 +4544041,false,textDocument/didOpen,,2525 +3890838,false,textDocument/didOpen,,2527 +3882699,false,textDocument/didOpen,,2528 +3318196,false,textDocument/didOpen,,2529 +3962612,false,textDocument/didOpen,,2531 +2897424,false,textDocument/didOpen,,2533 +3587165,false,textDocument/didOpen,,2534 +3210551,false,textDocument/didOpen,,2535 +3252802,false,textDocument/didOpen,,2536 +369728,false,textDocument/completion,85, +3147362,false,textDocument/didOpen,,2537 +3684456,false,textDocument/didOpen,,2538 +3332275,false,textDocument/didOpen,,2544 +4303755,false,textDocument/didOpen,,2538 +4076303,false,textDocument/didOpen,,2539 +4284340,false,textDocument/didOpen,,2540 +4489766,false,textDocument/didOpen,,2541 +4202601,false,textDocument/didOpen,,2524 +4036361,false,textDocument/didOpen,,2529 +3271253,false,textDocument/didOpen,,2534 +1369707,false,textDocument/didOpen,,2536 +1293622,false,textDocument/didOpen,,2538 +1267079,false,textDocument/didOpen,,2537 +60,false,textDocument/completion,73, +1300198,false,textDocument/didOpen,,2538 +869756,false,textDocument/didOpen,,2539 +1202382,false,textDocument/didOpen,,2540 +1284223,false,textDocument/didOpen,,2541 +1302969,false,textDocument/didOpen,,2542 +1191281,false,textDocument/didOpen,,2543 +1453733,false,textDocument/didOpen,,2544 +1229160,false,textDocument/didOpen,,2546 +56,false,textDocument/completion,73, +3162985,false,textDocument/didOpen,,2548 +1668032,false,textDocument/didOpen,,2549 +1344819,false,textDocument/didOpen,,2527 +1733218,false,textDocument/didOpen,,2528 +48,false,textDocument/completion,73, +1230913,false,textDocument/didOpen,,2527 +822445,false,textDocument/didOpen,,2528 +69,false,textDocument/completion,73, +1026824,false,textDocument/didOpen,,2530 +58,false,textDocument/completion,73, +36,false,textDocument/completion,73, +1559797,false,textDocument/didOpen,,2527 +1314741,false,textDocument/didOpen,,2529 +1244843,false,textDocument/didOpen,,2530 +1324418,false,textDocument/didOpen,,2534 +1342330,false,textDocument/didOpen,,2535 +779669,false,textDocument/didOpen,,2537 +43,false,textDocument/completion,73, +1200199,false,textDocument/didOpen,,2538 +1170962,false,textDocument/didOpen,,2537 +1265480,false,textDocument/didOpen,,2535 +1251720,false,textDocument/didOpen,,2534 +1270878,false,textDocument/didOpen,,2528 +1247339,false,textDocument/didOpen,,2527 +859883,false,textDocument/didOpen,,2529 +1156648,false,textDocument/didOpen,,2530 +61,false,textDocument/completion,73, +1248974,false,textDocument/didOpen,,2534 +1372155,false,textDocument/didOpen,,2535 +46,false,textDocument/completion,73, +29,false,textDocument/completion,73, +1250409,false,textDocument/didOpen,,2546 +1297983,false,textDocument/didOpen,,2547 +1263668,false,textDocument/didOpen,,2546 +1276489,false,textDocument/didOpen,,2547 +50,false,textDocument/completion,73, +34,false,textDocument/completion,73, +1003227,false,textDocument/didOpen,,2546 +1300294,false,textDocument/didOpen,,2547 +1378650,false,textDocument/didOpen,,2545 +1465638,false,textDocument/didOpen,,2543 +1607034,false,textDocument/didOpen,,2539 +1380732,false,textDocument/didOpen,,2538 +700,false,textDocument/didOpen,,2539 +781,false,textDocument/didOpen,,2538 +543,false,textDocument/didOpen,,2541 +596,false,textDocument/didOpen,,2539 +666,false,textDocument/didOpen,,2497 +689,false,textDocument/didOpen,,2496 +588,false,textDocument/didOpen,,2493 +508,false,textDocument/didOpen,,2513 +640,false,textDocument/didOpen,,2502 +605,false,textDocument/didOpen,,2500 +877,false,textDocument/didOpen,,2498 +3774687,false,textDocument/didOpen,,2500 +3895391,false,textDocument/didOpen,,2501 +4096272,false,textDocument/didOpen,,2502 +5206090,false,textDocument/didOpen,,2503 +3884512,false,textDocument/didOpen,,2504 +4448353,false,textDocument/didOpen,,2505 +4023653,false,textDocument/didOpen,,2506 +9389,false,textDocument/completion,91, +4595561,false,textDocument/didOpen,,2507 +4126735,false,textDocument/didOpen,,2508 +5047132,false,textDocument/didOpen,,2511 +1388800,false,textDocument/didOpen,,2512 +1348778,false,textDocument/didOpen,,2513 +1611185,false,textDocument/didOpen,,2514 +1668524,false,textDocument/didOpen,,2519 +1351424,false,textDocument/didOpen,,2520 +34697,false,textDocument/completion,75, +925673,false,textDocument/didOpen,,2524 +3971993,false,textDocument/didOpen,,2530 +4155077,false,textDocument/didOpen,,2532 +4401931,false,textDocument/didOpen,,2533 +3610964,false,textDocument/didOpen,,2534 +281888,false,textDocument/didOpen,,263 +494349,false,textDocument/didOpen,,262 +95,false,textDocument/didOpen,,267 +41,false,textDocument/didOpen,,274 +11,false,textDocument/completion,27, +43,false,textDocument/didOpen,,279 +67,false,textDocument/didOpen,,278 +61,false,textDocument/didOpen,,277 +8,false,textDocument/completion,27, +52,false,textDocument/didOpen,,276 +7,false,textDocument/completion,27, +51,false,textDocument/didOpen,,286 +4484069,false,textDocument/didOpen,,2537 +3915056,false,textDocument/didOpen,,2541 +126,false,textDocument/completion,91, +4573050,false,textDocument/didOpen,,2538 +3465423,false,textDocument/didOpen,,2543 +3744895,false,textDocument/didOpen,,2544 +3829861,false,textDocument/didOpen,,2545 +116,false,textDocument/completion,91, +100,false,textDocument/completion,91, +3727845,false,textDocument/didOpen,,2546 +3679523,false,textDocument/didOpen,,2551 +3436902,false,textDocument/didOpen,,2553 +3737805,false,textDocument/didOpen,,2558 +3680362,false,textDocument/didOpen,,2560 +4534838,false,textDocument/didOpen,,2561 +4734232,false,textDocument/didOpen,,2562 +4699259,false,textDocument/didOpen,,2564 +4206535,false,textDocument/didOpen,,2565 +4550609,false,textDocument/didOpen,,2568 +4926096,false,textDocument/didOpen,,2569 +1917465,false,textDocument/didOpen,,2574 +1594579,false,textDocument/didOpen,,2581 +65,false,textDocument/completion,73, +1475133,false,textDocument/didOpen,,2589 +4664770,false,textDocument/didOpen,,2595 +4645579,false,textDocument/didOpen,,2596 +4590240,false,textDocument/didOpen,,2598 +4574984,false,textDocument/didOpen,,2600 +4403069,false,textDocument/didOpen,,2601 +4604411,false,textDocument/didOpen,,2604 +5254663,false,textDocument/didOpen,,2605 +266,false,textDocument/completion,91, +4819494,false,textDocument/didOpen,,2609 +5087737,false,textDocument/didOpen,,2611 +5101291,false,textDocument/didOpen,,2612 +324,false,textDocument/completion,91, +4951927,false,textDocument/didOpen,,2622 +4822628,false,textDocument/didOpen,,2630 +5260566,false,textDocument/didOpen,,2629 +5174771,false,textDocument/didOpen,,2632 +171,false,textDocument/completion,91, +55795,false,textDocument/didOpen,,1349 +1170,false,textDocument/didOpen,,1348 +90,false,textDocument/didOpen,,1349 +245,false,textDocument/didOpen,,1348 +81,false,textDocument/didOpen,,1349 +635,false,textDocument/didOpen,,5577 +297719,false,textDocument/didOpen,,4463 +806,false,textDocument/didOpen,,4462 +1217,false,textDocument/didOpen,,4463 +266,false,textDocument/didOpen,,4462 +279,false,textDocument/didOpen,,4463 +1180,false,textDocument/didOpen,,4464 +1144,false,textDocument/didOpen,,4463 +1118,false,textDocument/didOpen,,4462 +1120,false,textDocument/didOpen,,4463 +1143,false,textDocument/didOpen,,4463 +1178,false,textDocument/didOpen,,4462 +1125,false,textDocument/didOpen,,4463 +1144,false,textDocument/didOpen,,4462 +1181,false,textDocument/didOpen,,4463 +1198,false,textDocument/didOpen,,4462 +1128,false,textDocument/didOpen,,4463 +1118,false,textDocument/didOpen,,4462 +1176,false,textDocument/didOpen,,4463 +1187,false,textDocument/didOpen,,4462 +1220,false,textDocument/didOpen,,4463 +1335,false,textDocument/didOpen,,4462 +257,false,textDocument/didOpen,,4463 +1144,false,textDocument/didOpen,,4462 +1152,false,textDocument/didOpen,,4463 +1707,false,textDocument/didOpen,,6073 +3422,false,textDocument/didOpen,,6072 +1086,false,textDocument/didOpen,,6073 +1568,false,textDocument/didOpen,,6072 +358,false,textDocument/didOpen,,6073 +373,false,textDocument/didOpen,,6073 +341,false,textDocument/didOpen,,6072 +1640,false,textDocument/didOpen,,6073 +1659,false,textDocument/didOpen,,6072 +359,false,textDocument/didOpen,,6073 +1684,false,textDocument/didOpen,,6072 +1663,false,textDocument/didOpen,,6073 +1694,false,textDocument/didOpen,,6072 +1633,false,textDocument/didOpen,,6073 +340,false,textDocument/didOpen,,6072 +1564,false,textDocument/didOpen,,6073 +1568,false,textDocument/didOpen,,6072 +1662,false,textDocument/didOpen,,6073 +1547,false,textDocument/didOpen,,6072 +1645,false,textDocument/didOpen,,6073 +69352,false,textDocument/didOpen,,2473 +43395,false,textDocument/didOpen,,333 +532,false,textDocument/didOpen,,745 +25848,false,textDocument/didOpen,,309 +29649,false,textDocument/didOpen,,142 +4400,false,textDocument/didOpen,,103 +42847,false,textDocument/didOpen,,264 +73493,false,textDocument/didOpen,,1802 +875,false,textDocument/didOpen,,5577 +29,false,textDocument/hover,1, +89,false,textDocument/hover,1, +92,false,textDocument/hover,1, +91,false,textDocument/hover,1, +71907,false,textDocument/didOpen,,191 +66427,false,textDocument/didOpen,,192 +55640,false,textDocument/didOpen,,193 +57838,false,textDocument/didOpen,,195 +18633,false,textDocument/didOpen,,196 +63395,false,textDocument/didOpen,,197 +85699,false,textDocument/didOpen,,206 +173,false,textDocument/completion,35, +61074,false,textDocument/didOpen,,207 +73441,false,textDocument/didOpen,,209 +176,false,textDocument/completion,35, +63242,false,textDocument/didOpen,,212 +5420,false,textDocument/didOpen,,213 +8057,false,textDocument/didOpen,,216 +154,false,textDocument/completion,8, +7788,false,textDocument/didOpen,,218 +136,false,textDocument/completion,8, +6149,false,textDocument/didOpen,,219 +8398,false,textDocument/didOpen,,220 +146,false,textDocument/completion,8, +9139,false,textDocument/didOpen,,220 +145,false,textDocument/completion,8, +5951,false,textDocument/didOpen,,221 +12918,false,textDocument/didOpen,,227 +138,false,textDocument/completion,8, +10412,false,textDocument/didOpen,,229 +197,false,textDocument/completion,8, +6306,false,textDocument/didOpen,,230 +6219,false,textDocument/didOpen,,231 +6648,false,textDocument/didOpen,,233 +9778,false,textDocument/didOpen,,234 +6504,false,textDocument/didOpen,,233 +8587,false,textDocument/didOpen,,236 +149,false,textDocument/completion,8, +8712,false,textDocument/didOpen,,238 +155,false,textDocument/completion,8, +6009,false,textDocument/didOpen,,239 +6018,false,textDocument/didOpen,,240 +6103,false,textDocument/didOpen,,247 +6149,false,textDocument/didOpen,,250 +11186,false,textDocument/didOpen,,251 +150,false,textDocument/completion,8, +5914,false,textDocument/didOpen,,252 +6831,false,textDocument/didOpen,,254 +6636,false,textDocument/didOpen,,254 +25852,false,textDocument/didOpen,,255 +8653,false,textDocument/didOpen,,256 +8757,false,textDocument/didOpen,,258 +292,false,textDocument/didOpen,,262 +8566,false,textDocument/didOpen,,258 +9252,false,textDocument/didOpen,,259 +13124,false,textDocument/didOpen,,260 +9231,false,textDocument/didOpen,,261 +9026,false,textDocument/didOpen,,264 +151,false,textDocument/completion,8, +9016,false,textDocument/didOpen,,265 +22060,false,textDocument/didOpen,,266 +146,false,textDocument/completion,8, +8521,false,textDocument/didOpen,,267 +8104,false,textDocument/didOpen,,270 +304,false,textDocument/didOpen,,274 +9261,false,textDocument/didOpen,,271 +9463,false,textDocument/didOpen,,272 +8476,false,textDocument/didOpen,,273 +9388,false,textDocument/didOpen,,276 +6280,false,textDocument/didOpen,,277 +9507,false,textDocument/didOpen,,278 +179,false,textDocument/completion,8, +6509,false,textDocument/didOpen,,277 +15831,false,textDocument/didOpen,,278 +149,false,textDocument/completion,8, +6269,false,textDocument/didOpen,,280 +10987,false,textDocument/didOpen,,285 +11328,false,textDocument/didOpen,,287 +164,false,textDocument/completion,8, +5632,false,textDocument/didOpen,,288 +9831,false,textDocument/didOpen,,294 +195,false,textDocument/completion,8, +5378,false,textDocument/didOpen,,292 +9799,false,textDocument/didOpen,,294 +196,false,textDocument/completion,8, +10852,false,textDocument/didOpen,,296 +8728,false,textDocument/didOpen,,298 +178,false,textDocument/completion,8, +8531,false,textDocument/didOpen,,299 +10857,false,textDocument/didOpen,,302 +6161,false,textDocument/didOpen,,303 +8256,false,textDocument/didOpen,,304 +5984,false,textDocument/didOpen,,305 +6182,false,textDocument/didOpen,,306 +8825,false,textDocument/didOpen,,306 +11393,false,textDocument/didOpen,,313 +197,false,textDocument/completion,8, +9984,false,textDocument/didOpen,,315 +153,false,textDocument/completion,8, +10556,false,textDocument/didOpen,,316 +7969,false,textDocument/didOpen,,319 +15940,false,textDocument/didOpen,,317 +7421,false,textDocument/didOpen,,320 +10516,false,textDocument/didOpen,,321 +11216,false,textDocument/didOpen,,322 +9958,false,textDocument/didOpen,,323 +10601,false,textDocument/didOpen,,324 +10368,false,textDocument/didOpen,,326 +193,false,textDocument/completion,8, +7285,false,textDocument/didOpen,,327 +9887,false,textDocument/didOpen,,329 +197,false,textDocument/completion,8, +10246,false,textDocument/didOpen,,330 +151,false,textDocument/completion,8, +7661,false,textDocument/didOpen,,332 +7795,false,textDocument/didOpen,,337 +10571,false,textDocument/didOpen,,338 +160,false,textDocument/completion,8, +8277,false,textDocument/didOpen,,339 +8728,false,textDocument/didOpen,,338 +8629,false,textDocument/didOpen,,340 +149,false,textDocument/completion,8, +9973,false,textDocument/didOpen,,338 +8332,false,textDocument/didOpen,,341 +197,false,textDocument/completion,8, +7310,false,textDocument/didOpen,,342 +6089,false,textDocument/didOpen,,338 +6197,false,textDocument/didOpen,,339 +11158,false,textDocument/didOpen,,342 +6093,false,textDocument/didOpen,,343 +13161,false,textDocument/didOpen,,344 +159,false,textDocument/completion,8, +6732,false,textDocument/didOpen,,345 +8789,false,textDocument/didOpen,,348 +12805,false,textDocument/didOpen,,349 +9581,false,textDocument/didOpen,,350 +9228,false,textDocument/didOpen,,351 +11881,false,textDocument/didOpen,,352 +174,false,textDocument/completion,8, +13190,false,textDocument/didOpen,,353 +194,false,textDocument/completion,8, +8193,false,textDocument/didOpen,,354 +158,false,textDocument/completion,8, +11809,false,textDocument/didOpen,,354 +158,false,textDocument/completion,8, +12409,false,textDocument/didOpen,,356 +160,false,textDocument/completion,8, +10198,false,textDocument/didOpen,,359 +10669,false,textDocument/didOpen,,360 +11774,false,textDocument/didOpen,,361 +5995,false,textDocument/didOpen,,362 +8668,false,textDocument/didOpen,,363 +153,false,textDocument/completion,8, +13198,false,textDocument/didOpen,,362 +8932,false,textDocument/didOpen,,363 +6429,false,textDocument/didOpen,,364 +10596,false,textDocument/didOpen,,363 +8215,false,textDocument/didOpen,,364 +11085,false,textDocument/didOpen,,366 +220,false,textDocument/completion,8, +9256,false,textDocument/didOpen,,368 +9428,false,textDocument/didOpen,,370 +147,false,textDocument/completion,8, +10688,false,textDocument/didOpen,,368 +12070,false,textDocument/didOpen,,370 +154,false,textDocument/completion,8, +10470,false,textDocument/didOpen,,371 +8521,false,textDocument/didOpen,,374 +12580,false,textDocument/didOpen,,375 +8317,false,textDocument/didOpen,,376 +5942,false,textDocument/didOpen,,377 +9275,false,textDocument/didOpen,,378 +8352,false,textDocument/didOpen,,377 +8312,false,textDocument/didOpen,,378 +8104,false,textDocument/didOpen,,383 +144,false,textDocument/completion,8, +6129,false,textDocument/didOpen,,386 +167,false,textDocument/completion,8, +7790,false,textDocument/didOpen,,390 +146,false,textDocument/completion,8, +11076,false,textDocument/didOpen,,391 +10787,false,textDocument/didOpen,,392 +178,false,textDocument/completion,8, +8302,false,textDocument/didOpen,,391 +8953,false,textDocument/didOpen,,392 +11873,false,textDocument/didOpen,,393 +162,false,textDocument/completion,8, +8324,false,textDocument/didOpen,,397 +10187,false,textDocument/didOpen,,398 +7969,false,textDocument/didOpen,,399 +11427,false,textDocument/didOpen,,392 +12081,false,textDocument/didOpen,,393 +193,false,textDocument/completion,8, +8402,false,textDocument/didOpen,,392 +12572,false,textDocument/didOpen,,393 +177,false,textDocument/completion,8, +11112,false,textDocument/didOpen,,396 +9947,false,textDocument/didOpen,,397 +9647,false,textDocument/didOpen,,392 +5910,false,textDocument/didOpen,,393 +159,false,textDocument/completion,8, +6230,false,textDocument/didOpen,,399 +6340,false,textDocument/didOpen,,398 +9316,false,textDocument/didOpen,,397 +8485,false,textDocument/didOpen,,402 +6426,false,textDocument/didOpen,,404 +149,false,textDocument/completion,8, +16663,false,textDocument/didOpen,,407 +147,false,textDocument/completion,8, +8315,false,textDocument/didOpen,,406 +11703,false,textDocument/didOpen,,410 +7011,false,textDocument/didOpen,,411 +196,false,textDocument/completion,8, +7475,false,textDocument/didOpen,,414 +11752,false,textDocument/didOpen,,416 +14829,false,textDocument/didOpen,,417 +127,false,textDocument/completion,8, +150,false,textDocument/completion,8, +5881,false,textDocument/didOpen,,418 +170,false,textDocument/completion,8, +9175,false,textDocument/didOpen,,419 +7931,false,textDocument/didOpen,,421 +147,false,textDocument/completion,8, +14658,false,textDocument/didOpen,,419 +10168,false,textDocument/didOpen,,418 +12286,false,textDocument/didOpen,,421 +10767,false,textDocument/didOpen,,422 +10511,false,textDocument/didOpen,,423 +8710,false,textDocument/didOpen,,424 +13901,false,textDocument/didOpen,,425 +213,false,textDocument/completion,8, +12157,false,textDocument/didOpen,,429 +12468,false,textDocument/didOpen,,431 +11348,false,textDocument/didOpen,,432 +3173,false,textDocument/didOpen,,425 +37,false,textDocument/completion,8, +12949,false,textDocument/didOpen,,432 +5859,false,textDocument/didOpen,,433 +186,false,textDocument/completion,8, +8484,false,textDocument/didOpen,,434 +9027,false,textDocument/didOpen,,436 +5952,false,textDocument/didOpen,,439 +6314,false,textDocument/didOpen,,440 +1708,false,textDocument/didOpen,,443 +12264,false,textDocument/didOpen,,444 +12559,false,textDocument/didOpen,,445 +15650,false,textDocument/didOpen,,448 +192,false,textDocument/completion,8, +9488,false,textDocument/didOpen,,450 +149,false,textDocument/completion,8, +8257,false,textDocument/didOpen,,454 +187,false,textDocument/completion,8, +13108,false,textDocument/didOpen,,455 +196,false,textDocument/completion,8, +5834,false,textDocument/didOpen,,456 +157,false,textDocument/completion,8, +11455,false,textDocument/didOpen,,460 +5837,false,textDocument/didOpen,,460 +13316,false,textDocument/didOpen,,459 +10893,false,textDocument/didOpen,,441 +10148,false,textDocument/didOpen,,440 +11002,false,textDocument/didOpen,,443 +15132,false,textDocument/didOpen,,444 +16655,false,textDocument/didOpen,,445 +6456,false,textDocument/didOpen,,452 +8412,false,textDocument/didOpen,,454 +169,false,textDocument/completion,8, +10170,false,textDocument/didOpen,,456 +153,false,textDocument/completion,8, +8212,false,textDocument/didOpen,,457 +10623,false,textDocument/didOpen,,461 +92,false,textDocument/hover,8, +9165,false,textDocument/didOpen,,439 +13803,false,textDocument/didOpen,,443 +163,false,textDocument/completion,8, +11427,false,textDocument/didOpen,,439 +10534,false,textDocument/didOpen,,442 +13980,false,textDocument/didOpen,,443 +22528,false,textDocument/didOpen,,444 +9149,false,textDocument/didOpen,,442 +10862,false,textDocument/didOpen,,443 +21129,false,textDocument/didOpen,,444 +6745,false,textDocument/didOpen,,442 +11767,false,textDocument/didOpen,,439 +7873,false,textDocument/didOpen,,440 +10222,false,textDocument/didOpen,,442 +11684,false,textDocument/didOpen,,443 +13611,false,textDocument/didOpen,,445 +149,false,textDocument/completion,8, +8752,false,textDocument/didOpen,,447 +12502,false,textDocument/didOpen,,449 +195,false,textDocument/completion,8, +11741,false,textDocument/didOpen,,453 +159,false,textDocument/completion,8, +8533,false,textDocument/didOpen,,449 +9824,false,textDocument/didOpen,,450 +8331,false,textDocument/didOpen,,454 +13399,false,textDocument/didOpen,,456 +177,false,textDocument/completion,8, +11285,false,textDocument/didOpen,,454 +12291,false,textDocument/didOpen,,456 +156,false,textDocument/completion,8, +9592,false,textDocument/didOpen,,458 +9779,false,textDocument/didOpen,,460 +190,false,textDocument/completion,8, +7190,false,textDocument/didOpen,,461 +7442,false,textDocument/didOpen,,460 +11765,false,textDocument/didOpen,,461 +194,false,textDocument/completion,8, +12942,false,textDocument/didOpen,,461 +190,false,textDocument/completion,8, +12775,false,textDocument/didOpen,,466 +204,false,textDocument/completion,8, +9009,false,textDocument/didOpen,,470 +8098,false,textDocument/didOpen,,472 +161,false,textDocument/completion,8, +162,false,textDocument/completion,8, +14025,false,textDocument/didOpen,,472 +192,false,textDocument/completion,8, +6267,false,textDocument/didOpen,,474 +6163,false,textDocument/didOpen,,475 +14051,false,textDocument/didOpen,,478 +152,false,textDocument/completion,8, +9114,false,textDocument/didOpen,,479 +8390,false,textDocument/didOpen,,474 +11463,false,textDocument/didOpen,,475 +10698,false,textDocument/didOpen,,476 +9942,false,textDocument/didOpen,,477 +9775,false,textDocument/didOpen,,476 +543,false,textDocument/didOpen,,477 +159,false,textDocument/completion,8, +14522,false,textDocument/didOpen,,476 +8750,false,textDocument/didOpen,,477 +13541,false,textDocument/didOpen,,479 +151,false,textDocument/completion,8, +8386,false,textDocument/didOpen,,480 +8144,false,textDocument/didOpen,,481 +6430,false,textDocument/didOpen,,482 +9788,false,textDocument/didOpen,,476 +12670,false,textDocument/didOpen,,477 +8346,false,textDocument/didOpen,,476 +2479,false,textDocument/didOpen,,476 +6116,false,textDocument/didOpen,,465 +4424,false,textDocument/didOpen,,476 +2622,false,textDocument/didOpen,,479 +12604,false,textDocument/didOpen,,477 +6056,false,textDocument/didOpen,,479 +4959,false,textDocument/didOpen,,480 +2549,false,textDocument/didOpen,,479 +12435,false,textDocument/didOpen,,480 +143,false,textDocument/completion,8, +3947,false,textDocument/didOpen,,482 +2079,false,textDocument/didOpen,,484 +8322,false,textDocument/didOpen,,483 +181,false,textDocument/completion,8, +2877,false,textDocument/didOpen,,487 +6626,false,textDocument/didOpen,,489 +56,false,textDocument/completion,8, +1958,false,textDocument/didOpen,,490 +2614,false,textDocument/didOpen,,492 +5363,false,textDocument/didOpen,,490 +5304,false,textDocument/didOpen,,491 +1451,false,textDocument/didOpen,,490 +6486,false,textDocument/didOpen,,492 +7433,false,textDocument/didOpen,,494 +142,false,textDocument/completion,8, +7874,false,textDocument/didOpen,,500 +134,false,textDocument/completion,8, +11111,false,textDocument/didOpen,,502 +1442,false,textDocument/didOpen,,506 +2640,false,textDocument/didOpen,,503 +3977,false,textDocument/didOpen,,505 +41,false,textDocument/completion,8, +5522,false,textDocument/didOpen,,507 +1777,false,textDocument/didOpen,,510 +2227,false,textDocument/didOpen,,508 +5377,false,textDocument/didOpen,,539 +2245,false,textDocument/didOpen,,538 +8678,false,textDocument/didOpen,,539 +93,false,textDocument/completion,8, +3056,false,textDocument/didOpen,,528 +3602,false,textDocument/didOpen,,521 +3272,false,textDocument/didOpen,,520 +14255,false,textDocument/didOpen,,523 +3651,false,textDocument/didOpen,,524 +14773,false,textDocument/didOpen,,525 +4490,false,textDocument/didOpen,,527 +49,false,textDocument/completion,8, +1775,false,textDocument/didOpen,,534 +12856,false,textDocument/didOpen,,535 +170,false,textDocument/completion,8, +3055,false,textDocument/didOpen,,538 +39,false,textDocument/completion,8, +3593,false,textDocument/didOpen,,540 +48,false,textDocument/completion,8, +2100,false,textDocument/didOpen,,542 +37,false,textDocument/completion,8, +8114,false,textDocument/didOpen,,544 +83,false,textDocument/completion,8, +2260,false,textDocument/didOpen,,542 +6481,false,textDocument/didOpen,,543 +2366,false,textDocument/didOpen,,544 +2801,false,textDocument/didOpen,,540 +4852,false,textDocument/didOpen,,539 +6070,false,textDocument/didOpen,,542 +4988,false,textDocument/didOpen,,543 +3993,false,textDocument/didOpen,,544 +6508,false,textDocument/didOpen,,545 +68,false,textDocument/completion,8, +3527,false,textDocument/didOpen,,545 +4502,false,textDocument/didOpen,,546 +54,false,textDocument/completion,8, +11147,false,textDocument/didOpen,,549 +9827,false,textDocument/didOpen,,551 +5285,false,textDocument/didOpen,,552 +6383,false,textDocument/didOpen,,556 +48,false,textDocument/completion,8, +9879,false,textDocument/didOpen,,543 +63312,false,textDocument/didOpen,,746 +19462,false,textDocument/didOpen,,749 +15272,false,textDocument/didOpen,,750 +27879,false,textDocument/didOpen,,751 +17019,false,textDocument/didOpen,,752 +20247,false,textDocument/didOpen,,755 +84,false,textDocument/completion,79, +19808,false,textDocument/didOpen,,765 +85,false,textDocument/completion,79, +20889,false,textDocument/didOpen,,771 +35,false,textDocument/completion,79, +18221,false,textDocument/didOpen,,775 +39,false,textDocument/completion,79, +24711,false,textDocument/didOpen,,780 +22830,false,textDocument/didOpen,,781 +38,false,textDocument/completion,79, +20995,false,textDocument/didOpen,,782 +35,false,textDocument/completion,79, +26094,false,textDocument/didOpen,,783 +18426,false,textDocument/didOpen,,785 +18859,false,textDocument/didOpen,,827 +18437,false,textDocument/didOpen,,828 +27893,false,textDocument/didOpen,,831 +277,false,textDocument/didOpen,,832 +39,false,textDocument/completion,79, +142,false,textDocument/didOpen,,833 +1481,false,textDocument/didOpen,,834 +21462,false,textDocument/didOpen,,828 +28924,false,textDocument/didOpen,,831 +17331,false,textDocument/didOpen,,829 +24115,false,textDocument/didOpen,,871 +23067,false,textDocument/didOpen,,829 +36909,false,textDocument/didOpen,,866 +19749,false,textDocument/didOpen,,868 +20959,false,textDocument/didOpen,,872 +1700,false,textDocument/didOpen,,873 +3137,false,textDocument/didOpen,,875 +3911,false,textDocument/didOpen,,876 +41,false,textDocument/completion,8, +2538,false,textDocument/didOpen,,882 +3200,false,textDocument/didOpen,,880 +2160,false,textDocument/didOpen,,882 +2266,false,textDocument/didOpen,,883 +2717,false,textDocument/didOpen,,884 +39,false,textDocument/completion,8, +2600,false,textDocument/didOpen,,888 +27539,false,textDocument/didOpen,,889 +20610,false,textDocument/didOpen,,890 +19405,false,textDocument/didOpen,,893 +48628,false,textDocument/didOpen,,891 +55557,false,textDocument/didOpen,,953 +31661,false,textDocument/didOpen,,1015 +31266,false,textDocument/didOpen,,1014 +162,false,textDocument/didOpen,,1015 +138,false,textDocument/didOpen,,1016 +139,false,textDocument/didOpen,,1017 +135,false,textDocument/didOpen,,1018 +137,false,textDocument/didOpen,,1019 +174,false,textDocument/didOpen,,1020 +137,false,textDocument/didOpen,,1021 +138,false,textDocument/didOpen,,1002 +166,false,textDocument/didOpen,,1003 +129,false,textDocument/didOpen,,1004 +131,false,textDocument/didOpen,,1005 +132,false,textDocument/didOpen,,1004 +148,false,textDocument/didOpen,,1003 +130,false,textDocument/didOpen,,996 +132,false,textDocument/didOpen,,981 +131,false,textDocument/didOpen,,983 +130,false,textDocument/didOpen,,986 +97,false,textDocument/completion,97, +132,false,textDocument/didOpen,,985 +218,false,textDocument/didOpen,,986 +118,false,textDocument/completion,97, +132,false,textDocument/didOpen,,987 +180007,false,textDocument/didOpen,,3993 +173672,false,textDocument/didOpen,,3993 +159144,false,textDocument/didOpen,,3993 +395,false,textDocument/didOpen,,3992 +331,false,textDocument/didOpen,,3995 +1696,false,textDocument/didOpen,,3994 +379,false,textDocument/didOpen,,3995 +1345,false,textDocument/didOpen,,3996 +308,false,textDocument/didOpen,,3997 +1297,false,textDocument/didOpen,,3998 +313,false,textDocument/didOpen,,3997 +313,false,textDocument/didOpen,,3996 +1322,false,textDocument/didOpen,,3999 +1347,false,textDocument/didOpen,,3998 +1290,false,textDocument/didOpen,,4001 +1322,false,textDocument/didOpen,,4000 +1015,false,textDocument/didOpen,,4003 +303,false,textDocument/didOpen,,4002 +482,false,textDocument/didOpen,,4006 +1304,false,textDocument/didOpen,,4005 +1575,false,textDocument/didOpen,,4004 +1646,false,textDocument/didOpen,,4007 +1325,false,textDocument/didOpen,,4006 +512,false,textDocument/didOpen,,4009 +64168,false,textDocument/didOpen,,222 +115780,false,textDocument/didOpen,,3796 +274,false,textDocument/didOpen,,4009 +92354,false,textDocument/didOpen,,3796 +170862,false,textDocument/didOpen,,10173 +370566,false,textDocument/didOpen,,7575 +694,false,textDocument/didOpen,,7574 +345,false,textDocument/didOpen,,7578 +397,false,textDocument/didOpen,,7577 +1587,false,textDocument/didOpen,,7580 +573,false,textDocument/didOpen,,7579 +545,false,textDocument/didOpen,,7579 +684,false,textDocument/didOpen,,4008 +513,false,textDocument/didOpen,,7579 +179992,false,textDocument/didOpen,,10173 +339,false,textDocument/didOpen,,10172 +270,false,textDocument/didOpen,,10171 +443,false,textDocument/didOpen,,10170 +261,false,textDocument/didOpen,,10169 +251,false,textDocument/didOpen,,10168 +168851,false,textDocument/didOpen,,2473 +692,false,textDocument/didOpen,,2472 +513,false,textDocument/didOpen,,2471 +587,false,textDocument/didOpen,,2472 +564,false,textDocument/didOpen,,2473 +895,false,textDocument/didOpen,,2474 +638,false,textDocument/didOpen,,2473 +589,false,textDocument/didOpen,,2472 +882,false,textDocument/didOpen,,2473 +931,false,textDocument/didOpen,,2474 +589,false,textDocument/didOpen,,2473 +189,false,textDocument/didOpen,,2473 +42573,false,textDocument/didOpen,,333 +395,false,textDocument/didOpen,,745 +24065,false,textDocument/didOpen,,309 +32723,false,textDocument/didOpen,,142 +5805,false,textDocument/didOpen,,103 +49055,false,textDocument/didOpen,,264 +79392,false,textDocument/didOpen,,1802 +110,false,textDocument/didOpen,,1801 +259,false,textDocument/didOpen,,1800 +266,false,textDocument/didOpen,,1799 +73,false,textDocument/didOpen,,1800 +264,false,textDocument/didOpen,,1799 +267,false,textDocument/didOpen,,1802 +328,false,textDocument/didOpen,,1801 +269,false,textDocument/didOpen,,1804 +270,false,textDocument/didOpen,,1803 +267,false,textDocument/didOpen,,1802 +81,false,textDocument/didOpen,,1801 +40228,false,textDocument/didOpen,,685 +212,false,textDocument/didOpen,,684 +55,false,textDocument/didOpen,,683 +39706,false,textDocument/didOpen,,408 +263,false,textDocument/didOpen,,407 +250,false,textDocument/didOpen,,406 +61964,false,textDocument/didOpen,,622 +58,false,textDocument/didOpen,,621 +170,false,textDocument/didOpen,,620 +200,false,textDocument/didOpen,,619 +172,false,textDocument/didOpen,,618 +184,false,textDocument/didOpen,,617 +78136,false,textDocument/didOpen,,940 +819,false,textDocument/didOpen,,939 +81043,false,textDocument/didOpen,,808 +668,false,textDocument/didOpen,,807 +52341,false,textDocument/didOpen,,458 +1431,false,textDocument/didOpen,,456 +23028,false,textDocument/didOpen,,455 +285,false,textDocument/didOpen,,4463 +81,false,textDocument/didOpen,,4462 +73,false,textDocument/didOpen,,4461 +272,false,textDocument/didOpen,,4460 +278,false,textDocument/didOpen,,4459 +271,false,textDocument/didOpen,,4458 +233,false,textDocument/didOpen,,4457 +275,false,textDocument/didOpen,,4456 +274,false,textDocument/didOpen,,4455 +73,false,textDocument/didOpen,,4454 +274,false,textDocument/didOpen,,4453 +276,false,textDocument/didOpen,,4452 +275,false,textDocument/didOpen,,4451 +273,false,textDocument/didOpen,,4450 +300,false,textDocument/didOpen,,4449 +289,false,textDocument/didOpen,,4448 +71,false,textDocument/didOpen,,4447 +289,false,textDocument/didOpen,,4446 +72,false,textDocument/didOpen,,4445 +71,false,textDocument/didOpen,,4444 +75,false,textDocument/didOpen,,4443 +274,false,textDocument/didOpen,,4442 +272,false,textDocument/didOpen,,4441 +93,false,textDocument/didOpen,,4442 +142567,false,textDocument/didOpen,,2138 +6277,false,textDocument/didOpen,,2137 +129989,false,textDocument/didOpen,,2138 +1626,false,textDocument/didOpen,,2137 +77940,false,textDocument/didOpen,,531 +491,false,textDocument/didOpen,,530 +626,false,textDocument/didOpen,,89 +2072,false,textDocument/didOpen,,88 +34581,false,textDocument/didOpen,,84 +172,false,textDocument/didOpen,,83 +92438,false,textDocument/didOpen,,1063 +730,false,textDocument/didOpen,,1062 +169688,false,textDocument/didOpen,,2289 +850,false,textDocument/didOpen,,2288 +747,false,textDocument/didOpen,,2287 +466,false,textDocument/didOpen,,2286 +333,false,textDocument/didOpen,,2285 +741,false,textDocument/didOpen,,2284 +732,false,textDocument/didOpen,,2285 +768,false,textDocument/didOpen,,2284 +738,false,textDocument/didOpen,,2283 +737,false,textDocument/didOpen,,2282 +780,false,textDocument/didOpen,,2281 +736,false,textDocument/didOpen,,2280 +565,false,textDocument/didOpen,,2279 +173,false,textDocument/didOpen,,2278 +784,false,textDocument/didOpen,,2277 +735,false,textDocument/didOpen,,2276 +211092,false,textDocument/didOpen,,2246 +1497,false,textDocument/didOpen,,2245 +206753,false,textDocument/didOpen,,1541 +1303,false,textDocument/didOpen,,1540 +320057,false,textDocument/didOpen,,2793 +692,false,textDocument/didOpen,,2791 +2617,false,textDocument/didOpen,,2790 +459,false,textDocument/didOpen,,2789 +1697,false,textDocument/didOpen,,2788 +162857,false,textDocument/didOpen,,930 +668,false,textDocument/didOpen,,929 +76447,false,textDocument/didOpen,,1808 +220,false,textDocument/didOpen,,1807 +188,false,textDocument/didOpen,,1806 +188,false,textDocument/didOpen,,1805 +174,false,textDocument/didOpen,,987 +267,false,textDocument/didOpen,,986 +643,false,textDocument/didOpen,,6073 +533,false,textDocument/didOpen,,6072 +484,false,textDocument/didOpen,,6071 +483,false,textDocument/didOpen,,6071 +291,false,textDocument/didOpen,,6071 +2518,false,textDocument/didOpen,,12 +73193,false,textDocument/didOpen,,146 +233,false,textDocument/didOpen,,145 +61,false,textDocument/didOpen,,4442 +76,false,textDocument/didOpen,,4441 +68,false,textDocument/didOpen,,4444 +68,false,textDocument/didOpen,,4443 +351,false,textDocument/didOpen,,4444 +258,false,textDocument/didOpen,,4446 +95,false,textDocument/didOpen,,4447 +14,true,textDocument/completion,, +69,false,textDocument/didOpen,,4446 +263,false,textDocument/didOpen,,4445 +292,false,textDocument/didOpen,,4448 +262,false,textDocument/didOpen,,4447 +265,false,textDocument/didOpen,,4449 +258,false,textDocument/didOpen,,4448 +314,false,textDocument/didOpen,,4449 +266,false,textDocument/didOpen,,4448 +270,false,textDocument/didOpen,,4451 +84,false,textDocument/didOpen,,4450 +265,false,textDocument/didOpen,,4452 +267,false,textDocument/didOpen,,4453 +273,false,textDocument/didOpen,,4452 +266,false,textDocument/didOpen,,4455 +264,false,textDocument/didOpen,,4455 +266,false,textDocument/didOpen,,4454 +370,false,textDocument/didOpen,,4455 +270,false,textDocument/didOpen,,4457 +272,false,textDocument/didOpen,,4456 +270,false,textDocument/didOpen,,4459 +267,false,textDocument/didOpen,,4461 +264,false,textDocument/didOpen,,4461 +270,false,textDocument/didOpen,,4460 +273,false,textDocument/didOpen,,4463 +123,false,textDocument/didOpen,,4464 +13,true,textDocument/completion,, +258,false,textDocument/didOpen,,4463 +256,false,textDocument/didOpen,,4465 +261,false,textDocument/didOpen,,4465 +255,false,textDocument/didOpen,,4464 +279,false,textDocument/didOpen,,4467 +255,false,textDocument/didOpen,,4466 +263,false,textDocument/didOpen,,4467 +257,false,textDocument/didOpen,,4466 +259,false,textDocument/didOpen,,4468 +257,false,textDocument/didOpen,,4469 +68,false,textDocument/didOpen,,4468 +256,false,textDocument/didOpen,,4471 +260,false,textDocument/didOpen,,4470 +256,false,textDocument/didOpen,,4471 +282,false,textDocument/didOpen,,4470 +267,false,textDocument/didOpen,,4473 +263,false,textDocument/didOpen,,4472 +257,false,textDocument/didOpen,,4473 +123,false,textDocument/didOpen,,6071 +114,false,textDocument/didOpen,,6080 +117,false,textDocument/didOpen,,6152 +496,false,textDocument/didOpen,,6080 +137,false,textDocument/didOpen,,6089 +461,false,textDocument/didOpen,,6098 +472,false,textDocument/didOpen,,6089 +113,false,textDocument/didOpen,,6080 +515,false,textDocument/didOpen,,6098 +477,false,textDocument/didOpen,,6098 +120,false,textDocument/didOpen,,6098 +53,false,textDocument/didOpen,,1801 +85619,false,textDocument/didOpen,,1802 +76567,false,textDocument/didOpen,,2473 +84780,false,textDocument/didOpen,,1802 +168639,false,textDocument/didOpen,,1909 +347,false,textDocument/didOpen,,1908 +308,false,textDocument/didOpen,,1909 +36,false,textDocument/completion,1, +91,false,textDocument/didOpen,,1910 +145,false,textDocument/didOpen,,1911 +15197,false,textDocument/didOpen,,1911 +13833,false,textDocument/didOpen,,1916 +15912,false,textDocument/didOpen,,1918 +14767,false,textDocument/didOpen,,1917 +13408,false,textDocument/didOpen,,1918 +13594,false,textDocument/didOpen,,1925 +15146,false,textDocument/didOpen,,1926 +18621,false,textDocument/didOpen,,1927 +49,false,textDocument/completion,60, +14396,false,textDocument/didOpen,,1930 +39,false,textDocument/completion,60, +17366,false,textDocument/didOpen,,1931 +20904,false,textDocument/didOpen,,1933 +34,false,textDocument/completion,60, +19126,false,textDocument/didOpen,,1934 +40,false,textDocument/completion,60, +21304,false,textDocument/didOpen,,1936 +53,false,textDocument/completion,60, +15977,false,textDocument/didOpen,,1938 +14632,false,textDocument/didOpen,,1939 +37,false,textDocument/completion,60, +15152,false,textDocument/didOpen,,1940 +41,false,textDocument/completion,60, +18073,false,textDocument/didOpen,,1941 +51,false,textDocument/completion,60, +20312,false,textDocument/didOpen,,1942 +79,false,textDocument/completion,60, +20121,false,textDocument/didOpen,,1943 +19537,false,textDocument/didOpen,,1942 +26681,false,textDocument/didOpen,,1941 +16708,false,textDocument/didOpen,,1940 +21501,false,textDocument/didOpen,,1939 +18741,false,textDocument/didOpen,,1938 +26339,false,textDocument/didOpen,,1927 +35515,false,textDocument/didOpen,,1926 +31087,false,textDocument/didOpen,,1927 +36,false,textDocument/completion,60, +18749,false,textDocument/didOpen,,1931 +38,false,textDocument/completion,60, +31987,false,textDocument/didOpen,,1936 +32,false,textDocument/completion,60, +25332,false,textDocument/didOpen,,1937 +14629,false,textDocument/didOpen,,1938 +40,false,textDocument/completion,60, +27870,false,textDocument/didOpen,,1939 +18843,false,textDocument/didOpen,,1919 +33212,false,textDocument/didOpen,,1939 +16427,false,textDocument/didOpen,,1918 +21073,false,textDocument/didOpen,,1917 +36791,false,textDocument/didOpen,,1918 +147633,false,textDocument/didOpen,,1909 +53814,false,textDocument/didOpen,,494 +460,false,textDocument/didOpen,,1 +1228,false,textDocument/didOpen,,2 +903,false,textDocument/didOpen,,1 +881,false,textDocument/didOpen,,2 +200,false,textDocument/didOpen,,1 +1063,false,textDocument/didOpen,,2 +1132,false,textDocument/didOpen,,3 +319,false,textDocument/didOpen,,2 +883,false,textDocument/didOpen,,1 +248,false,textDocument/didOpen,,207 +885,false,textDocument/didOpen,,1 +895,false,textDocument/didOpen,,171 +896,false,textDocument/didOpen,,1 +987,false,textDocument/didOpen,,113 +920,false,textDocument/didOpen,,1 +186,false,textDocument/didOpen,,1 +309,false,textDocument/didOpen,,307 +274,false,textDocument/didOpen,,308 +270,false,textDocument/didOpen,,309 +368,false,textDocument/didOpen,,443 +336,false,textDocument/didOpen,,446 +33,false,textDocument/completion,1, +355,false,textDocument/didOpen,,445 +125,false,textDocument/didOpen,,429 +330,false,textDocument/didOpen,,430 +32,false,textDocument/completion,1, +344,false,textDocument/didOpen,,433 +33,false,textDocument/completion,1, +345,false,textDocument/didOpen,,435 +419,false,textDocument/didOpen,,436 +225,false,textDocument/didOpen,,437 +392,false,textDocument/didOpen,,439 +24573,false,textDocument/didOpen,,442 +88,false,textDocument/completion,33, +27865,false,textDocument/didOpen,,446 +409,false,textDocument/didOpen,,454 +153,false,textDocument/completion,33, +383,false,textDocument/didOpen,,457 +25455,false,textDocument/didOpen,,458 +24266,false,textDocument/didOpen,,459 +103,false,textDocument/completion,33, +26518,false,textDocument/didOpen,,462 +174,false,textDocument/didOpen,,464 +103,false,textDocument/didOpen,,465 +42,false,textDocument/completion,33, +393,false,textDocument/didOpen,,469 +438,false,textDocument/didOpen,,470 +171,false,textDocument/completion,33, +364,false,textDocument/didOpen,,471 +357,false,textDocument/didOpen,,470 +364,false,textDocument/didOpen,,475 +358,false,textDocument/didOpen,,476 +360,false,textDocument/didOpen,,477 +355,false,textDocument/didOpen,,476 +501,false,textDocument/didOpen,,483 +357,false,textDocument/didOpen,,484 +380,false,textDocument/didOpen,,485 +390,false,textDocument/didOpen,,477 +358,false,textDocument/didOpen,,476 +360,false,textDocument/didOpen,,483 +383,false,textDocument/didOpen,,484 +356,false,textDocument/didOpen,,485 +353,false,textDocument/didOpen,,484 +356,false,textDocument/didOpen,,493 +97,false,textDocument/didOpen,,491 +332,false,textDocument/didOpen,,401 +21878,false,textDocument/didOpen,,400 +373,false,textDocument/didOpen,,399 +339,false,textDocument/didOpen,,398 +334,false,textDocument/didOpen,,405 +344,false,textDocument/didOpen,,406 +142,false,textDocument/didOpen,,407 +85852,false,textDocument/didOpen,,905 +259,false,textDocument/didOpen,,904 +217,false,textDocument/didOpen,,903 +249,false,textDocument/didOpen,,902 +991,false,textDocument/didOpen,,901 +1017,false,textDocument/didOpen,,900 +996,false,textDocument/didOpen,,899 +190723,false,textDocument/didOpen,,4008 +125490,false,textDocument/didOpen,,5572 +51966,false,textDocument/didOpen,,222 +372164,false,textDocument/didOpen,,7577 +117273,false,textDocument/didOpen,,3796 +83896,false,textDocument/didOpen,,3797 +41,false,textDocument/completion,185, +78283,false,textDocument/didOpen,,1349 +208256,false,textDocument/didOpen,,10167 +51,false,textDocument/hover,296, +165,false,textDocument/hover,296, +27214,false,textDocument/didOpen,,3009 +183885,false,textDocument/didOpen,,4008 +118405,false,textDocument/didOpen,,5577 +48109,false,textDocument/didOpen,,222 +343705,false,textDocument/didOpen,,7579 +112122,false,textDocument/didOpen,,3796 +63382,false,textDocument/didOpen,,1349 +164651,false,textDocument/didOpen,,10168 +65125,false,textDocument/didOpen,,774 +44691,false,textDocument/didOpen,,777 +57155,false,textDocument/didOpen,,778 +91365,false,textDocument/didOpen,,779 +26895,false,textDocument/didOpen,,780 +65,false,textDocument/completion,100, +28940,false,textDocument/didOpen,,783 +29956,false,textDocument/didOpen,,788 +38215,false,textDocument/didOpen,,784 +63713,false,textDocument/didOpen,,775 +49520,false,textDocument/didOpen,,777 +91792,false,textDocument/didOpen,,779 +25731,false,textDocument/didOpen,,780 +84,false,textDocument/completion,100, +63062,false,textDocument/didOpen,,781 +73360,false,textDocument/didOpen,,782 +38175,false,textDocument/didOpen,,787 +35964,false,textDocument/didOpen,,790 +77,false,textDocument/completion,100, +80787,false,textDocument/didOpen,,791 +58586,false,textDocument/didOpen,,792 +64,false,textDocument/completion,100, +85078,false,textDocument/didOpen,,797 +59766,false,textDocument/didOpen,,798 +85025,false,textDocument/didOpen,,799 +73638,false,textDocument/didOpen,,800 +43892,false,textDocument/didOpen,,801 +77,false,textDocument/completion,100, +48817,false,textDocument/didOpen,,802 +115127,false,textDocument/didOpen,,803 +92049,false,textDocument/didOpen,,804 +101461,false,textDocument/didOpen,,805 +85769,false,textDocument/didOpen,,806 +53493,false,textDocument/didOpen,,807 +62,false,textDocument/completion,100, +88005,false,textDocument/didOpen,,809 +88906,false,textDocument/didOpen,,810 +87184,false,textDocument/didOpen,,812 +63,false,textDocument/completion,100, +97585,false,textDocument/didOpen,,813 +98333,false,textDocument/didOpen,,815 +96805,false,textDocument/didOpen,,816 +92180,false,textDocument/didOpen,,821 +105745,false,textDocument/didOpen,,822 +66052,false,textDocument/didOpen,,823 +74417,false,textDocument/didOpen,,824 +69053,false,textDocument/didOpen,,825 +90,false,textDocument/completion,100, +102356,false,textDocument/didOpen,,828 +77459,false,textDocument/didOpen,,829 +146043,false,textDocument/didOpen,,830 +69339,false,textDocument/didOpen,,831 +113,false,textDocument/completion,100, +107691,false,textDocument/didOpen,,833 +96401,false,textDocument/didOpen,,835 +113593,false,textDocument/didOpen,,899 +77906,false,textDocument/didOpen,,898 +118122,false,textDocument/didOpen,,899 +119759,false,textDocument/didOpen,,900 +114275,false,textDocument/didOpen,,901 +136055,false,textDocument/didOpen,,902 +132627,false,textDocument/didOpen,,903 +143954,false,textDocument/didOpen,,904 +100489,false,textDocument/didOpen,,905 +109808,false,textDocument/didOpen,,906 +82,false,textDocument/completion,100, +125868,false,textDocument/didOpen,,907 +102312,false,textDocument/didOpen,,908 +143416,false,textDocument/didOpen,,910 +160701,false,textDocument/didOpen,,911 +104102,false,textDocument/didOpen,,912 +69,false,textDocument/completion,100, +114391,false,textDocument/didOpen,,913 +130980,false,textDocument/didOpen,,916 +90041,false,textDocument/didOpen,,917 +155077,false,textDocument/didOpen,,983 +150860,false,textDocument/didOpen,,982 +162471,false,textDocument/didOpen,,976 +91732,false,textDocument/didOpen,,975 +127918,false,textDocument/didOpen,,976 +54,false,textDocument/completion,98, +133222,false,textDocument/didOpen,,977 +98994,false,textDocument/didOpen,,980 +882,false,textDocument/completion,100, +1034,false,textDocument/didOpen,,988 +1314,false,textDocument/didOpen,,989 +1320,false,textDocument/didOpen,,994 +1203,false,textDocument/didOpen,,1004 +1252,false,textDocument/didOpen,,1007 +1430,false,textDocument/didOpen,,1008 +400,false,textDocument/didOpen,,1009 +193908,false,textDocument/didOpen,,1010 +65,false,textDocument/completion,100, +124573,false,textDocument/didOpen,,1011 +145037,false,textDocument/didOpen,,1013 +136619,false,textDocument/didOpen,,1014 +62,false,textDocument/completion,100, +188397,false,textDocument/didOpen,,1016 +159774,false,textDocument/didOpen,,1019 +134008,false,textDocument/didOpen,,1020 +315,false,textDocument/didOpen,,1021 +96,false,textDocument/completion,100, +1335,false,textDocument/didOpen,,1026 +1171,false,textDocument/didOpen,,1029 +258,false,textDocument/didOpen,,1030 +1148,false,textDocument/didOpen,,1028 +1070,false,textDocument/didOpen,,1029 +350,false,textDocument/didOpen,,1030 +76,false,textDocument/completion,100, +447,false,textDocument/didOpen,,1032 +292,false,textDocument/didOpen,,1033 +71,false,textDocument/completion,100, +353,false,textDocument/didOpen,,1035 +85,false,textDocument/completion,100, +1142,false,textDocument/didOpen,,1036 +1366,false,textDocument/didOpen,,1023 +1204,false,textDocument/didOpen,,1024 +355,false,textDocument/didOpen,,1025 +74,false,textDocument/completion,100, +1395,false,textDocument/didOpen,,1028 +1202,false,textDocument/didOpen,,1029 +341,false,textDocument/didOpen,,1036 +80,false,textDocument/completion,100, +310158,false,textDocument/didOpen,,1037 +325883,false,textDocument/didOpen,,1035 +273695,false,textDocument/didOpen,,1040 +318239,false,textDocument/didOpen,,1036 +274271,false,textDocument/didOpen,,1032 +321446,false,textDocument/didOpen,,1031 +290007,false,textDocument/didOpen,,1038 +321433,false,textDocument/didOpen,,1039 +302421,false,textDocument/didOpen,,1040 +330506,false,textDocument/didOpen,,1041 +270518,false,textDocument/didOpen,,1042 +317829,false,textDocument/didOpen,,1043 +302964,false,textDocument/didOpen,,1044 +1543,false,textDocument/didOpen,,748 +1644,false,textDocument/didOpen,,744 +384,false,textDocument/didOpen,,739 +322,false,textDocument/didOpen,,740 +158,false,textDocument/completion,234, +1554,false,textDocument/didOpen,,742 +546,false,textDocument/didOpen,,743 +364,false,textDocument/didOpen,,744 +48,false,textDocument/completion,234, +1580,false,textDocument/didOpen,,742 +1502,false,textDocument/didOpen,,741 +412,false,textDocument/didOpen,,742 +118,false,textDocument/completion,234, +1380,false,textDocument/didOpen,,743 +1418,false,textDocument/didOpen,,741 +1614,false,textDocument/didOpen,,740 +1022,false,textDocument/didOpen,,739 +490,false,textDocument/didOpen,,740 +178,false,textDocument/completion,234, +356,false,textDocument/didOpen,,740 +133,false,textDocument/completion,234, +1574,false,textDocument/didOpen,,747 +1467,false,textDocument/didOpen,,752 +1532,false,textDocument/didOpen,,753 +378,false,textDocument/didOpen,,754 +395,false,textDocument/didOpen,,755 +116,false,textDocument/completion,234, +1580,false,textDocument/didOpen,,757 +2678,false,textDocument/didOpen,,765 +1603,false,textDocument/didOpen,,766 +1685,false,textDocument/didOpen,,768 +1704,false,textDocument/didOpen,,767 +1541,false,textDocument/didOpen,,768 +1764,false,textDocument/didOpen,,760 +1616,false,textDocument/didOpen,,767 +1533,false,textDocument/didOpen,,768 +1564,false,textDocument/didOpen,,769 +395,false,textDocument/didOpen,,770 +1592,false,textDocument/didOpen,,806 +406,false,textDocument/didOpen,,808 +207,false,textDocument/completion,234, +746,false,textDocument/didOpen,,809 +1662,false,textDocument/didOpen,,750 +1783,false,textDocument/didOpen,,757 +1648,false,textDocument/didOpen,,751 +488,false,textDocument/didOpen,,741 +552,false,textDocument/didOpen,,742 +283,false,textDocument/completion,234, +2441,false,textDocument/didOpen,,749 +444412,false,textDocument/didOpen,,746 +402,false,textDocument/didOpen,,747 +61,false,textDocument/completion,175, +297847,false,textDocument/didOpen,,753 +335986,false,textDocument/didOpen,,758 +239638,false,textDocument/didOpen,,754 +291129,false,textDocument/didOpen,,706 +322059,false,textDocument/didOpen,,707 +284,false,textDocument/didOpen,,708 +162,false,textDocument/completion,169, +309,false,textDocument/didOpen,,708 +172,false,textDocument/completion,169, +291800,false,textDocument/didOpen,,710 +347178,false,textDocument/didOpen,,701 +258318,false,textDocument/didOpen,,698 +330886,false,textDocument/didOpen,,697 +322612,false,textDocument/didOpen,,694 +452966,false,textDocument/didOpen,,899 +448180,false,textDocument/didOpen,,885 +347460,false,textDocument/didOpen,,689 +188306,false,textDocument/didOpen,,4008 +91754,false,textDocument/didOpen,,885 +43977,false,textDocument/didOpen,,237 +1111,false,textDocument/didOpen,,229 +544,false,textDocument/didOpen,,226 +377,false,textDocument/didOpen,,229 +582,false,textDocument/didOpen,,232 +334,false,textDocument/didOpen,,229 +1114,false,textDocument/didOpen,,226 +1136,false,textDocument/didOpen,,227 +1106,false,textDocument/didOpen,,228 +1083,false,textDocument/didOpen,,229 +1105,false,textDocument/didOpen,,235 +1078,false,textDocument/didOpen,,211 +3652,false,textDocument/didOpen,,206 +5048,false,textDocument/didOpen,,201 +428,false,textDocument/didOpen,,196 +28853,false,textDocument/didOpen,,197 +434,false,textDocument/didOpen,,198 +430,false,textDocument/didOpen,,199 +15461,false,textDocument/didOpen,,197 +1114,false,textDocument/didOpen,,193 +285,false,textDocument/didOpen,,194 +96,false,textDocument/completion,1, +548,false,textDocument/didOpen,,197 +142,false,textDocument/completion,1, +791,false,textDocument/didOpen,,198 +172,false,textDocument/completion,1, +1086,false,textDocument/didOpen,,182 +1149,false,textDocument/didOpen,,183 +113,false,textDocument/completion,1, +1144,false,textDocument/didOpen,,187 +411,false,textDocument/didOpen,,202 +1012,false,textDocument/didOpen,,897 +386734,false,textDocument/didOpen,,7577 +509,false,textDocument/didOpen,,7571 +347666,false,textDocument/didOpen,,7572 +44,false,textDocument/completion,339, +322507,false,textDocument/didOpen,,7575 +39,false,textDocument/completion,339, +472069,false,textDocument/didOpen,,7576 +579647,false,textDocument/didOpen,,7577 +394839,false,textDocument/didOpen,,7577 +174031,false,textDocument/didOpen,,4008 +123748,false,textDocument/didOpen,,4007 +145853,false,textDocument/didOpen,,5572 +141655,false,textDocument/didOpen,,5571 +70556,false,textDocument/didOpen,,222 +29362,false,textDocument/didOpen,,221 +120157,false,textDocument/didOpen,,3797 +113048,false,textDocument/didOpen,,3796 +85876,false,textDocument/didOpen,,1349 +59870,false,textDocument/didOpen,,1348 +267594,false,textDocument/didOpen,,10167 +299976,false,textDocument/didOpen,,10166 +199298,false,textDocument/didOpen,,4008 +119907,false,textDocument/didOpen,,4007 +139769,false,textDocument/didOpen,,5572 +60506,false,textDocument/didOpen,,222 +21844,false,textDocument/didOpen,,221 +360687,false,textDocument/didOpen,,7577 +386079,false,textDocument/didOpen,,7576 +141660,false,textDocument/didOpen,,3797 +96668,false,textDocument/didOpen,,3796 +123686,false,textDocument/didOpen,,1349 +53800,false,textDocument/didOpen,,1348 +297457,false,textDocument/didOpen,,10167 +317675,false,textDocument/didOpen,,10166 +415806,false,textDocument/didOpen,,7576 +332876,false,textDocument/didOpen,,7576 +163525,false,textDocument/didOpen,,5577 +104481,false,textDocument/didOpen,,5578 +139977,false,textDocument/didOpen,,5579 +139874,false,textDocument/didOpen,,5580 +398,false,textDocument/didOpen,,5581 +119157,false,textDocument/didOpen,,5582 +181617,false,textDocument/didOpen,,5585 +182949,false,textDocument/didOpen,,5583 +224626,false,textDocument/didOpen,,5584 +217468,false,textDocument/didOpen,,5585 +76,false,textDocument/completion,387, +272125,false,textDocument/didOpen,,5586 +262393,false,textDocument/didOpen,,5588 +127,false,textDocument/completion,387, +279552,false,textDocument/didOpen,,5591 +74,false,textDocument/completion,387, +296506,false,textDocument/didOpen,,5592 +374470,false,textDocument/didOpen,,5593 +360232,false,textDocument/didOpen,,5594 +411,false,textDocument/didOpen,,5596 +399241,false,textDocument/didOpen,,5597 +435,false,textDocument/didOpen,,5599 +430099,false,textDocument/didOpen,,5600 +531,false,textDocument/didOpen,,5602 +452450,false,textDocument/didOpen,,5603 +532,false,textDocument/didOpen,,5605 +440195,false,textDocument/didOpen,,5606 +556,false,textDocument/didOpen,,5608 +483055,false,textDocument/didOpen,,5609 +669,false,textDocument/didOpen,,5611 +480390,false,textDocument/didOpen,,5612 +720,false,textDocument/didOpen,,5614 +593298,false,textDocument/didOpen,,5615 +734,false,textDocument/didOpen,,5617 +637251,false,textDocument/didOpen,,5618 +757,false,textDocument/didOpen,,5619 +600,false,textDocument/didOpen,,5620 +497551,false,textDocument/didOpen,,5621 +799,false,textDocument/didOpen,,5623 +517088,false,textDocument/didOpen,,5624 +860,false,textDocument/didOpen,,5625 +731,false,textDocument/didOpen,,5626 +528483,false,textDocument/didOpen,,5627 +1244,false,textDocument/didOpen,,5629 +552718,false,textDocument/didOpen,,5630 +1056,false,textDocument/didOpen,,5631 +1065,false,textDocument/didOpen,,5632 +534568,false,textDocument/didOpen,,5633 +1409,false,textDocument/didOpen,,5635 +586279,false,textDocument/didOpen,,5636 +1440,false,textDocument/didOpen,,5637 +1141,false,textDocument/didOpen,,5638 +584930,false,textDocument/didOpen,,5639 +621220,false,textDocument/didOpen,,5623 +567604,false,textDocument/didOpen,,5622 +165848,false,textDocument/didOpen,,5622 +100274,false,textDocument/didOpen,,5572 +172931,false,textDocument/didOpen,,5572 +1000,false,textDocument/didOpen,,5577 +114665,false,textDocument/didOpen,,5572 +1324,false,textDocument/didOpen,,5619 +114433,false,textDocument/didOpen,,5618 +576,false,textDocument/didOpen,,5620 +146656,false,textDocument/didOpen,,5621 +169857,false,textDocument/didOpen,,5624 +169802,false,textDocument/didOpen,,5622 +262729,false,textDocument/didOpen,,5618 +291001,false,textDocument/didOpen,,5608 +285911,false,textDocument/didOpen,,5607 +192252,false,textDocument/didOpen,,2276 +139861,false,textDocument/didOpen,,2272 +89698,false,textDocument/didOpen,,2273 +67,false,textDocument/completion,213, +78874,false,textDocument/didOpen,,2274 +82727,false,textDocument/didOpen,,2275 +205,false,textDocument/didOpen,,739 +848,false,textDocument/didOpen,,738 +617,false,textDocument/didOpen,,737 +665,false,textDocument/didOpen,,736 +420,false,textDocument/didOpen,,733 +250,false,textDocument/didOpen,,730 +313,false,textDocument/didOpen,,727 +694,false,textDocument/didOpen,,730 +853,false,textDocument/didOpen,,733 +853,false,textDocument/didOpen,,727 +1580,false,textDocument/didOpen,,724 +821,false,textDocument/didOpen,,721 +1457,false,textDocument/didOpen,,718 +440,false,textDocument/didOpen,,715 +88,false,textDocument/didOpen,,681 +44,true,textDocument/hover,, +113,false,textDocument/didOpen,,402 +188277,false,textDocument/didOpen,,5602 +113590,false,textDocument/didOpen,,5601 +1645,false,textDocument/didOpen,,4471 +6877,false,textDocument/didOpen,,4470 +154805,false,textDocument/didOpen,,4007 +200655,false,textDocument/didOpen,,10166 +132640,false,textDocument/didOpen,,10165 +53780,false,textDocument/didOpen,,1019 +366,false,textDocument/didOpen,,1009 +69668,false,textDocument/didOpen,,689 +1545,false,textDocument/didOpen,,1009 +365,false,textDocument/didOpen,,1009 +1250,false,textDocument/didOpen,,694 +390,false,textDocument/didOpen,,7678 +653,false,textDocument/didOpen,,7628 +300180,false,textDocument/didOpen,,7577 +264,false,textDocument/didOpen,,694 +742,false,textDocument/didOpen,,1640 +2250,false,textDocument/didOpen,,1270 +1178,false,textDocument/didOpen,,897 +39918,false,textDocument/didOpen,,231 +434,false,textDocument/didOpen,,132 +245,false,textDocument/didOpen,,472 +516,false,textDocument/didOpen,,202 +57092,false,textDocument/didOpen,,827 +1181,false,textDocument/didOpen,,729 +37604,false,textDocument/didOpen,,593 +696,false,textDocument/didOpen,,438 +413,false,textDocument/didOpen,,283 +432,false,textDocument/didOpen,,732 +586,false,textDocument/didOpen,,382 +420,false,textDocument/didOpen,,348 +521,false,textDocument/didOpen,,248 +417,false,textDocument/didOpen,,1153 +1169,false,textDocument/didOpen,,1005 +1267,false,textDocument/didOpen,,997 +481,false,textDocument/didOpen,,994 +1158,false,textDocument/didOpen,,995 +1197,false,textDocument/didOpen,,996 +1144,false,textDocument/didOpen,,997 +1172,false,textDocument/didOpen,,996 +638,false,textDocument/didOpen,,995 +160,false,textDocument/didOpen,,634 +698,false,textDocument/didOpen,,638 +611,false,textDocument/didOpen,,641 +592,false,textDocument/didOpen,,643 +647,false,textDocument/didOpen,,645 +210,false,textDocument/didOpen,,250 +1837,false,textDocument/didOpen,,637 +631,false,textDocument/didOpen,,634 +604,false,textDocument/didOpen,,635 +615,false,textDocument/didOpen,,637 +709,false,textDocument/didOpen,,635 +700,false,textDocument/didOpen,,2695 +1096,false,textDocument/didOpen,,2568 +1137,false,textDocument/didOpen,,2454 +286,false,textDocument/didOpen,,1087 +38148,false,textDocument/didOpen,,977 +33662,false,textDocument/didOpen,,859 +842,false,textDocument/didOpen,,733 +1171,false,textDocument/didOpen,,732 +381,false,textDocument/didOpen,,733 +108,false,textDocument/completion,37, +202,false,textDocument/didOpen,,732 +372,false,textDocument/didOpen,,733 +108,false,textDocument/completion,37, +1213,false,textDocument/didOpen,,735 +477,false,textDocument/didOpen,,734 +537,false,textDocument/didOpen,,735 +140,false,textDocument/completion,37, +848,false,textDocument/didOpen,,737 +594,false,textDocument/didOpen,,729 +410,false,textDocument/didOpen,,730 +116,false,textDocument/completion,37, +842,false,textDocument/didOpen,,732 +698,false,textDocument/didOpen,,735 +838,false,textDocument/didOpen,,738 +848,false,textDocument/didOpen,,733 +317,false,textDocument/didOpen,,734 +13,false,textDocument/completion,37, +843,false,textDocument/didOpen,,738 +1225,false,textDocument/didOpen,,739 +207,false,textDocument/didOpen,,735 +434,false,textDocument/didOpen,,737 +18,false,textDocument/completion,37, +863,false,textDocument/didOpen,,738 +859,false,textDocument/didOpen,,741 +1006,false,textDocument/didOpen,,740 +461,false,textDocument/didOpen,,741 +143,false,textDocument/completion,37, +1267,false,textDocument/didOpen,,743 +457,false,textDocument/didOpen,,742 +1332,false,textDocument/didOpen,,743 +198,false,textDocument/completion,37, +905,false,textDocument/didOpen,,745 +602,false,textDocument/didOpen,,737 +410,false,textDocument/didOpen,,738 +108,false,textDocument/completion,37, +826,false,textDocument/didOpen,,740 +575,false,textDocument/didOpen,,743 +352522,false,textDocument/didOpen,,7577 +384,false,textDocument/didOpen,,7678 +3171,false,textDocument/didOpen,,7648 +1455,false,textDocument/didOpen,,7637 +3507,false,textDocument/didOpen,,7628 +394468,false,textDocument/didOpen,,7577 +26091,false,textDocument/didOpen,,710 +554,false,textDocument/didOpen,,617 +17693,false,textDocument/didOpen,,1043 +1005,false,textDocument/didOpen,,939 +399,false,textDocument/didOpen,,1029 +14520,false,textDocument/didOpen,,908 +797,false,textDocument/didOpen,,804 +35077,false,textDocument/didOpen,,4575 +3229,false,textDocument/didOpen,,4471 +786,false,textDocument/didOpen,,2348 +10479,false,textDocument/didOpen,,2241 +1873,false,textDocument/didOpen,,2137 +28089,false,textDocument/didOpen,,634 +654,false,textDocument/didOpen,,530 +568,false,textDocument/didOpen,,1420 +3534,false,textDocument/didOpen,,1166 +848,false,textDocument/didOpen,,1062 +19718,false,textDocument/didOpen,,2379 +1854,false,textDocument/didOpen,,2275 +523,false,textDocument/didOpen,,2348 +1510,false,textDocument/didOpen,,2234 +44145,false,textDocument/didOpen,,1644 +1424,false,textDocument/didOpen,,1540 +24820,false,textDocument/didOpen,,2885 +1963,false,textDocument/didOpen,,2781 +84826,false,textDocument/didOpen,,1033 +1920,false,textDocument/didOpen,,929 +8027,false,textDocument/didOpen,,1090 +824,false,textDocument/didOpen,,986 +5093,false,textDocument/didOpen,,6241 +8326,false,textDocument/didOpen,,6094 +21248,false,textDocument/didOpen,,1611 +1419,false,textDocument/didOpen,,1540 +200552,false,textDocument/didOpen,,10165 +167375,false,textDocument/didOpen,,10161 +720,false,textDocument/didOpen,,10162 +138,false,textDocument/completion,277, +3187,false,textDocument/didOpen,,10166 +528,false,textDocument/completion,277, +235,false,textDocument/completion,277, +323672,false,textDocument/didOpen,,7577 +2808,false,textDocument/didOpen,,7635 +413208,false,textDocument/didOpen,,7577 +1706,false,textDocument/didOpen,,7616 +1183,false,textDocument/didOpen,,7616 +2616,false,textDocument/didOpen,,7628 +2954,false,textDocument/didOpen,,7635 +196048,false,textDocument/didOpen,,4007 +143514,false,textDocument/didOpen,,4013 +211874,false,textDocument/didOpen,,4016 +229972,false,textDocument/didOpen,,5601 +217661,false,textDocument/didOpen,,5604 +699284,false,textDocument/didOpen,,7577 +729715,false,textDocument/didOpen,,7605 +3046,false,textDocument/didOpen,,7635 +146499,false,textDocument/didOpen,,1348 +757,false,textDocument/didOpen,,7635 +384263,false,textDocument/didOpen,,4016 +276635,false,textDocument/didOpen,,5604 +607,false,textDocument/didOpen,,7635 +642,false,textDocument/didOpen,,7635 +375453,false,textDocument/didOpen,,4016 +305927,false,textDocument/didOpen,,5604 +690,false,textDocument/didOpen,,7635 +582,false,textDocument/didOpen,,7635 +385761,false,textDocument/didOpen,,4016 +321495,false,textDocument/didOpen,,5604 +564,false,textDocument/didOpen,,7635 +184,false,textDocument/didOpen,,746 +668,false,textDocument/didOpen,,7635 +579,false,textDocument/didOpen,,7635 +612,false,textDocument/didOpen,,7635 +564,false,textDocument/didOpen,,7635 +861,false,textDocument/didOpen,,7635 +2481,false,textDocument/didOpen,,7635 +134975,false,textDocument/didOpen,,5604 +177,false,textDocument/didOpen,,1806 +775,false,textDocument/didOpen,,1805 +1855,false,textDocument/didOpen,,6118 +662,false,textDocument/didOpen,,7635 +678,false,textDocument/didOpen,,7636 +697,false,textDocument/didOpen,,7637 +12,true,textDocument/completion,, +669,false,textDocument/didOpen,,7638 +718,false,textDocument/didOpen,,7639 +692,false,textDocument/didOpen,,7639 +650,false,textDocument/didOpen,,7639 +651,false,textDocument/didOpen,,7639 +387,false,textDocument/didOpen,,2091 +254,false,textDocument/didOpen,,2092 +291,false,textDocument/didOpen,,2093 +340,false,textDocument/didOpen,,2094 +353,false,textDocument/didOpen,,2095 +465,false,textDocument/didOpen,,2097 +262,false,textDocument/didOpen,,2096 +374,false,textDocument/didOpen,,2095 +502,false,textDocument/didOpen,,2094 +371,false,textDocument/didOpen,,2093 +355,false,textDocument/didOpen,,2094 +330,false,textDocument/didOpen,,2095 +393,false,textDocument/didOpen,,2094 +395,false,textDocument/didOpen,,2095 +372,false,textDocument/didOpen,,2096 +391,false,textDocument/didOpen,,2093 +1541,false,textDocument/didOpen,,2092 +395,false,textDocument/didOpen,,2091 +77432,false,textDocument/didOpen,,2090 +196962,false,textDocument/didOpen,,2090 +54169,false,textDocument/didOpen,,289 +2195,false,textDocument/didOpen,,288 +2966,false,textDocument/didOpen,,289 +3579,false,textDocument/didOpen,,290 +192,false,textDocument/didOpen,,289 +3569,false,textDocument/didOpen,,290 +5542,false,textDocument/didOpen,,291 +22680,false,textDocument/didOpen,,289 +2322,false,textDocument/didOpen,,288 +4016,false,textDocument/didOpen,,289 +2554,false,textDocument/didOpen,,290 +8474,false,textDocument/didOpen,,291 +138862,false,textDocument/didOpen,,2090 +47822,false,textDocument/didOpen,,291 +20896,false,textDocument/didOpen,,292 +6186,false,textDocument/didOpen,,293 +5820,false,textDocument/didOpen,,292 +12147,false,textDocument/didOpen,,293 +6664,false,textDocument/didOpen,,294 +20583,false,textDocument/didOpen,,295 +5396,false,textDocument/didOpen,,296 +6250,false,textDocument/didOpen,,297 +7009,false,textDocument/didOpen,,302 +5391,false,textDocument/didOpen,,307 +15762,false,textDocument/didOpen,,312 +13225,false,textDocument/didOpen,,313 +492,false,textDocument/didOpen,,314 +9847,false,textDocument/didOpen,,313 +249,false,textDocument/didOpen,,314 +8100,false,textDocument/didOpen,,315 +7398,false,textDocument/didOpen,,294 +9155,false,textDocument/didOpen,,287 +7814,false,textDocument/didOpen,,286 +7643,false,textDocument/didOpen,,287 +8999,false,textDocument/didOpen,,288 +8758,false,textDocument/didOpen,,289 +5704,false,textDocument/didOpen,,290 +7514,false,textDocument/didOpen,,291 +280,false,textDocument/didOpen,,292 +8270,false,textDocument/didOpen,,293 +6735,false,textDocument/didOpen,,286 +7212,false,textDocument/didOpen,,287 +252,false,textDocument/didOpen,,288 +6240,false,textDocument/didOpen,,289 +7978,false,textDocument/didOpen,,290 +7720,false,textDocument/didOpen,,291 +374,false,textDocument/didOpen,,292 +5516,false,textDocument/didOpen,,293 +6234,false,textDocument/didOpen,,294 +21972,false,textDocument/didOpen,,296 +24,false,textDocument/completion,18, +8397,false,textDocument/didOpen,,300 +43,false,textDocument/completion,18, +7192,false,textDocument/didOpen,,301 +8833,false,textDocument/didOpen,,303 +23,false,textDocument/completion,18, +7764,false,textDocument/didOpen,,307 +19,false,textDocument/completion,18, +6528,false,textDocument/didOpen,,310 +8402,false,textDocument/didOpen,,312 +24,false,textDocument/completion,18, +16554,false,textDocument/didOpen,,313 +8186,false,textDocument/didOpen,,314 +26,false,textDocument/completion,18, +6598,false,textDocument/didOpen,,315 +22,false,textDocument/completion,18, +6648,false,textDocument/didOpen,,316 +6053,false,textDocument/didOpen,,317 +20,false,textDocument/completion,18, +4837,false,textDocument/didOpen,,319 +8340,false,textDocument/didOpen,,322 +22,false,textDocument/completion,18, +6547,false,textDocument/didOpen,,323 +21,false,textDocument/completion,18, +9263,false,textDocument/didOpen,,324 +7782,false,textDocument/didOpen,,325 +19,false,textDocument/completion,18, +7329,false,textDocument/didOpen,,327 +6688,false,textDocument/didOpen,,328 +10652,false,textDocument/didOpen,,329 +8180,false,textDocument/didOpen,,330 +21,false,textDocument/completion,18, +8204,false,textDocument/didOpen,,334 +6720,false,textDocument/didOpen,,335 +19,false,textDocument/completion,18, +16297,false,textDocument/didOpen,,337 +8242,false,textDocument/didOpen,,338 +39,false,textDocument/completion,18, +6045,false,textDocument/didOpen,,340 +6389,false,textDocument/didOpen,,341 +8590,false,textDocument/didOpen,,342 +36,false,textDocument/completion,18, +6873,false,textDocument/didOpen,,341 +7164,false,textDocument/didOpen,,342 +18,false,textDocument/completion,18, +5357,false,textDocument/didOpen,,344 +3367,false,textDocument/didOpen,,494 +345,false,textDocument/didOpen,,410 +272,false,textDocument/didOpen,,413 +755,false,textDocument/didOpen,,414 +330,false,textDocument/didOpen,,412 +272,false,textDocument/didOpen,,413 +255,false,textDocument/didOpen,,414 +290,false,textDocument/didOpen,,416 +33,false,textDocument/completion,1, +285,false,textDocument/didOpen,,420 +437,false,textDocument/didOpen,,423 +260,false,textDocument/didOpen,,427 +272,false,textDocument/didOpen,,431 +252,false,textDocument/didOpen,,435 +322,false,textDocument/didOpen,,439 +237,false,textDocument/didOpen,,443 +235,false,textDocument/didOpen,,447 +230,false,textDocument/didOpen,,446 +261,false,textDocument/didOpen,,445 +298,false,textDocument/didOpen,,448 +439,false,textDocument/didOpen,,446 +247,false,textDocument/didOpen,,447 +294,false,textDocument/didOpen,,448 +39,false,textDocument/completion,1, +453,false,textDocument/didOpen,,449 +305,false,textDocument/didOpen,,452 +384,false,textDocument/didOpen,,453 +231,false,textDocument/didOpen,,455 +319,false,textDocument/didOpen,,456 +40,false,textDocument/completion,1, +363,false,textDocument/didOpen,,459 +47,false,textDocument/completion,1, +350,false,textDocument/didOpen,,457 +287,false,textDocument/didOpen,,456 +261,false,textDocument/didOpen,,455 +47,false,textDocument/didOpen,,456 +48,false,textDocument/didOpen,,457 +53,false,textDocument/completion,1, +54,false,textDocument/didOpen,,462 +46,false,textDocument/didOpen,,463 +339,false,textDocument/didOpen,,464 +473,false,textDocument/didOpen,,465 +708,false,textDocument/didOpen,,469 +396,false,textDocument/didOpen,,470 +242,false,textDocument/didOpen,,468 +254,false,textDocument/didOpen,,471 +229,false,textDocument/didOpen,,469 +20906,false,textDocument/didOpen,,468 +17030,false,textDocument/didOpen,,453 +35243,false,textDocument/didOpen,,452 +337,false,textDocument/didOpen,,450 +66,false,textDocument/didOpen,,449 +60,false,textDocument/didOpen,,448 +52,false,textDocument/didOpen,,446 +60,false,textDocument/didOpen,,436 +14188,false,textDocument/didOpen,,435 +11101,false,textDocument/didOpen,,434 +14618,false,textDocument/didOpen,,435 +380,false,textDocument/didOpen,,436 +323,false,textDocument/didOpen,,437 +940,false,textDocument/didOpen,,436 +11119,false,textDocument/didOpen,,435 +20607,false,textDocument/didOpen,,434 +11622,false,textDocument/didOpen,,437 +14300,false,textDocument/didOpen,,435 +14281,false,textDocument/didOpen,,436 +130,false,textDocument/didOpen,,437 +87,false,textDocument/completion,26, +98,false,textDocument/didOpen,,438 +361,false,textDocument/didOpen,,439 +285,false,textDocument/didOpen,,440 +342,false,textDocument/didOpen,,441 +45,false,textDocument/completion,1, +335,false,textDocument/didOpen,,443 +221,false,textDocument/didOpen,,444 +273,false,textDocument/didOpen,,445 +261,false,textDocument/didOpen,,446 +408,false,textDocument/didOpen,,448 +27230,false,textDocument/didOpen,,435 +19284,false,textDocument/didOpen,,436 +32685,false,textDocument/didOpen,,437 +10404,false,textDocument/didOpen,,438 +370,false,textDocument/didOpen,,439 +43,false,textDocument/completion,1, +255,false,textDocument/didOpen,,441 +333,false,textDocument/didOpen,,444 +285,false,textDocument/didOpen,,445 +268,false,textDocument/didOpen,,446 +272,false,textDocument/didOpen,,447 +14498,false,textDocument/didOpen,,448 +16578,false,textDocument/didOpen,,435 +392,false,textDocument/didOpen,,438 +96,false,textDocument/didOpen,,439 +305,false,textDocument/didOpen,,438 +300,false,textDocument/didOpen,,439 +476,false,textDocument/didOpen,,440 +19,false,textDocument/completion,1, +399,false,textDocument/didOpen,,445 +289,false,textDocument/didOpen,,446 +15,false,textDocument/completion,1, +371,false,textDocument/didOpen,,447 +362,false,textDocument/didOpen,,448 +266,false,textDocument/didOpen,,447 +330,false,textDocument/didOpen,,448 +12,false,textDocument/completion,1, +166,false,textDocument/didOpen,,449 +33521,false,textDocument/didOpen,,436 +12800,false,textDocument/didOpen,,435 +241,false,textDocument/didOpen,,437 +393,false,textDocument/didOpen,,438 +226,false,textDocument/didOpen,,439 +231,false,textDocument/didOpen,,440 +218,false,textDocument/didOpen,,441 +28,false,textDocument/completion,1, +241,false,textDocument/didOpen,,442 +254,false,textDocument/didOpen,,443 +270,false,textDocument/didOpen,,444 +400,false,textDocument/didOpen,,445 +267,false,textDocument/didOpen,,446 +31,false,textDocument/completion,1, +259,false,textDocument/didOpen,,447 +266,false,textDocument/didOpen,,449 +390,false,textDocument/didOpen,,453 +257,false,textDocument/didOpen,,454 +287,false,textDocument/didOpen,,455 +27536,false,textDocument/didOpen,,454 +23274,false,textDocument/didOpen,,455 +227,false,textDocument/didOpen,,456 +289,false,textDocument/didOpen,,459 +40,false,textDocument/completion,1, +334,false,textDocument/didOpen,,461 +385,false,textDocument/didOpen,,463 +324,false,textDocument/didOpen,,464 +318,false,textDocument/didOpen,,466 +291,false,textDocument/didOpen,,467 +19995,false,textDocument/didOpen,,468 +37674,false,textDocument/didOpen,,469 +260,false,textDocument/didOpen,,470 +279,false,textDocument/didOpen,,471 +271,false,textDocument/didOpen,,472 +33,false,textDocument/completion,1, +28583,false,textDocument/didOpen,,475 +53305,false,textDocument/didOpen,,466 +21399,false,textDocument/didOpen,,468 +21,false,textDocument/completion,27, +43681,false,textDocument/didOpen,,469 +17647,false,textDocument/didOpen,,428 +41987,false,textDocument/didOpen,,429 +72,false,textDocument/completion,26, +19793,false,textDocument/didOpen,,430 +34283,false,textDocument/didOpen,,432 +1437,false,textDocument/didOpen,,433 +5064,false,textDocument/didOpen,,434 +60,false,textDocument/completion,2, +53016,false,textDocument/didOpen,,432 +30957,false,textDocument/didOpen,,433 +47,false,textDocument/completion,26, +24506,false,textDocument/didOpen,,432 +52650,false,textDocument/didOpen,,431 +1564,false,textDocument/didOpen,,429 +174,false,textDocument/didOpen,,427 +174,false,textDocument/didOpen,,425 +51,false,textDocument/didOpen,,423 +58,false,textDocument/didOpen,,420 +61,false,textDocument/didOpen,,419 +69,false,textDocument/didOpen,,411 +18275,false,textDocument/didOpen,,410 +16507,false,textDocument/didOpen,,409 +34700,false,textDocument/didOpen,,408 +32147,false,textDocument/didOpen,,409 +121,false,textDocument/didOpen,,394 +224,false,textDocument/didOpen,,395 +158,false,textDocument/didOpen,,396 +22,false,textDocument/completion,26, +162,false,textDocument/didOpen,,397 +492,false,textDocument/didOpen,,398 +348,false,textDocument/didOpen,,399 +511,false,textDocument/didOpen,,400 +65,false,textDocument/completion,1, +400,false,textDocument/didOpen,,402 +352,false,textDocument/didOpen,,403 +514,false,textDocument/didOpen,,404 +402,false,textDocument/didOpen,,405 +470,false,textDocument/didOpen,,406 +443,false,textDocument/didOpen,,407 +436,false,textDocument/didOpen,,408 +346,false,textDocument/didOpen,,409 +494,false,textDocument/didOpen,,410 +460,false,textDocument/didOpen,,411 +468,false,textDocument/didOpen,,412 +434,false,textDocument/didOpen,,413 +414,false,textDocument/didOpen,,415 +473,false,textDocument/didOpen,,420 +342,false,textDocument/didOpen,,421 +604,false,textDocument/didOpen,,422 +53,false,textDocument/completion,1, +48651,false,textDocument/didOpen,,423 +29176,false,textDocument/didOpen,,424 +72,false,textDocument/completion,27, +21695,false,textDocument/didOpen,,430 +41914,false,textDocument/didOpen,,431 +25539,false,textDocument/didOpen,,432 +160,false,textDocument/completion,27, +24554,false,textDocument/didOpen,,433 +52747,false,textDocument/didOpen,,432 +23115,false,textDocument/didOpen,,431 +25263,false,textDocument/didOpen,,430 +96,false,textDocument/didOpen,,431 +25304,false,textDocument/didOpen,,432 +62176,false,textDocument/didOpen,,434 +37108,false,textDocument/didOpen,,394 +24052,false,textDocument/didOpen,,380 +32100,false,textDocument/didOpen,,379 +37059,false,textDocument/didOpen,,378 +27851,false,textDocument/didOpen,,379 +29872,false,textDocument/didOpen,,380 +2467,false,textDocument/didOpen,,381 +25407,false,textDocument/didOpen,,380 +3609,false,textDocument/didOpen,,382 +1204,false,textDocument/didOpen,,383 +206,false,textDocument/didOpen,,384 +14,false,textDocument/completion,3, +227,false,textDocument/didOpen,,385 +68302,false,textDocument/didOpen,,386 +1514,false,textDocument/didOpen,,387 +2041,false,textDocument/didOpen,,386 +1643,false,textDocument/didOpen,,383 +1324,false,textDocument/didOpen,,380 +26021,false,textDocument/didOpen,,379 +22676,false,textDocument/didOpen,,380 +285,false,textDocument/didOpen,,382 +26,false,textDocument/completion,27, +31790,false,textDocument/didOpen,,383 +2012,false,textDocument/didOpen,,384 +1895,false,textDocument/didOpen,,385 +1414,false,textDocument/didOpen,,386 +31455,false,textDocument/didOpen,,389 +62860,false,textDocument/didOpen,,388 +36056,false,textDocument/didOpen,,387 +1194,false,textDocument/didOpen,,386 +59376,false,textDocument/didOpen,,385 +1271,false,textDocument/didOpen,,381 +30990,false,textDocument/didOpen,,380 +24161,false,textDocument/didOpen,,379 +125,false,textDocument/didOpen,,341 +483,false,textDocument/didOpen,,342 +50,false,textDocument/completion,1, +597,false,textDocument/didOpen,,344 +59679,false,textDocument/didOpen,,346 +144,false,textDocument/didOpen,,341 +66845,false,textDocument/didOpen,,379 +59289,false,textDocument/didOpen,,380 +12420,false,textDocument/didOpen,,381 +11739,false,textDocument/didOpen,,382 +54922,false,textDocument/didOpen,,383 +115,false,textDocument/completion,28, +31408,false,textDocument/didOpen,,385 +22969,false,textDocument/didOpen,,386 +37847,false,textDocument/didOpen,,387 +69,false,textDocument/completion,28, +39405,false,textDocument/didOpen,,389 +73,false,textDocument/completion,28, +34900,false,textDocument/didOpen,,390 +104,false,textDocument/completion,28, +39744,false,textDocument/didOpen,,391 +62,false,textDocument/completion,28, +73921,false,textDocument/didOpen,,394 +43950,false,textDocument/didOpen,,395 +68180,false,textDocument/didOpen,,396 +433,false,textDocument/didOpen,,397 +49,false,textDocument/completion,1, +434,false,textDocument/didOpen,,398 +49,false,textDocument/completion,1, +423,false,textDocument/didOpen,,399 +54,false,textDocument/completion,1, +413,false,textDocument/didOpen,,400 +41,false,textDocument/completion,1, +558,false,textDocument/didOpen,,401 +54,false,textDocument/completion,1, +365,false,textDocument/didOpen,,402 +73728,false,textDocument/didOpen,,403 +35894,false,textDocument/didOpen,,404 +109,false,textDocument/didOpen,,405 +99,false,textDocument/didOpen,,406 +251,false,textDocument/completion,28, +87,false,textDocument/didOpen,,408 +96,false,textDocument/didOpen,,410 +118,false,textDocument/completion,28, +76,false,textDocument/didOpen,,414 +50236,false,textDocument/didOpen,,415 +39427,false,textDocument/didOpen,,416 +38146,false,textDocument/didOpen,,391 +81940,false,textDocument/didOpen,,392 +72,false,textDocument/completion,28, +41293,false,textDocument/didOpen,,393 +85012,false,textDocument/didOpen,,388 +56207,false,textDocument/didOpen,,389 +6515,false,textDocument/completion,28, +43928,false,textDocument/didOpen,,390 +74,false,textDocument/completion,28, +52122,false,textDocument/didOpen,,391 +68,false,textDocument/completion,28, +45011,false,textDocument/didOpen,,392 +96,false,textDocument/completion,28, +62516,false,textDocument/didOpen,,393 +112,false,textDocument/completion,28, +41932,false,textDocument/didOpen,,392 +45183,false,textDocument/didOpen,,393 +54,false,textDocument/completion,28, +39628,false,textDocument/didOpen,,392 +67417,false,textDocument/didOpen,,391 +44191,false,textDocument/didOpen,,390 +42006,false,textDocument/didOpen,,389 +42799,false,textDocument/didOpen,,388 +45129,false,textDocument/didOpen,,389 +712,false,textDocument/completion,28, +45886,false,textDocument/didOpen,,390 +50,false,textDocument/completion,28, +43351,false,textDocument/didOpen,,391 +71,false,textDocument/completion,28, +47280,false,textDocument/didOpen,,392 +60,false,textDocument/completion,28, +45883,false,textDocument/didOpen,,393 +85,false,textDocument/completion,28, +91731,false,textDocument/didOpen,,392 +76920,false,textDocument/didOpen,,394 +42423,false,textDocument/didOpen,,393 +87443,false,textDocument/didOpen,,392 +82661,false,textDocument/didOpen,,391 +87542,false,textDocument/didOpen,,392 +68967,false,textDocument/didOpen,,393 +1445,false,textDocument/didOpen,,394 +43578,false,textDocument/didOpen,,395 +46222,false,textDocument/didOpen,,396 +49477,false,textDocument/didOpen,,397 +57,false,textDocument/completion,28, +86509,false,textDocument/didOpen,,398 +49652,false,textDocument/didOpen,,399 +56,false,textDocument/completion,28, +59944,false,textDocument/didOpen,,400 +63,false,textDocument/completion,28, +82801,false,textDocument/didOpen,,401 +79,false,textDocument/completion,28, +55642,false,textDocument/didOpen,,402 +110,false,textDocument/completion,28, +51364,false,textDocument/didOpen,,403 +65,false,textDocument/completion,28, +67554,false,textDocument/didOpen,,404 +2353,false,textDocument/completion,28, +59007,false,textDocument/didOpen,,406 +49054,false,textDocument/didOpen,,408 +134,false,textDocument/didOpen,,442 +98842,false,textDocument/didOpen,,408 +86991,false,textDocument/didOpen,,409 +48104,false,textDocument/didOpen,,391 +104137,false,textDocument/didOpen,,390 +81844,false,textDocument/didOpen,,378 +478760,false,textDocument/didOpen,,2097 +503544,false,textDocument/didOpen,,2098 +423221,false,textDocument/didOpen,,2096 +458968,false,textDocument/didOpen,,2094 +389651,false,textDocument/didOpen,,2092 +480389,false,textDocument/didOpen,,2093 +392699,false,textDocument/didOpen,,2094 +553394,false,textDocument/didOpen,,2095 +219,false,textDocument/completion,120, +437555,false,textDocument/didOpen,,2096 +537787,false,textDocument/didOpen,,2095 +531054,false,textDocument/didOpen,,2096 +1088,false,textDocument/completion,120, +497641,false,textDocument/didOpen,,2100 +602865,false,textDocument/didOpen,,2101 +464272,false,textDocument/didOpen,,2102 +118,false,textDocument/completion,120, +452049,false,textDocument/didOpen,,2105 +527624,false,textDocument/didOpen,,2106 +248393,false,textDocument/didOpen,,2107 +321782,false,textDocument/didOpen,,2108 +719588,false,textDocument/didOpen,,2106 +482151,false,textDocument/didOpen,,2107 +515743,false,textDocument/didOpen,,2108 +303182,false,textDocument/didOpen,,2109 +571008,false,textDocument/didOpen,,2108 +605596,false,textDocument/didOpen,,2107 +562590,false,textDocument/didOpen,,2106 +378390,false,textDocument/didOpen,,2107 +282726,false,textDocument/didOpen,,2108 +609527,false,textDocument/didOpen,,2109 +195,false,textDocument/completion,120, +361766,false,textDocument/didOpen,,2111 +338799,false,textDocument/didOpen,,2112 +206473,false,textDocument/didOpen,,2113 +219977,false,textDocument/didOpen,,2114 +71,false,textDocument/completion,64, +150629,false,textDocument/didOpen,,2118 +54,false,textDocument/completion,64, +105612,false,textDocument/didOpen,,2121 +132435,false,textDocument/didOpen,,2122 +49,false,textDocument/completion,64, +273599,false,textDocument/didOpen,,2124 +70,false,textDocument/completion,64, +151087,false,textDocument/didOpen,,2126 +130174,false,textDocument/didOpen,,2127 +87,false,textDocument/completion,64, +143761,false,textDocument/didOpen,,2128 +130733,false,textDocument/didOpen,,2129 +169663,false,textDocument/didOpen,,2128 +121710,false,textDocument/didOpen,,2127 +135809,false,textDocument/didOpen,,2126 +130619,false,textDocument/didOpen,,2125 +361652,false,textDocument/didOpen,,2112 +129187,false,textDocument/didOpen,,2113 +131738,false,textDocument/didOpen,,2114 +137470,false,textDocument/didOpen,,2114 +68,false,textDocument/completion,64, +217694,false,textDocument/didOpen,,2115 +174701,false,textDocument/didOpen,,2117 +44,false,textDocument/completion,64, +152802,false,textDocument/didOpen,,2123 +65,false,textDocument/completion,64, +137440,false,textDocument/didOpen,,2127 +52,false,textDocument/completion,64, +643540,false,textDocument/didOpen,,2128 +667896,false,textDocument/didOpen,,2131 +758194,false,textDocument/didOpen,,2132 +752249,false,textDocument/didOpen,,2133 +763855,false,textDocument/didOpen,,2134 +822205,false,textDocument/didOpen,,2133 +677970,false,textDocument/didOpen,,2131 +772551,false,textDocument/didOpen,,2132 +764106,false,textDocument/didOpen,,2134 +675075,false,textDocument/didOpen,,2135 +348810,false,textDocument/didOpen,,2136 +417660,false,textDocument/didOpen,,2130 +362794,false,textDocument/didOpen,,2131 +102,false,textDocument/completion,82, +485792,false,textDocument/didOpen,,2134 +471420,false,textDocument/didOpen,,2136 +392935,false,textDocument/didOpen,,2137 +126,false,textDocument/completion,82, +476157,false,textDocument/didOpen,,2142 +505905,false,textDocument/didOpen,,2140 +407393,false,textDocument/didOpen,,2141 +969675,false,textDocument/didOpen,,2142 +269,false,textDocument/didOpen,,2096 +788145,false,textDocument/didOpen,,2142 +769788,false,textDocument/didOpen,,2141 +870924,false,textDocument/didOpen,,2142 +734235,false,textDocument/didOpen,,2143 +901051,false,textDocument/didOpen,,2138 +872864,false,textDocument/didOpen,,2140 +155,false,textDocument/completion,120, +830271,false,textDocument/didOpen,,2142 +877724,false,textDocument/didOpen,,2143 +882281,false,textDocument/didOpen,,2144 +120,false,textDocument/completion,122, +1013966,false,textDocument/didOpen,,2150 +853936,false,textDocument/didOpen,,2151 +956756,false,textDocument/didOpen,,2152 +883876,false,textDocument/didOpen,,2153 +833420,false,textDocument/didOpen,,2152 +498911,false,textDocument/didOpen,,2153 +476393,false,textDocument/didOpen,,2154 +892009,false,textDocument/didOpen,,2155 +161,false,textDocument/completion,122, +817056,false,textDocument/didOpen,,2158 +191,false,textDocument/completion,122, +929951,false,textDocument/didOpen,,2159 +1064105,false,textDocument/didOpen,,2160 +445157,false,textDocument/didOpen,,2151 +1108215,false,textDocument/didOpen,,2152 +125,false,textDocument/completion,121, +1002800,false,textDocument/didOpen,,2154 +1034532,false,textDocument/didOpen,,2156 +1046533,false,textDocument/didOpen,,2157 +124,false,textDocument/completion,121, +1115289,false,textDocument/didOpen,,2159 +1230794,false,textDocument/didOpen,,2164 +1059404,false,textDocument/didOpen,,2165 +1110953,false,textDocument/didOpen,,2166 +1206851,false,textDocument/didOpen,,2168 +1130561,false,textDocument/didOpen,,2169 +1033462,false,textDocument/didOpen,,2168 +1161940,false,textDocument/didOpen,,2167 +1083210,false,textDocument/didOpen,,2168 +1062736,false,textDocument/didOpen,,2166 +1049109,false,textDocument/didOpen,,2168 +1084576,false,textDocument/didOpen,,2167 +589658,false,textDocument/didOpen,,2168 +643725,false,textDocument/didOpen,,2169 +658476,false,textDocument/didOpen,,2170 +1192957,false,textDocument/didOpen,,2171 +1463704,false,textDocument/didOpen,,2172 +147,false,textDocument/completion,123, +1347425,false,textDocument/didOpen,,2178 +5562,false,textDocument/completion,123, +1314076,false,textDocument/didOpen,,2179 +901538,false,textDocument/didOpen,,2180 +1316753,false,textDocument/didOpen,,2179 +1247108,false,textDocument/didOpen,,2177 +1311468,false,textDocument/didOpen,,2175 +1245678,false,textDocument/didOpen,,2176 +230,false,textDocument/completion,123, +1190257,false,textDocument/didOpen,,2175 +1161621,false,textDocument/didOpen,,2176 +165,false,textDocument/completion,123, +1282254,false,textDocument/didOpen,,2178 +706723,false,textDocument/didOpen,,2179 +1261662,false,textDocument/didOpen,,2178 +639921,false,textDocument/didOpen,,2179 +660866,false,textDocument/didOpen,,2181 +676592,false,textDocument/didOpen,,2188 +670725,false,textDocument/didOpen,,2189 +1434230,false,textDocument/didOpen,,2190 +1375797,false,textDocument/didOpen,,2191 +1415214,false,textDocument/didOpen,,2192 +1511680,false,textDocument/didOpen,,2193 +1335690,false,textDocument/didOpen,,2195 +1668047,false,textDocument/didOpen,,2196 +1522296,false,textDocument/didOpen,,2197 +1491906,false,textDocument/didOpen,,2198 +1312695,false,textDocument/didOpen,,2199 +1321742,false,textDocument/didOpen,,2200 +1297379,false,textDocument/didOpen,,2201 +1364009,false,textDocument/didOpen,,2202 +1344438,false,textDocument/didOpen,,2201 +1311329,false,textDocument/didOpen,,2202 +1466631,false,textDocument/didOpen,,2203 +526,false,textDocument/completion,124, +1573757,false,textDocument/didOpen,,2204 +1668880,false,textDocument/didOpen,,2207 +2150611,false,textDocument/didOpen,,2208 +1002320,false,textDocument/didOpen,,2209 +2101066,false,textDocument/didOpen,,2210 +1960654,false,textDocument/didOpen,,2211 +2049405,false,textDocument/didOpen,,2212 +1000295,false,textDocument/didOpen,,2213 +2243612,false,textDocument/didOpen,,2214 +2416371,false,textDocument/didOpen,,2215 +2457307,false,textDocument/didOpen,,2220 +2023063,false,textDocument/didOpen,,2221 +2194970,false,textDocument/didOpen,,2222 +2510800,false,textDocument/didOpen,,2223 +2468475,false,textDocument/didOpen,,2224 +10410,false,textDocument/completion,126, +2609713,false,textDocument/didOpen,,2229 +1113425,false,textDocument/didOpen,,2230 +3275848,false,textDocument/didOpen,,2233 +1493980,false,textDocument/didOpen,,2234 +2656373,false,textDocument/didOpen,,2240 +2679817,false,textDocument/didOpen,,2239 +2914875,false,textDocument/didOpen,,2235 +2765870,false,textDocument/didOpen,,2236 +6370,false,textDocument/completion,128, +2591569,false,textDocument/didOpen,,2240 +2346062,false,textDocument/didOpen,,2241 +2691277,false,textDocument/didOpen,,2250 +2677915,false,textDocument/didOpen,,2251 +2701813,false,textDocument/didOpen,,2245 +1208388,false,textDocument/didOpen,,2246 +1156604,false,textDocument/didOpen,,2247 +104,false,textDocument/completion,82, +1119464,false,textDocument/didOpen,,2249 +1100983,false,textDocument/didOpen,,2250 +2687101,false,textDocument/didOpen,,2251 +1224121,false,textDocument/didOpen,,2247 +2522560,false,textDocument/didOpen,,2249 +5783,false,textDocument/completion,128, +2382542,false,textDocument/didOpen,,2251 +2557509,false,textDocument/didOpen,,2250 +2386097,false,textDocument/didOpen,,2253 +157,false,textDocument/completion,128, +2444908,false,textDocument/didOpen,,2254 +2484000,false,textDocument/didOpen,,2258 +210,false,textDocument/completion,128, +2594984,false,textDocument/didOpen,,2257 +2343781,false,textDocument/didOpen,,2256 +2505746,false,textDocument/didOpen,,2257 +181,false,textDocument/completion,128, +2505676,false,textDocument/didOpen,,2258 +2439923,false,textDocument/didOpen,,2259 +2449566,false,textDocument/didOpen,,2260 +1064932,false,textDocument/didOpen,,2262 +1039374,false,textDocument/didOpen,,2266 +96,false,textDocument/completion,82, +1229168,false,textDocument/didOpen,,2268 +1090445,false,textDocument/didOpen,,2269 +6032,false,textDocument/completion,82, +1103190,false,textDocument/didOpen,,2272 +1225712,false,textDocument/didOpen,,2271 +1184692,false,textDocument/didOpen,,2272 +1405220,false,textDocument/didOpen,,2271 +2836850,false,textDocument/didOpen,,2272 +1352432,false,textDocument/didOpen,,2274 +1088446,false,textDocument/didOpen,,2278 +2780652,false,textDocument/didOpen,,2279 +1281997,false,textDocument/didOpen,,2280 +1279096,false,textDocument/didOpen,,2281 +1175957,false,textDocument/didOpen,,2284 +1175250,false,textDocument/didOpen,,2282 +1241334,false,textDocument/didOpen,,2284 +1184748,false,textDocument/didOpen,,2285 +78,false,textDocument/completion,82, +1197745,false,textDocument/didOpen,,2288 +1207631,false,textDocument/didOpen,,2289 +1181457,false,textDocument/didOpen,,2283 +1299642,false,textDocument/didOpen,,2286 +1196419,false,textDocument/didOpen,,2284 +1238021,false,textDocument/didOpen,,2260 +1247560,false,textDocument/didOpen,,2259 +1442872,false,textDocument/didOpen,,2266 +1209650,false,textDocument/didOpen,,2264 +1241467,false,textDocument/didOpen,,2260 +1259710,false,textDocument/didOpen,,2259 +1147794,false,textDocument/didOpen,,2260 +1239296,false,textDocument/didOpen,,2261 +1365317,false,textDocument/didOpen,,2262 +1268587,false,textDocument/didOpen,,2261 +1145241,false,textDocument/didOpen,,2260 +1182788,false,textDocument/didOpen,,2259 +1367590,false,textDocument/didOpen,,2258 +1252841,false,textDocument/didOpen,,2257 +1144307,false,textDocument/didOpen,,2256 +1186108,false,textDocument/didOpen,,2263 +1506031,false,textDocument/didOpen,,2264 +1260592,false,textDocument/didOpen,,2265 +1430237,false,textDocument/didOpen,,2264 +1122749,false,textDocument/didOpen,,2263 +1183379,false,textDocument/didOpen,,2260 +1239608,false,textDocument/didOpen,,2259 +3355857,false,textDocument/didOpen,,2257 +1255284,false,textDocument/didOpen,,2258 +2886971,false,textDocument/didOpen,,2257 +2733835,false,textDocument/didOpen,,2256 +2976461,false,textDocument/didOpen,,2257 +2566927,false,textDocument/didOpen,,2256 +2688819,false,textDocument/didOpen,,2263 +2771367,false,textDocument/didOpen,,2257 +2596270,false,textDocument/didOpen,,2259 +2803857,false,textDocument/didOpen,,2260 +2773268,false,textDocument/didOpen,,2261 +2982307,false,textDocument/didOpen,,2262 +174,false,textDocument/completion,128, +1269867,false,textDocument/didOpen,,2263 +2816185,false,textDocument/didOpen,,2266 +2954518,false,textDocument/didOpen,,2267 +3301772,false,textDocument/didOpen,,2270 +8119,false,textDocument/completion,128, +3058579,false,textDocument/didOpen,,2271 +3209525,false,textDocument/didOpen,,2272 +3095546,false,textDocument/didOpen,,2273 +3281918,false,textDocument/didOpen,,2278 +3174525,false,textDocument/didOpen,,2280 +3197612,false,textDocument/didOpen,,2283 +3230718,false,textDocument/didOpen,,2284 +1446981,false,textDocument/didOpen,,2285 +3599206,false,textDocument/didOpen,,2287 +3294130,false,textDocument/didOpen,,2289 +3525916,false,textDocument/didOpen,,2290 +296,false,textDocument/completion,128, +3463451,false,textDocument/didOpen,,2292 +3041186,false,textDocument/didOpen,,2293 +3111060,false,textDocument/didOpen,,2295 +668736,false,textDocument/didOpen,,2297 +699633,false,textDocument/didOpen,,2299 +73,false,textDocument/completion,64, +666466,false,textDocument/didOpen,,2301 +619806,false,textDocument/didOpen,,2304 +3333280,false,textDocument/didOpen,,2305 +3225888,false,textDocument/didOpen,,2301 +1638502,false,textDocument/didOpen,,2300 +3150070,false,textDocument/didOpen,,2301 +3318447,false,textDocument/didOpen,,2312 +3562473,false,textDocument/didOpen,,2310 +3341658,false,textDocument/didOpen,,2308 +3141235,false,textDocument/didOpen,,2306 +3459370,false,textDocument/didOpen,,2308 +132,false,textDocument/completion,132, +3389775,false,textDocument/didOpen,,2311 +150,false,textDocument/completion,132, +3238992,false,textDocument/didOpen,,2313 +3593188,false,textDocument/didOpen,,2314 +3430608,false,textDocument/didOpen,,2315 +3242177,false,textDocument/didOpen,,2314 +3287867,false,textDocument/didOpen,,2315 +3379699,false,textDocument/didOpen,,2301 +496288,false,textDocument/didOpen,,372 +3269,false,textDocument/didOpen,,373 +62,false,textDocument/completion,3, +8168,false,textDocument/didOpen,,376 +222761,false,textDocument/didOpen,,378 +12739,false,textDocument/didOpen,,373 +405267,false,textDocument/didOpen,,374 +81,false,textDocument/completion,27, +476127,false,textDocument/didOpen,,375 +258765,false,textDocument/didOpen,,376 +472926,false,textDocument/didOpen,,381 +8508,false,textDocument/didOpen,,373 +232448,false,textDocument/didOpen,,374 +88,false,textDocument/completion,27, +423124,false,textDocument/didOpen,,376 +338787,false,textDocument/didOpen,,378 +361039,false,textDocument/didOpen,,379 +416569,false,textDocument/didOpen,,380 +138,false,textDocument/didOpen,,342 +132,false,textDocument/didOpen,,343 +163,false,textDocument/didOpen,,342 +138,false,textDocument/didOpen,,343 +204,false,textDocument/didOpen,,344 +56,false,textDocument/completion,27, +135,false,textDocument/didOpen,,345 +181,false,textDocument/didOpen,,343 +145,false,textDocument/didOpen,,342 +379,false,textDocument/didOpen,,343 +46,false,textDocument/completion,1, +625609,false,textDocument/didOpen,,347 +45964,false,textDocument/didOpen,,347 +11887,false,textDocument/didOpen,,341 +12380,false,textDocument/didOpen,,337 +33206,false,textDocument/didOpen,,336 +11882,false,textDocument/didOpen,,337 +33395,false,textDocument/didOpen,,341 +11487,false,textDocument/didOpen,,347 +121773,false,textDocument/didOpen,,2301 +97753,false,textDocument/didOpen,,2304 +94939,false,textDocument/didOpen,,2305 +86329,false,textDocument/didOpen,,2306 +96,false,textDocument/completion,132, +125870,false,textDocument/didOpen,,2307 +85482,false,textDocument/didOpen,,2308 +106,false,textDocument/completion,132, +116773,false,textDocument/didOpen,,2310 +104,false,textDocument/completion,132, +116498,false,textDocument/didOpen,,2311 +112822,false,textDocument/didOpen,,2312 +99,false,textDocument/completion,132, +166627,false,textDocument/didOpen,,2313 +153424,false,textDocument/didOpen,,2314 +146,false,textDocument/completion,132, +168289,false,textDocument/didOpen,,2315 +131,false,textDocument/completion,132, +194704,false,textDocument/didOpen,,2316 +162443,false,textDocument/didOpen,,2317 +80145,false,textDocument/didOpen,,2318 +120192,false,textDocument/didOpen,,2319 +185237,false,textDocument/didOpen,,2320 +408,false,textDocument/completion,132, +127909,false,textDocument/didOpen,,2322 +162026,false,textDocument/didOpen,,2323 +39117,false,textDocument/didOpen,,2324 +40730,false,textDocument/didOpen,,2325 +49,false,textDocument/completion,64, +68008,false,textDocument/didOpen,,2328 +54,false,textDocument/completion,64, +82773,false,textDocument/didOpen,,2329 +78615,false,textDocument/didOpen,,2331 +92,false,textDocument/completion,64, +84536,false,textDocument/didOpen,,2335 +43924,false,textDocument/didOpen,,2337 +61,false,textDocument/completion,64, +45706,false,textDocument/didOpen,,2338 +84271,false,textDocument/didOpen,,2341 +77,false,textDocument/completion,64, +88459,false,textDocument/didOpen,,2348 +97422,false,textDocument/didOpen,,2349 +50208,false,textDocument/didOpen,,2351 +32,false,textDocument/completion,64, +91708,false,textDocument/didOpen,,2352 +74181,false,textDocument/didOpen,,2354 +88699,false,textDocument/didOpen,,2356 +55279,false,textDocument/didOpen,,2357 +41,false,textDocument/completion,64, +91801,false,textDocument/didOpen,,2360 +65931,false,textDocument/didOpen,,2361 +75,false,textDocument/completion,64, +83776,false,textDocument/didOpen,,2364 +50,false,textDocument/completion,64, +84579,false,textDocument/didOpen,,2366 +36,false,textDocument/completion,64, +93335,false,textDocument/didOpen,,2367 +64312,false,textDocument/didOpen,,2368 +59,false,textDocument/completion,64, +88355,false,textDocument/didOpen,,2369 +50,false,textDocument/completion,64, +95151,false,textDocument/didOpen,,2370 +90797,false,textDocument/didOpen,,2371 +35,false,textDocument/completion,64, +58916,false,textDocument/didOpen,,2374 +45,false,textDocument/completion,64, +62393,false,textDocument/didOpen,,2379 +31,false,textDocument/completion,64, +91333,false,textDocument/didOpen,,2386 +33,false,textDocument/completion,64, +90966,false,textDocument/didOpen,,2388 +66,false,textDocument/completion,64, +99129,false,textDocument/didOpen,,2392 +321209,false,textDocument/didOpen,,2393 +316478,false,textDocument/didOpen,,2390 +317421,false,textDocument/didOpen,,2391 +1352,false,textDocument/completion,131, +339268,false,textDocument/didOpen,,2395 +341740,false,textDocument/didOpen,,2398 +324042,false,textDocument/didOpen,,2399 +355504,false,textDocument/didOpen,,2400 +70739,false,textDocument/didOpen,,2399 +78946,false,textDocument/didOpen,,2400 +32,false,textDocument/completion,64, +842,false,textDocument/didOpen,,2401 +103893,false,textDocument/didOpen,,2402 +106712,false,textDocument/didOpen,,2407 +90151,false,textDocument/didOpen,,2408 +33,false,textDocument/completion,64, +69506,false,textDocument/didOpen,,2409 +134484,false,textDocument/didOpen,,2407 +85664,false,textDocument/didOpen,,2408 +85519,false,textDocument/didOpen,,2409 +64266,false,textDocument/didOpen,,2410 +33,false,textDocument/completion,64, +68149,false,textDocument/didOpen,,2412 +403808,false,textDocument/didOpen,,2395 +399115,false,textDocument/didOpen,,2412 +401482,false,textDocument/didOpen,,2414 +451029,false,textDocument/didOpen,,2416 +375932,false,textDocument/didOpen,,2415 +414053,false,textDocument/didOpen,,2409 +417651,false,textDocument/didOpen,,2410 +428397,false,textDocument/didOpen,,2409 +433473,false,textDocument/didOpen,,2414 +441816,false,textDocument/didOpen,,2415 +423648,false,textDocument/didOpen,,2424 +270625,false,textDocument/didOpen,,2425 +218761,false,textDocument/didOpen,,2426 +226081,false,textDocument/didOpen,,2425 +415872,false,textDocument/didOpen,,2424 +248023,false,textDocument/didOpen,,2425 +187800,false,textDocument/didOpen,,2423 +227916,false,textDocument/didOpen,,2421 +192985,false,textDocument/didOpen,,2422 +235687,false,textDocument/didOpen,,2423 +220553,false,textDocument/didOpen,,2424 +236595,false,textDocument/didOpen,,2425 +194502,false,textDocument/didOpen,,2426 +239173,false,textDocument/didOpen,,2427 +213133,false,textDocument/didOpen,,2428 +289899,false,textDocument/didOpen,,2443 +193890,false,textDocument/didOpen,,2441 +233124,false,textDocument/didOpen,,2439 +195912,false,textDocument/didOpen,,2437 +257632,false,textDocument/didOpen,,2435 +190975,false,textDocument/didOpen,,2433 +304986,false,textDocument/didOpen,,2431 +483927,false,textDocument/didOpen,,2432 +537569,false,textDocument/didOpen,,2433 +519781,false,textDocument/didOpen,,2434 +538647,false,textDocument/didOpen,,2441 +569211,false,textDocument/didOpen,,2442 +91,false,textDocument/completion,131, +557016,false,textDocument/didOpen,,2443 +536080,false,textDocument/didOpen,,2448 +94,false,textDocument/completion,131, +637215,false,textDocument/didOpen,,2455 +92,false,textDocument/completion,131, +623249,false,textDocument/didOpen,,2458 +6129,false,textDocument/completion,131, +566119,false,textDocument/didOpen,,2459 +630289,false,textDocument/didOpen,,2461 +599817,false,textDocument/didOpen,,2462 +104,false,textDocument/completion,131, +629351,false,textDocument/didOpen,,2461 +586899,false,textDocument/didOpen,,2462 +147,false,textDocument/completion,131, +575150,false,textDocument/didOpen,,2463 +587206,false,textDocument/didOpen,,2464 +1543,false,textDocument/completion,131, +560361,false,textDocument/didOpen,,2466 +643069,false,textDocument/didOpen,,2468 +623493,false,textDocument/didOpen,,2469 +95,false,textDocument/completion,131, +578381,false,textDocument/didOpen,,2471 +693826,false,textDocument/didOpen,,2301 +689355,false,textDocument/didOpen,,2471 +775318,false,textDocument/didOpen,,2461 +729043,false,textDocument/didOpen,,2457 +619263,false,textDocument/didOpen,,2458 +90,false,textDocument/completion,131, +352545,false,textDocument/didOpen,,2328 +929,false,textDocument/didOpen,,2308 +620,false,textDocument/didOpen,,2307 +734884,false,textDocument/didOpen,,2302 +249,false,textDocument/didOpen,,2307 +749029,false,textDocument/didOpen,,2301 +166836,false,textDocument/didOpen,,2301 +35189,false,textDocument/didOpen,,2296 +64051,false,textDocument/didOpen,,2298 +65,false,textDocument/completion,82, +122296,false,textDocument/didOpen,,2299 +116588,false,textDocument/didOpen,,2301 +130470,false,textDocument/didOpen,,2303 +164347,false,textDocument/didOpen,,2303 +163340,false,textDocument/didOpen,,2303 +102783,false,textDocument/didOpen,,2303 +118431,false,textDocument/didOpen,,2292 +75151,false,textDocument/didOpen,,2281 +157561,false,textDocument/didOpen,,2281 +98120,false,textDocument/didOpen,,2283 +145,false,textDocument/completion,128, +120382,false,textDocument/didOpen,,2284 +78070,false,textDocument/didOpen,,2285 +129,false,textDocument/completion,128, +100105,false,textDocument/didOpen,,2286 +161,false,textDocument/completion,128, +125685,false,textDocument/didOpen,,2276 +86354,false,textDocument/didOpen,,2260 +99022,false,textDocument/didOpen,,2261 +92,false,textDocument/completion,128, +139988,false,textDocument/didOpen,,2264 +126961,false,textDocument/didOpen,,2261 +79609,false,textDocument/didOpen,,2260 +91072,false,textDocument/didOpen,,2261 +156489,false,textDocument/didOpen,,2262 +91,false,textDocument/completion,128, +175397,false,textDocument/didOpen,,2266 +164802,false,textDocument/didOpen,,2267 +186528,false,textDocument/didOpen,,2271 +157960,false,textDocument/didOpen,,2272 +247108,false,textDocument/didOpen,,2267 +212752,false,textDocument/didOpen,,2268 +143,false,textDocument/completion,128, +233733,false,textDocument/didOpen,,2270 +170,false,textDocument/completion,128, +208690,false,textDocument/didOpen,,2272 +211740,false,textDocument/didOpen,,2273 +102,false,textDocument/completion,128, +237713,false,textDocument/didOpen,,2277 +286897,false,textDocument/didOpen,,2297 +263152,false,textDocument/didOpen,,2296 +225726,false,textDocument/didOpen,,2294 +227396,false,textDocument/didOpen,,2292 +248714,false,textDocument/didOpen,,2290 +241790,false,textDocument/didOpen,,2288 +259081,false,textDocument/didOpen,,2286 +242055,false,textDocument/didOpen,,2284 +297914,false,textDocument/didOpen,,2282 +441,false,textDocument/didOpen,,2283 +125,false,textDocument/completion,128, +441,false,textDocument/didOpen,,2285 +1541,false,textDocument/didOpen,,2286 +1610,false,textDocument/didOpen,,2288 +1390,false,textDocument/didOpen,,2289 +343353,false,textDocument/didOpen,,2290 +132896,false,textDocument/didOpen,,2291 +331579,false,textDocument/didOpen,,2290 +1653,false,textDocument/didOpen,,2291 +626,false,textDocument/completion,130, +985,false,textDocument/didOpen,,2293 +651,false,textDocument/completion,130, +1590,false,textDocument/didOpen,,2294 +600,false,textDocument/didOpen,,2292 +2111,false,textDocument/didOpen,,2293 +657,false,textDocument/completion,130, +1129,false,textDocument/didOpen,,2296 +1600,false,textDocument/didOpen,,2297 +621,false,textDocument/completion,130, +1444,false,textDocument/didOpen,,2298 +340298,false,textDocument/didOpen,,2299 +258129,false,textDocument/didOpen,,2301 +121,false,textDocument/completion,118, +139567,false,textDocument/didOpen,,2302 +170230,false,textDocument/didOpen,,2303 +172520,false,textDocument/didOpen,,2304 +58,false,textDocument/completion,82, +157854,false,textDocument/didOpen,,2306 +170921,false,textDocument/didOpen,,2309 +156970,false,textDocument/didOpen,,2310 +327464,false,textDocument/didOpen,,2311 +248692,false,textDocument/didOpen,,2312 +312908,false,textDocument/didOpen,,2313 +129,false,textDocument/completion,118, +294172,false,textDocument/didOpen,,2315 +291954,false,textDocument/didOpen,,2317 +228289,false,textDocument/didOpen,,2318 +288196,false,textDocument/didOpen,,2319 +1907,false,textDocument/completion,118, +318433,false,textDocument/didOpen,,2320 +286416,false,textDocument/didOpen,,2322 +199757,false,textDocument/didOpen,,2324 +319255,false,textDocument/didOpen,,2325 +332516,false,textDocument/didOpen,,2345 +350816,false,textDocument/didOpen,,2344 +336218,false,textDocument/didOpen,,2342 +367799,false,textDocument/didOpen,,2340 +312661,false,textDocument/didOpen,,2338 +351085,false,textDocument/didOpen,,2336 +360812,false,textDocument/didOpen,,2334 +316747,false,textDocument/didOpen,,2332 +355086,false,textDocument/didOpen,,2330 +351723,false,textDocument/didOpen,,2328 +357045,false,textDocument/didOpen,,2326 +346780,false,textDocument/didOpen,,2325 +394513,false,textDocument/didOpen,,2324 +440037,false,textDocument/didOpen,,2344 +417202,false,textDocument/didOpen,,2343 +357257,false,textDocument/didOpen,,2341 +337709,false,textDocument/didOpen,,2339 +386419,false,textDocument/didOpen,,2337 +388840,false,textDocument/didOpen,,2335 +370477,false,textDocument/didOpen,,2333 +432233,false,textDocument/didOpen,,2331 +439287,false,textDocument/didOpen,,2329 +415803,false,textDocument/didOpen,,2327 +426560,false,textDocument/didOpen,,2325 +450674,false,textDocument/didOpen,,2324 +424044,false,textDocument/didOpen,,2325 +459406,false,textDocument/didOpen,,2327 +85,false,textDocument/completion,118, +245168,false,textDocument/didOpen,,2330 +59,false,textDocument/completion,82, +256546,false,textDocument/didOpen,,2332 +274234,false,textDocument/didOpen,,2336 +60,false,textDocument/completion,82, +267524,false,textDocument/didOpen,,2338 +233471,false,textDocument/didOpen,,2340 +301091,false,textDocument/didOpen,,2342 +457691,false,textDocument/didOpen,,2343 +472937,false,textDocument/didOpen,,2363 +503883,false,textDocument/didOpen,,2344 +436078,false,textDocument/didOpen,,2343 +487569,false,textDocument/didOpen,,2348 +284388,false,textDocument/didOpen,,2349 +58,false,textDocument/completion,82, +513478,false,textDocument/didOpen,,2343 +562678,false,textDocument/didOpen,,2363 +481588,false,textDocument/didOpen,,2362 +487251,false,textDocument/didOpen,,2360 +532304,false,textDocument/didOpen,,2358 +508276,false,textDocument/didOpen,,2356 +484681,false,textDocument/didOpen,,2354 +499040,false,textDocument/didOpen,,2352 +562902,false,textDocument/didOpen,,2350 +497519,false,textDocument/didOpen,,2348 +639950,false,textDocument/didOpen,,2344 +571267,false,textDocument/didOpen,,2345 +594792,false,textDocument/didOpen,,2344 +574757,false,textDocument/didOpen,,2345 +573621,false,textDocument/didOpen,,2347 +668289,false,textDocument/didOpen,,2349 +696337,false,textDocument/didOpen,,2350 +2014,false,textDocument/completion,122, +723529,false,textDocument/didOpen,,2353 +706933,false,textDocument/didOpen,,2354 +679097,false,textDocument/didOpen,,2355 +633815,false,textDocument/didOpen,,2356 +584944,false,textDocument/didOpen,,2357 +663175,false,textDocument/didOpen,,2358 +696747,false,textDocument/didOpen,,2359 +671100,false,textDocument/didOpen,,2360 +160,false,textDocument/completion,122, +708217,false,textDocument/didOpen,,2362 +730009,false,textDocument/didOpen,,2363 +731050,false,textDocument/didOpen,,2364 +703224,false,textDocument/didOpen,,2365 +399289,false,textDocument/didOpen,,2366 +470176,false,textDocument/didOpen,,2367 +405006,false,textDocument/didOpen,,2368 +405689,false,textDocument/didOpen,,2369 +402960,false,textDocument/didOpen,,2370 +508089,false,textDocument/didOpen,,2371 +61,false,textDocument/completion,82, +505517,false,textDocument/didOpen,,2372 +449604,false,textDocument/didOpen,,2374 +424456,false,textDocument/didOpen,,2375 +462003,false,textDocument/didOpen,,2376 +463647,false,textDocument/didOpen,,2377 +4178,false,textDocument/completion,82, +493516,false,textDocument/didOpen,,2378 +520636,false,textDocument/didOpen,,2377 +464070,false,textDocument/didOpen,,2378 +82,false,textDocument/completion,82, +435910,false,textDocument/didOpen,,2379 +454065,false,textDocument/didOpen,,2380 +501353,false,textDocument/didOpen,,2379 +505061,false,textDocument/didOpen,,2378 +428392,false,textDocument/didOpen,,2377 +472361,false,textDocument/didOpen,,2378 +440072,false,textDocument/didOpen,,2379 +468860,false,textDocument/didOpen,,2380 +493074,false,textDocument/didOpen,,2382 +505460,false,textDocument/didOpen,,2381 +447122,false,textDocument/didOpen,,2380 +509180,false,textDocument/didOpen,,2381 +548829,false,textDocument/didOpen,,2382 +77,false,textDocument/completion,82, +533175,false,textDocument/didOpen,,2385 +500785,false,textDocument/didOpen,,2387 +485172,false,textDocument/didOpen,,2388 +456584,false,textDocument/didOpen,,2389 +490701,false,textDocument/didOpen,,2392 +602226,false,textDocument/didOpen,,2393 +481211,false,textDocument/didOpen,,2397 +450302,false,textDocument/didOpen,,2398 +507186,false,textDocument/didOpen,,2399 +463690,false,textDocument/didOpen,,2400 +443374,false,textDocument/didOpen,,2401 +3843,false,textDocument/completion,82, +504542,false,textDocument/didOpen,,2402 +445230,false,textDocument/didOpen,,2406 +520900,false,textDocument/didOpen,,2407 +3930,false,textDocument/completion,82, +519408,false,textDocument/didOpen,,2411 +578151,false,textDocument/didOpen,,2412 +517720,false,textDocument/didOpen,,2414 +551386,false,textDocument/didOpen,,2413 +537099,false,textDocument/didOpen,,2412 +595440,false,textDocument/didOpen,,2419 +530222,false,textDocument/didOpen,,2420 +519341,false,textDocument/didOpen,,2418 +479356,false,textDocument/didOpen,,2419 +507693,false,textDocument/didOpen,,2420 +573186,false,textDocument/didOpen,,2421 +4743,false,textDocument/completion,84, +504117,false,textDocument/didOpen,,2426 +85,false,textDocument/completion,84, +488829,false,textDocument/didOpen,,2427 +472671,false,textDocument/didOpen,,2428 +582418,false,textDocument/didOpen,,2433 +537273,false,textDocument/didOpen,,2434 +86,false,textDocument/completion,84, +514635,false,textDocument/didOpen,,2436 +504015,false,textDocument/didOpen,,2438 +557124,false,textDocument/didOpen,,2441 +370,false,textDocument/didOpen,,2443 +4871,false,textDocument/completion,84, +512459,false,textDocument/didOpen,,2446 +83,false,textDocument/completion,84, +464393,false,textDocument/didOpen,,2447 +489231,false,textDocument/didOpen,,2446 +547561,false,textDocument/didOpen,,2448 +544154,false,textDocument/didOpen,,2449 +671623,false,textDocument/didOpen,,2454 +643650,false,textDocument/didOpen,,2455 +676846,false,textDocument/didOpen,,2456 +750845,false,textDocument/didOpen,,2457 +83,false,textDocument/completion,86, +647761,false,textDocument/didOpen,,2458 +652886,false,textDocument/didOpen,,2459 +657173,false,textDocument/didOpen,,2460 +719506,false,textDocument/didOpen,,2456 +714181,false,textDocument/didOpen,,2455 +817340,false,textDocument/didOpen,,2453 +717256,false,textDocument/didOpen,,2451 +702121,false,textDocument/didOpen,,2450 +698462,false,textDocument/didOpen,,2454 +717965,false,textDocument/didOpen,,2455 +718024,false,textDocument/didOpen,,2456 +346,false,textDocument/didOpen,,2457 +299,false,textDocument/didOpen,,2458 +104,false,textDocument/completion,86, +825780,false,textDocument/didOpen,,2456 +750127,false,textDocument/didOpen,,2457 +84,false,textDocument/completion,86, +723955,false,textDocument/didOpen,,2458 +847845,false,textDocument/didOpen,,2461 +44276,false,textDocument/didOpen,,2462 +538,false,textDocument/didOpen,,2463 +49,false,textDocument/completion,1, +3382,false,textDocument/didOpen,,2468 +458,false,textDocument/didOpen,,2469 +13946,false,textDocument/didOpen,,2471 +309,false,textDocument/didOpen,,2478 +25,false,textDocument/completion,1, +757441,false,textDocument/didOpen,,2479 +336,false,textDocument/didOpen,,2478 +4075,false,textDocument/didOpen,,2477 +339,false,textDocument/didOpen,,2476 +3962,false,textDocument/didOpen,,2474 +1289,false,textDocument/didOpen,,2474 +136,false,textDocument/completion,1, +788414,false,textDocument/didOpen,,2480 +828738,false,textDocument/didOpen,,2482 +771285,false,textDocument/didOpen,,2483 +784687,false,textDocument/didOpen,,2484 +4158,false,textDocument/completion,90, +778255,false,textDocument/didOpen,,2486 +714189,false,textDocument/didOpen,,2488 +4499,false,textDocument/didOpen,,2489 +333,false,textDocument/didOpen,,2490 +26,false,textDocument/completion,1, +1152,false,textDocument/didOpen,,2495 +792596,false,textDocument/didOpen,,2501 +850832,false,textDocument/didOpen,,2495 +765758,false,textDocument/didOpen,,2500 +779724,false,textDocument/didOpen,,2496 +1156,false,textDocument/didOpen,,2497 +368,false,textDocument/completion,92, +777343,false,textDocument/didOpen,,2496 +1694,false,textDocument/didOpen,,2497 +342,false,textDocument/completion,92, +321,false,textDocument/didOpen,,2498 +851963,false,textDocument/didOpen,,2496 +743809,false,textDocument/didOpen,,2495 +782869,false,textDocument/didOpen,,2499 +759382,false,textDocument/didOpen,,2500 +869749,false,textDocument/didOpen,,2501 +1023117,false,textDocument/didOpen,,2506 +757481,false,textDocument/didOpen,,2507 +832276,false,textDocument/didOpen,,2505 +783828,false,textDocument/didOpen,,2506 +66,false,textDocument/completion,92, +868868,false,textDocument/didOpen,,2511 +730758,false,textDocument/didOpen,,2517 +919652,false,textDocument/didOpen,,2523 +66,false,textDocument/completion,92, +812212,false,textDocument/didOpen,,2525 +828943,false,textDocument/didOpen,,2527 +755485,false,textDocument/didOpen,,2528 +732257,false,textDocument/didOpen,,2529 +853973,false,textDocument/didOpen,,2530 +840770,false,textDocument/didOpen,,2533 +59,false,textDocument/completion,92, +848039,false,textDocument/didOpen,,2536 +826773,false,textDocument/didOpen,,2537 +816972,false,textDocument/didOpen,,2538 +744068,false,textDocument/didOpen,,2539 +879573,false,textDocument/didOpen,,2543 +849974,false,textDocument/didOpen,,2544 +813881,false,textDocument/didOpen,,2545 +871667,false,textDocument/didOpen,,2544 +812513,false,textDocument/didOpen,,2545 +79,false,textDocument/completion,92, +791648,false,textDocument/didOpen,,2546 +829996,false,textDocument/didOpen,,2547 +783147,false,textDocument/didOpen,,2549 +851207,false,textDocument/didOpen,,2550 +852311,false,textDocument/didOpen,,2551 +810609,false,textDocument/didOpen,,2552 +907195,false,textDocument/didOpen,,2554 +867965,false,textDocument/didOpen,,2556 +847915,false,textDocument/didOpen,,2557 +59,false,textDocument/completion,92, +900964,false,textDocument/didOpen,,2563 +788738,false,textDocument/didOpen,,2564 +842695,false,textDocument/didOpen,,2566 +948845,false,textDocument/didOpen,,2565 +841540,false,textDocument/didOpen,,2564 +930065,false,textDocument/didOpen,,2565 +879802,false,textDocument/didOpen,,2566 +893416,false,textDocument/didOpen,,2567 +72,false,textDocument/completion,92, +795089,false,textDocument/didOpen,,2575 +902751,false,textDocument/didOpen,,2582 +823812,false,textDocument/didOpen,,2583 +913034,false,textDocument/didOpen,,2582 +803047,false,textDocument/didOpen,,2583 +905841,false,textDocument/didOpen,,2582 +823705,false,textDocument/didOpen,,2581 +854972,false,textDocument/didOpen,,2580 +954038,false,textDocument/didOpen,,2581 +824813,false,textDocument/didOpen,,2580 +886587,false,textDocument/didOpen,,2581 +902028,false,textDocument/didOpen,,2546 +807937,false,textDocument/didOpen,,2547 +1089634,false,textDocument/didOpen,,2548 +62,false,textDocument/completion,92, +849257,false,textDocument/didOpen,,2551 +1010217,false,textDocument/didOpen,,2552 +855452,false,textDocument/didOpen,,2553 +848832,false,textDocument/didOpen,,2552 +989514,false,textDocument/didOpen,,2551 +1006074,false,textDocument/didOpen,,2549 +860648,false,textDocument/didOpen,,2547 +880307,false,textDocument/didOpen,,2548 +104,false,textDocument/completion,92, +1002094,false,textDocument/didOpen,,2551 +880813,false,textDocument/didOpen,,2553 +964636,false,textDocument/didOpen,,2563 +839229,false,textDocument/didOpen,,2567 +969342,false,textDocument/didOpen,,2568 +845186,false,textDocument/didOpen,,2569 +1002806,false,textDocument/didOpen,,2568 +963963,false,textDocument/didOpen,,2569 +1008821,false,textDocument/didOpen,,2568 +939828,false,textDocument/didOpen,,2569 +1041243,false,textDocument/didOpen,,2568 +1059799,false,textDocument/didOpen,,2569 +1716,false,textDocument/didOpen,,2565 +1855,false,textDocument/didOpen,,2564 +1881,false,textDocument/didOpen,,2565 +1885,false,textDocument/didOpen,,2566 +1805,false,textDocument/didOpen,,2568 +1840,false,textDocument/didOpen,,2567 +541,false,textDocument/didOpen,,2568 +1218,false,textDocument/didOpen,,2569 +237,false,textDocument/completion,92, +1299,false,textDocument/didOpen,,2571 +1851,false,textDocument/didOpen,,2569 +1833,false,textDocument/didOpen,,2568 +933,false,textDocument/didOpen,,2570 +306,false,textDocument/completion,92, +1379,false,textDocument/didOpen,,2571 +1848,false,textDocument/didOpen,,2575 +328,false,textDocument/completion,92, +1878,false,textDocument/didOpen,,2579 +1662,false,textDocument/didOpen,,2580 +1091542,false,textDocument/didOpen,,2581 +849376,false,textDocument/didOpen,,2582 +1945,false,textDocument/didOpen,,2579 +1645,false,textDocument/didOpen,,2580 +1717,false,textDocument/didOpen,,2579 +462,false,textDocument/didOpen,,2580 +1275,false,textDocument/didOpen,,2581 +211,false,textDocument/completion,92, +1895,false,textDocument/didOpen,,2587 +1781,false,textDocument/didOpen,,2588 +1929,false,textDocument/didOpen,,2589 +905,false,textDocument/didOpen,,2590 +154,false,textDocument/completion,92, +1750,false,textDocument/didOpen,,2592 +283,false,textDocument/completion,92, +1825,false,textDocument/didOpen,,2593 +603821,false,textDocument/didOpen,,2594 +628966,false,textDocument/didOpen,,2595 +79,false,textDocument/completion,76, +487613,false,textDocument/didOpen,,2603 +63,false,textDocument/completion,76, +521763,false,textDocument/didOpen,,2611 +59,false,textDocument/completion,76, +479282,false,textDocument/didOpen,,2615 +595829,false,textDocument/didOpen,,2616 +62,false,textDocument/completion,76, +423848,false,textDocument/didOpen,,2617 +462783,false,textDocument/didOpen,,2619 +489587,false,textDocument/didOpen,,2620 +58,false,textDocument/completion,76, +523369,false,textDocument/didOpen,,2624 +61,false,textDocument/completion,76, +476679,false,textDocument/didOpen,,2625 +456647,false,textDocument/didOpen,,2626 +497631,false,textDocument/didOpen,,2627 +60,false,textDocument/completion,76, +529404,false,textDocument/didOpen,,2628 +464027,false,textDocument/didOpen,,2630 +432322,false,textDocument/didOpen,,2631 +1639,false,textDocument/didOpen,,2632 +1864,false,textDocument/didOpen,,2633 +2049,false,textDocument/didOpen,,2653 +1830,false,textDocument/didOpen,,2652 +1774,false,textDocument/didOpen,,2650 +1905,false,textDocument/didOpen,,2648 +1909,false,textDocument/didOpen,,2634 +1826,false,textDocument/didOpen,,2633 +424,false,textDocument/didOpen,,2638 +1842,false,textDocument/didOpen,,2639 +560,false,textDocument/didOpen,,2640 +2201,false,textDocument/didOpen,,2639 +1721,false,textDocument/didOpen,,2646 +1910,false,textDocument/didOpen,,2642 +1844,false,textDocument/didOpen,,2643 +1710,false,textDocument/didOpen,,2642 +1795,false,textDocument/didOpen,,2649 +1754,false,textDocument/didOpen,,2656 +1938,false,textDocument/didOpen,,2654 +1811,false,textDocument/didOpen,,2655 +1948,false,textDocument/didOpen,,2656 +1862,false,textDocument/didOpen,,2652 +1835,false,textDocument/didOpen,,2653 +1915,false,textDocument/didOpen,,2654 +1951,false,textDocument/didOpen,,2655 +1928,false,textDocument/didOpen,,2656 +2145,false,textDocument/didOpen,,2657 +2386,false,textDocument/didOpen,,2658 +204,false,textDocument/completion,76, +1563,false,textDocument/didOpen,,2660 +1355,false,textDocument/didOpen,,2662 +609,false,textDocument/didOpen,,2663 +1993,false,textDocument/didOpen,,2662 +1913,false,textDocument/didOpen,,2663 +1768,false,textDocument/didOpen,,2664 +1809,false,textDocument/didOpen,,2665 +2066,false,textDocument/didOpen,,2653 +1116,false,textDocument/didOpen,,2652 +892,false,textDocument/didOpen,,2651 +923,false,textDocument/didOpen,,2652 +619984,false,textDocument/didOpen,,2653 +593925,false,textDocument/didOpen,,2656 +432501,false,textDocument/didOpen,,2657 +74,false,textDocument/completion,76, +419421,false,textDocument/didOpen,,2659 +333,false,textDocument/didOpen,,2670 +918,false,textDocument/didOpen,,2671 +907,false,textDocument/didOpen,,2676 +908,false,textDocument/didOpen,,2674 +277,false,textDocument/didOpen,,2672 +901,false,textDocument/didOpen,,2671 +914,false,textDocument/didOpen,,2676 +928,false,textDocument/didOpen,,2677 +295,false,textDocument/didOpen,,2679 +64,false,textDocument/completion,76, +938,false,textDocument/didOpen,,2680 +935,false,textDocument/didOpen,,2681 +909,false,textDocument/didOpen,,2683 +329,false,textDocument/completion,76, +963,false,textDocument/didOpen,,2685 +298,false,textDocument/didOpen,,2692 +911,false,textDocument/didOpen,,2693 +913,false,textDocument/didOpen,,2694 +655,false,textDocument/didOpen,,2695 +184,false,textDocument/completion,76, +1047,false,textDocument/didOpen,,2700 +917,false,textDocument/didOpen,,2701 +845,false,textDocument/didOpen,,2702 +913,false,textDocument/didOpen,,2703 +225,false,textDocument/didOpen,,2689 +233,false,textDocument/didOpen,,2690 +59,false,textDocument/completion,76, +916,false,textDocument/didOpen,,2692 +941,false,textDocument/didOpen,,2693 +1236,false,textDocument/didOpen,,2694 +152,false,textDocument/completion,76, +1012,false,textDocument/didOpen,,2695 +290,false,textDocument/completion,76, +943,false,textDocument/didOpen,,2696 +269,false,textDocument/completion,76, +271,false,textDocument/didOpen,,2697 +92,false,textDocument/completion,76, +256,false,textDocument/didOpen,,2698 +70,false,textDocument/completion,76, +1012,false,textDocument/didOpen,,2699 +269,false,textDocument/completion,76, +1137,false,textDocument/didOpen,,2700 +282,false,textDocument/completion,76, +242,false,textDocument/didOpen,,2701 +77,false,textDocument/completion,76, +935,false,textDocument/didOpen,,2710 +907,false,textDocument/didOpen,,2708 +961,false,textDocument/didOpen,,2709 +256,false,textDocument/completion,76, +928,false,textDocument/didOpen,,2710 +1482,false,textDocument/didOpen,,2712 +340,false,textDocument/completion,76, +911,false,textDocument/didOpen,,2719 +907,false,textDocument/didOpen,,2720 +928,false,textDocument/didOpen,,2721 +920,false,textDocument/didOpen,,2722 +268,false,textDocument/completion,76, +1053,false,textDocument/didOpen,,2724 +914,false,textDocument/didOpen,,2727 +1070,false,textDocument/didOpen,,2728 +915,false,textDocument/didOpen,,2732 +936,false,textDocument/didOpen,,2729 +1425,false,textDocument/didOpen,,2730 +275,false,textDocument/completion,76, +1048,false,textDocument/didOpen,,2731 +761,false,textDocument/didOpen,,2733 +181,false,textDocument/completion,76, +929,false,textDocument/didOpen,,2732 +919,false,textDocument/didOpen,,2731 +934,false,textDocument/didOpen,,2729 +253,false,textDocument/didOpen,,2730 +62,false,textDocument/completion,76, +922,false,textDocument/didOpen,,2731 +424,false,textDocument/didOpen,,2733 +1033,false,textDocument/didOpen,,2734 +1057,false,textDocument/didOpen,,2735 +650,false,textDocument/didOpen,,2739 +970,false,textDocument/didOpen,,2740 +273,false,textDocument/completion,76, +950,false,textDocument/didOpen,,2742 +917,false,textDocument/didOpen,,2743 +963,false,textDocument/didOpen,,2744 +269,false,textDocument/completion,76, +494,false,textDocument/didOpen,,2743 +980,false,textDocument/didOpen,,2742 +939,false,textDocument/didOpen,,2732 +783,false,textDocument/didOpen,,2733 +184,false,textDocument/completion,76, +955,false,textDocument/didOpen,,2734 +252,false,textDocument/completion,76, +240,false,textDocument/didOpen,,2735 +63,false,textDocument/completion,76, +865,false,textDocument/didOpen,,2736 +257,false,textDocument/completion,76, +928,false,textDocument/didOpen,,2728 +935,false,textDocument/didOpen,,2729 +260,false,textDocument/completion,76, +222,false,textDocument/didOpen,,2731 +1431,false,textDocument/didOpen,,2732 +939,false,textDocument/didOpen,,2728 +937,false,textDocument/didOpen,,2736 +919,false,textDocument/didOpen,,2735 +947,false,textDocument/didOpen,,2737 +267,false,textDocument/completion,76, +367,false,textDocument/didOpen,,2743 +93,false,textDocument/completion,76, +648,false,textDocument/didOpen,,2745 +141,false,textDocument/completion,76, +914,false,textDocument/didOpen,,2746 +257,false,textDocument/completion,76, +1011,false,textDocument/didOpen,,2755 +935,false,textDocument/didOpen,,2753 +920,false,textDocument/didOpen,,2754 +724,false,textDocument/didOpen,,2755 +197,false,textDocument/completion,76, +250,false,textDocument/didOpen,,2756 +67,false,textDocument/completion,76, +920,false,textDocument/didOpen,,2754 +914,false,textDocument/didOpen,,2762 +1001,false,textDocument/didOpen,,2763 +566,false,textDocument/didOpen,,2764 +48,false,textDocument/completion,76, +300,false,textDocument/didOpen,,2765 +276,false,textDocument/didOpen,,2767 +146,false,textDocument/didOpen,,2768 +68,false,textDocument/completion,76, +332,false,textDocument/didOpen,,2770 +241,false,textDocument/didOpen,,2772 +114,false,textDocument/completion,76, +303,false,textDocument/didOpen,,2773 +194,false,textDocument/completion,76, +951,false,textDocument/didOpen,,2776 +624558,false,textDocument/didOpen,,2777 +601156,false,textDocument/didOpen,,2778 +533448,false,textDocument/didOpen,,2779 +278,false,textDocument/didOpen,,2780 +707,false,textDocument/didOpen,,2781 +713,false,textDocument/didOpen,,2782 +189,false,textDocument/didOpen,,2783 +63,false,textDocument/completion,21, +783,false,textDocument/didOpen,,2785 +785,false,textDocument/didOpen,,2786 +596,false,textDocument/didOpen,,2788 +788,false,textDocument/didOpen,,2789 +606,false,textDocument/didOpen,,2788 +513,false,textDocument/didOpen,,2789 +140,false,textDocument/completion,21, +786,false,textDocument/didOpen,,2793 +798,false,textDocument/didOpen,,2794 +448,false,textDocument/didOpen,,2795 +296,false,textDocument/didOpen,,2788 +719,false,textDocument/didOpen,,2789 +157,false,textDocument/completion,21, +821,false,textDocument/didOpen,,2792 +828,false,textDocument/didOpen,,2793 +524,false,textDocument/didOpen,,2795 +141,false,textDocument/completion,21, +550,false,textDocument/didOpen,,2797 +825,false,textDocument/didOpen,,2798 +797,false,textDocument/didOpen,,2799 +274,false,textDocument/completion,21, +928,false,textDocument/didOpen,,2801 +834,false,textDocument/didOpen,,2802 +806,false,textDocument/didOpen,,2803 +316,false,textDocument/didOpen,,2804 +803,false,textDocument/didOpen,,2807 +841,false,textDocument/didOpen,,2808 +809,false,textDocument/didOpen,,2811 +269,false,textDocument/completion,21, +812,false,textDocument/didOpen,,2812 +849,false,textDocument/didOpen,,2813 +254,false,textDocument/completion,21, +800,false,textDocument/didOpen,,2814 +824,false,textDocument/didOpen,,2817 +433,false,textDocument/didOpen,,2819 +140,false,textDocument/completion,21, +812,false,textDocument/didOpen,,2821 +907,false,textDocument/didOpen,,2824 +852,false,textDocument/didOpen,,2825 +1127,false,textDocument/didOpen,,2826 +1000,false,textDocument/didOpen,,2829 +595,false,textDocument/didOpen,,2830 +885,false,textDocument/didOpen,,2831 +859,false,textDocument/didOpen,,2832 +267,false,textDocument/completion,21, +891,false,textDocument/didOpen,,2835 +267,false,textDocument/completion,21, +822,false,textDocument/didOpen,,2836 +1212,false,textDocument/didOpen,,2837 +202,false,textDocument/didOpen,,2836 +833,false,textDocument/didOpen,,2835 +860,false,textDocument/didOpen,,2834 +881,false,textDocument/didOpen,,2833 +850,false,textDocument/didOpen,,2831 +813,false,textDocument/didOpen,,2832 +269,false,textDocument/completion,21, +876,false,textDocument/didOpen,,2835 +1038,false,textDocument/didOpen,,2837 +287,false,textDocument/completion,21, +896,false,textDocument/didOpen,,2839 +1402,false,textDocument/didOpen,,2841 +819,false,textDocument/didOpen,,2842 +829,false,textDocument/didOpen,,2847 +321,false,textDocument/completion,21, +821,false,textDocument/didOpen,,2849 +938,false,textDocument/didOpen,,2850 +839,false,textDocument/didOpen,,2852 +889,false,textDocument/didOpen,,2826 +1119,false,textDocument/didOpen,,2762 +969,false,textDocument/didOpen,,2752 +974,false,textDocument/didOpen,,2759 +390,false,textDocument/didOpen,,2760 +114,false,textDocument/completion,21, +966,false,textDocument/didOpen,,2764 +298,false,textDocument/didOpen,,2761 +1066,false,textDocument/didOpen,,2762 +262,false,textDocument/completion,21, +968,false,textDocument/didOpen,,2763 +1192,false,textDocument/didOpen,,2765 +217,false,textDocument/didOpen,,2766 +60,false,textDocument/completion,21, +935,false,textDocument/didOpen,,2768 +833,false,textDocument/didOpen,,2770 +1015,false,textDocument/didOpen,,2771 +1449,false,textDocument/didOpen,,2773 +305,false,textDocument/completion,21, +943,false,textDocument/didOpen,,2774 +265,false,textDocument/completion,21, +990,false,textDocument/didOpen,,2775 +273,false,textDocument/completion,21, +910,false,textDocument/didOpen,,2777 +266,false,textDocument/completion,21, +914,false,textDocument/didOpen,,2778 +260,false,textDocument/completion,21, +904,false,textDocument/didOpen,,2779 +938,false,textDocument/didOpen,,2780 +1125,false,textDocument/didOpen,,2781 +935,false,textDocument/didOpen,,2786 +1059,false,textDocument/didOpen,,2787 +968,false,textDocument/didOpen,,2788 +928,false,textDocument/didOpen,,2781 +925,false,textDocument/didOpen,,2783 +302,false,textDocument/completion,21, +970,false,textDocument/didOpen,,2784 +1046,false,textDocument/didOpen,,2772 +1012,false,textDocument/didOpen,,2779 +1008,false,textDocument/didOpen,,2777 +1016,false,textDocument/didOpen,,2773 +1021,false,textDocument/didOpen,,2744 +914,false,textDocument/didOpen,,2743 +999,false,textDocument/didOpen,,2744 +257,false,textDocument/completion,21, +947,false,textDocument/didOpen,,2745 +1017,false,textDocument/didOpen,,2746 +934,false,textDocument/didOpen,,2737 +693,false,textDocument/didOpen,,2728 +770,false,textDocument/didOpen,,2729 +230,false,textDocument/completion,21, +1069,false,textDocument/didOpen,,2730 +949,false,textDocument/didOpen,,2732 +923,false,textDocument/didOpen,,2741 +262,false,textDocument/didOpen,,2737 +940,false,textDocument/didOpen,,2733 +1032,false,textDocument/didOpen,,2729 +922,false,textDocument/didOpen,,2727 +990,false,textDocument/didOpen,,2721 +862,false,textDocument/didOpen,,2722 +270,false,textDocument/completion,21, +916,false,textDocument/didOpen,,2724 +979,false,textDocument/didOpen,,2725 +916,false,textDocument/didOpen,,2724 +939,false,textDocument/didOpen,,2725 +270,false,textDocument/completion,21, +566,false,textDocument/didOpen,,2727 +916,false,textDocument/didOpen,,2728 +709,false,textDocument/didOpen,,2730 +924,false,textDocument/didOpen,,2731 +1716,false,textDocument/didOpen,,2732 +365,false,textDocument/completion,21, +962,false,textDocument/didOpen,,2733 +918,false,textDocument/didOpen,,2734 +985,false,textDocument/didOpen,,2733 +221,false,textDocument/didOpen,,2734 +61,false,textDocument/completion,21, +832,false,textDocument/didOpen,,2735 +916,false,textDocument/didOpen,,2737 +934,false,textDocument/didOpen,,2738 +356,false,textDocument/completion,21, +247,false,textDocument/didOpen,,2739 +912,false,textDocument/didOpen,,2738 +1128,false,textDocument/didOpen,,2737 +958,false,textDocument/didOpen,,2738 +954,false,textDocument/didOpen,,2740 +380,false,textDocument/completion,21, +1543,false,textDocument/didOpen,,2741 +873,false,textDocument/didOpen,,2745 +318,false,textDocument/completion,21, +1485,false,textDocument/didOpen,,2747 +1381,false,textDocument/didOpen,,2749 +961,false,textDocument/didOpen,,2750 +351,false,textDocument/completion,21, +964,false,textDocument/didOpen,,2755 +941,false,textDocument/didOpen,,2758 +914,false,textDocument/didOpen,,2759 +921,false,textDocument/didOpen,,2758 +999,false,textDocument/didOpen,,2759 +938,false,textDocument/didOpen,,2761 +267,false,textDocument/completion,21, +941,false,textDocument/didOpen,,2762 +1005,false,textDocument/didOpen,,2763 +1486,false,textDocument/didOpen,,2764 +930,false,textDocument/didOpen,,2765 +1010,false,textDocument/didOpen,,2766 +672,false,textDocument/didOpen,,2768 +231,false,textDocument/completion,21, +412,false,textDocument/didOpen,,2774 +151,false,textDocument/completion,21, +1030,false,textDocument/didOpen,,2775 +1452,false,textDocument/didOpen,,2777 +970,false,textDocument/didOpen,,2784 +925,false,textDocument/didOpen,,2782 +991,false,textDocument/didOpen,,2780 +1024,false,textDocument/didOpen,,2778 +944,false,textDocument/didOpen,,2777 +667,false,textDocument/didOpen,,2778 +195,false,textDocument/completion,21, +1008,false,textDocument/didOpen,,2777 +931,false,textDocument/didOpen,,2778 +930,false,textDocument/didOpen,,2785 +934,false,textDocument/didOpen,,2786 +930,false,textDocument/didOpen,,2784 +989,false,textDocument/didOpen,,2782 +949,false,textDocument/didOpen,,2783 +359,false,textDocument/completion,21, +967,false,textDocument/didOpen,,2788 +990,false,textDocument/didOpen,,2793 +902,false,textDocument/didOpen,,2798 +900,false,textDocument/didOpen,,2799 +981,false,textDocument/didOpen,,2800 +1000,false,textDocument/didOpen,,2801 +1661,false,textDocument/didOpen,,2802 +1866,false,textDocument/didOpen,,2801 +2158,false,textDocument/didOpen,,2800 +1933,false,textDocument/didOpen,,2799 +1883,false,textDocument/didOpen,,2798 +2216,false,textDocument/didOpen,,2797 +2267,false,textDocument/didOpen,,2798 +2208,false,textDocument/didOpen,,2797 +2101,false,textDocument/didOpen,,2800 +1437,false,textDocument/didOpen,,2801 +1188025,false,textDocument/didOpen,,2802 +59,false,textDocument/completion,92, +980460,false,textDocument/didOpen,,2805 +1068215,false,textDocument/didOpen,,2807 +1181426,false,textDocument/didOpen,,2806 +990904,false,textDocument/didOpen,,2807 +64,false,textDocument/completion,92, +1174542,false,textDocument/didOpen,,2808 +61,false,textDocument/completion,92, +991187,false,textDocument/didOpen,,2809 +1049136,false,textDocument/didOpen,,2811 +1038171,false,textDocument/didOpen,,2812 +1130144,false,textDocument/didOpen,,2815 +1013494,false,textDocument/didOpen,,2816 +1126108,false,textDocument/didOpen,,2819 +1118348,false,textDocument/didOpen,,2820 +1131176,false,textDocument/didOpen,,2821 +988606,false,textDocument/didOpen,,2822 +5810,false,textDocument/completion,92, +1037750,false,textDocument/didOpen,,2823 +930751,false,textDocument/didOpen,,2825 +1082054,false,textDocument/didOpen,,2826 +960029,false,textDocument/didOpen,,2827 +1122382,false,textDocument/didOpen,,2828 +1070368,false,textDocument/didOpen,,2829 +61,false,textDocument/completion,92, +1099656,false,textDocument/didOpen,,2831 +1085360,false,textDocument/didOpen,,2832 +489256,false,textDocument/didOpen,,2833 +468514,false,textDocument/didOpen,,2834 +87,false,textDocument/completion,74, +472335,false,textDocument/didOpen,,2835 +573523,false,textDocument/didOpen,,2837 +462159,false,textDocument/didOpen,,2838 +35,false,textDocument/completion,74, +475245,false,textDocument/didOpen,,2842 +467285,false,textDocument/didOpen,,2841 +532537,false,textDocument/didOpen,,2840 +540760,false,textDocument/didOpen,,2838 +462607,false,textDocument/didOpen,,2837 +487893,false,textDocument/didOpen,,2838 +37,false,textDocument/completion,74, +501846,false,textDocument/didOpen,,2839 +501778,false,textDocument/didOpen,,2842 +608592,false,textDocument/didOpen,,2846 +35,false,textDocument/completion,74, +467235,false,textDocument/didOpen,,2847 +467785,false,textDocument/didOpen,,2848 +470821,false,textDocument/didOpen,,2849 +561868,false,textDocument/didOpen,,2850 +511249,false,textDocument/didOpen,,2851 +515014,false,textDocument/didOpen,,2853 +475241,false,textDocument/didOpen,,2854 +36,false,textDocument/completion,74, +531353,false,textDocument/didOpen,,2859 +581150,false,textDocument/didOpen,,2860 +520699,false,textDocument/didOpen,,2862 +43,false,textDocument/completion,74, +493044,false,textDocument/didOpen,,2865 +488346,false,textDocument/didOpen,,2866 +479605,false,textDocument/didOpen,,2867 +572736,false,textDocument/didOpen,,2870 +476934,false,textDocument/didOpen,,2871 +482463,false,textDocument/didOpen,,2872 +500470,false,textDocument/didOpen,,2923 +532929,false,textDocument/didOpen,,2922 +626992,false,textDocument/didOpen,,2932 +613993,false,textDocument/didOpen,,2923 +541146,false,textDocument/didOpen,,3000 +264185,false,textDocument/didOpen,,347 +711238,false,textDocument/didOpen,,3001 +480612,false,textDocument/didOpen,,3002 +41,false,textDocument/completion,74, +477283,false,textDocument/didOpen,,3001 +521631,false,textDocument/didOpen,,3003 +636683,false,textDocument/didOpen,,3004 +606513,false,textDocument/didOpen,,3005 +554553,false,textDocument/didOpen,,3006 +36,false,textDocument/completion,74, +553338,false,textDocument/didOpen,,3007 +695815,false,textDocument/didOpen,,3009 +550859,false,textDocument/didOpen,,3010 +536177,false,textDocument/didOpen,,3014 +508199,false,textDocument/didOpen,,3015 +531737,false,textDocument/didOpen,,3016 +624925,false,textDocument/didOpen,,3017 +488472,false,textDocument/didOpen,,3018 +502018,false,textDocument/didOpen,,3017 +530744,false,textDocument/didOpen,,3018 +618680,false,textDocument/didOpen,,3019 +508058,false,textDocument/didOpen,,3020 +34,false,textDocument/completion,74, +493482,false,textDocument/didOpen,,3023 +614766,false,textDocument/didOpen,,3024 +37,false,textDocument/completion,74, +531352,false,textDocument/didOpen,,3025 +564854,false,textDocument/didOpen,,3026 +531787,false,textDocument/didOpen,,3028 +650800,false,textDocument/didOpen,,3029 +579858,false,textDocument/didOpen,,3028 +558629,false,textDocument/didOpen,,3027 +486087,false,textDocument/didOpen,,3026 +560466,false,textDocument/didOpen,,3022 +594080,false,textDocument/didOpen,,3023 +556697,false,textDocument/didOpen,,3025 +37,false,textDocument/completion,74, +673711,false,textDocument/didOpen,,3027 +480741,false,textDocument/didOpen,,3028 +541090,false,textDocument/didOpen,,3035 +707514,false,textDocument/didOpen,,3034 +568794,false,textDocument/didOpen,,3035 +650332,false,textDocument/didOpen,,3034 +562103,false,textDocument/didOpen,,3032 +515071,false,textDocument/didOpen,,3031 +773900,false,textDocument/didOpen,,3032 +49,false,textDocument/completion,74, +541799,false,textDocument/didOpen,,3033 +494563,false,textDocument/didOpen,,3035 +635451,false,textDocument/didOpen,,3000 +576589,false,textDocument/didOpen,,3035 +722947,false,textDocument/didOpen,,2962 +621530,false,textDocument/didOpen,,2961 +584443,false,textDocument/didOpen,,2957 +585455,false,textDocument/didOpen,,2967 +644677,false,textDocument/didOpen,,2964 +541097,false,textDocument/didOpen,,2962 +593998,false,textDocument/didOpen,,2963 +51,false,textDocument/completion,74, +583122,false,textDocument/didOpen,,2964 +661825,false,textDocument/didOpen,,2967 +622344,false,textDocument/didOpen,,2968 +541724,false,textDocument/didOpen,,2966 +581632,false,textDocument/didOpen,,2967 +749435,false,textDocument/didOpen,,2969 +523898,false,textDocument/didOpen,,2968 +541878,false,textDocument/didOpen,,2967 +481552,false,textDocument/didOpen,,2968 +645769,false,textDocument/didOpen,,2969 +703246,false,textDocument/didOpen,,2936 +564676,false,textDocument/didOpen,,2937 +66,false,textDocument/completion,74, +752922,false,textDocument/didOpen,,2938 +595732,false,textDocument/didOpen,,2941 +582205,false,textDocument/didOpen,,2942 +599173,false,textDocument/didOpen,,2936 +611348,false,textDocument/didOpen,,2969 +591790,false,textDocument/didOpen,,2970 +39,false,textDocument/completion,74, +606319,false,textDocument/didOpen,,2985 +775007,false,textDocument/didOpen,,2986 +68,false,textDocument/completion,74, +613172,false,textDocument/didOpen,,2987 +608704,false,textDocument/didOpen,,2989 +536028,false,textDocument/didOpen,,2990 +677773,false,textDocument/didOpen,,2957 +593181,false,textDocument/didOpen,,2958 +36,false,textDocument/completion,74, +640003,false,textDocument/didOpen,,2963 +647365,false,textDocument/didOpen,,2964 +603471,false,textDocument/didOpen,,2966 +527240,false,textDocument/didOpen,,2967 +627089,false,textDocument/didOpen,,2911 +586530,false,textDocument/didOpen,,2967 +763590,false,textDocument/didOpen,,2961 +540681,false,textDocument/didOpen,,2955 +649240,false,textDocument/didOpen,,2899 +593805,false,textDocument/didOpen,,2901 +35,false,textDocument/completion,74, +732318,false,textDocument/didOpen,,2906 +35,false,textDocument/completion,74, +606799,false,textDocument/didOpen,,2910 +767977,false,textDocument/didOpen,,2909 +573375,false,textDocument/didOpen,,2910 +571545,false,textDocument/didOpen,,2862 +721621,false,textDocument/didOpen,,2858 +612127,false,textDocument/didOpen,,2863 +615043,false,textDocument/didOpen,,2861 +699689,false,textDocument/didOpen,,2862 +1250474,false,textDocument/didOpen,,2829 +1337697,false,textDocument/didOpen,,2834 +1310804,false,textDocument/didOpen,,2835 +1181572,false,textDocument/didOpen,,2834 +1343923,false,textDocument/didOpen,,2836 +1242395,false,textDocument/didOpen,,2838 +1438231,false,textDocument/didOpen,,2840 +1287114,false,textDocument/didOpen,,2841 +1258596,false,textDocument/didOpen,,2842 +1263732,false,textDocument/didOpen,,2843 +1309978,false,textDocument/didOpen,,2844 +1395655,false,textDocument/didOpen,,2842 +1208912,false,textDocument/didOpen,,2843 +1421114,false,textDocument/didOpen,,2844 +1176125,false,textDocument/didOpen,,2845 +1259354,false,textDocument/didOpen,,2847 +59,false,textDocument/completion,92, +1261558,false,textDocument/didOpen,,2849 +1160269,false,textDocument/didOpen,,2850 +1335193,false,textDocument/didOpen,,2854 +1380987,false,textDocument/didOpen,,2856 +1155658,false,textDocument/didOpen,,2869 +1279394,false,textDocument/didOpen,,2870 +60,false,textDocument/completion,92, +1288097,false,textDocument/didOpen,,2901 +1151997,false,textDocument/didOpen,,2887 +1324283,false,textDocument/didOpen,,2900 +1359856,false,textDocument/didOpen,,2888 +1218334,false,textDocument/didOpen,,2878 +1488594,false,textDocument/didOpen,,2880 +59,false,textDocument/completion,92, +1398129,false,textDocument/didOpen,,2883 +1287687,false,textDocument/didOpen,,2882 +1402167,false,textDocument/didOpen,,2883 +1200416,false,textDocument/didOpen,,2873 +1325183,false,textDocument/didOpen,,2874 +7871,false,textDocument/completion,92, +1264648,false,textDocument/didOpen,,2877 +1365912,false,textDocument/didOpen,,2880 +1541619,false,textDocument/didOpen,,2870 +1341247,false,textDocument/didOpen,,2871 +1328098,false,textDocument/didOpen,,2872 +9323,false,textDocument/completion,92, +1222918,false,textDocument/didOpen,,2875 +1510636,false,textDocument/didOpen,,2877 +581,false,textDocument/didOpen,,2879 +8096,false,textDocument/completion,92, +426,false,textDocument/didOpen,,2885 +1487,false,textDocument/didOpen,,2895 +1382080,false,textDocument/didOpen,,2896 +1341946,false,textDocument/didOpen,,2893 +1392416,false,textDocument/didOpen,,2874 +1486574,false,textDocument/didOpen,,2875 +58,false,textDocument/completion,92, +1429057,false,textDocument/didOpen,,2874 +1273284,false,textDocument/didOpen,,2875 +3248393,false,textDocument/didOpen,,2876 +1203,false,textDocument/didOpen,,2877 +290,false,textDocument/completion,189, +2080,false,textDocument/didOpen,,2878 +2127,false,textDocument/didOpen,,2882 +740,false,textDocument/didOpen,,2886 +456,false,textDocument/didOpen,,2875 +1440,false,textDocument/didOpen,,2876 +304,false,textDocument/completion,189, +606,false,textDocument/didOpen,,2877 +146,false,textDocument/completion,189, +2226,false,textDocument/didOpen,,2878 +469,false,textDocument/completion,189, +1961,false,textDocument/didOpen,,2880 +470,false,textDocument/completion,189, +484,false,textDocument/didOpen,,2882 +117,false,textDocument/completion,189, +2369,false,textDocument/didOpen,,2883 +510,false,textDocument/didOpen,,2872 +1438,false,textDocument/didOpen,,2873 +905,false,textDocument/completion,189, +1812,false,textDocument/didOpen,,2878 +1797,false,textDocument/didOpen,,2879 +1932,false,textDocument/didOpen,,2880 +2022,false,textDocument/didOpen,,2888 +1891,false,textDocument/didOpen,,2892 +2217,false,textDocument/didOpen,,2893 +781,false,textDocument/didOpen,,2882 +2638,false,textDocument/didOpen,,2883 +932,false,textDocument/completion,189, +2043,false,textDocument/didOpen,,2886 +2170,false,textDocument/didOpen,,2887 +3500508,false,textDocument/didOpen,,2890 +3134021,false,textDocument/didOpen,,2874 +3173717,false,textDocument/didOpen,,2875 +3189139,false,textDocument/didOpen,,2877 +3336125,false,textDocument/didOpen,,2880 +7089,false,textDocument/completion,189, +3186646,false,textDocument/didOpen,,2881 +3161079,false,textDocument/didOpen,,2882 +3485545,false,textDocument/didOpen,,2887 +174894,false,textDocument/didOpen,,2887 +145447,false,textDocument/didOpen,,2892 +92348,false,textDocument/didOpen,,2893 +128291,false,textDocument/didOpen,,2894 +149108,false,textDocument/didOpen,,2899 +87486,false,textDocument/didOpen,,2900 +140227,false,textDocument/didOpen,,2901 +67531,false,textDocument/didOpen,,2889 +90903,false,textDocument/didOpen,,2890 +161764,false,textDocument/didOpen,,2891 +116,false,textDocument/completion,189, +194160,false,textDocument/didOpen,,2896 +221590,false,textDocument/didOpen,,2898 +167838,false,textDocument/didOpen,,2899 +244446,false,textDocument/didOpen,,2910 +241152,false,textDocument/didOpen,,2909 +239778,false,textDocument/didOpen,,2908 +257134,false,textDocument/didOpen,,2906 +1929,false,textDocument/didOpen,,2893 +356812,false,textDocument/didOpen,,2894 +103,false,textDocument/completion,189, +332643,false,textDocument/didOpen,,2899 +350075,false,textDocument/didOpen,,2900 +334140,false,textDocument/didOpen,,2901 +361358,false,textDocument/didOpen,,2902 +339471,false,textDocument/didOpen,,2903 +380500,false,textDocument/didOpen,,2905 +342709,false,textDocument/didOpen,,2909 +479529,false,textDocument/didOpen,,2908 +494118,false,textDocument/didOpen,,2907 +438101,false,textDocument/didOpen,,2908 +781,false,textDocument/completion,189, +420840,false,textDocument/didOpen,,2909 +70,false,textDocument/completion,189, +435181,false,textDocument/didOpen,,2904 +377774,false,textDocument/didOpen,,2905 +1041,false,textDocument/completion,187, +361606,false,textDocument/didOpen,,2910 +444976,false,textDocument/didOpen,,2909 +337617,false,textDocument/didOpen,,2910 +532735,false,textDocument/didOpen,,2905 +318385,false,textDocument/didOpen,,2906 +1974,false,textDocument/completion,176, +374881,false,textDocument/didOpen,,2910 +365373,false,textDocument/didOpen,,2911 +432145,false,textDocument/didOpen,,2906 +383761,false,textDocument/didOpen,,2907 +295,false,textDocument/completion,174, +314533,false,textDocument/didOpen,,2911 +384229,false,textDocument/didOpen,,2912 +430185,false,textDocument/didOpen,,2913 +405957,false,textDocument/didOpen,,2912 +154744,false,textDocument/didOpen,,2912 +124304,false,textDocument/didOpen,,2911 +101293,false,textDocument/didOpen,,2912 +115266,false,textDocument/didOpen,,2913 +134451,false,textDocument/didOpen,,2914 +162376,false,textDocument/didOpen,,2914 +168567,false,textDocument/didOpen,,2914 +111663,false,textDocument/didOpen,,2919 +70698,false,textDocument/didOpen,,2920 +115812,false,textDocument/didOpen,,2921 +127514,false,textDocument/didOpen,,2922 +136730,false,textDocument/didOpen,,2924 +1853,false,textDocument/didOpen,,2925 +74,false,textDocument/completion,1, +2201,false,textDocument/didOpen,,2926 +1560,false,textDocument/didOpen,,2927 +125,false,textDocument/completion,1, +2017,false,textDocument/didOpen,,2928 +153,false,textDocument/completion,1, +1717,false,textDocument/didOpen,,2929 +99,false,textDocument/completion,1, +1667,false,textDocument/didOpen,,2927 +1588,false,textDocument/didOpen,,2928 +120,false,textDocument/completion,1, +561,false,textDocument/didOpen,,2929 +52,false,textDocument/completion,1, +1558,false,textDocument/didOpen,,2930 +114,false,textDocument/completion,1, +1021,false,textDocument/didOpen,,2932 +151,false,textDocument/completion,1, +491,false,textDocument/didOpen,,2933 +56,false,textDocument/completion,1, +1556,false,textDocument/didOpen,,2934 +116,false,textDocument/completion,1, +1589,false,textDocument/didOpen,,2936 +120,false,textDocument/completion,1, +1577,false,textDocument/didOpen,,2934 +1604,false,textDocument/didOpen,,2935 +145,false,textDocument/completion,1, +1555,false,textDocument/didOpen,,2937 +120,false,textDocument/completion,1, +1572,false,textDocument/didOpen,,2938 +113,false,textDocument/completion,1, +1561,false,textDocument/didOpen,,2939 +111,false,textDocument/completion,1, +1593,false,textDocument/didOpen,,2940 +110,false,textDocument/completion,1, +1555,false,textDocument/didOpen,,2941 +112,false,textDocument/completion,1, +1826,false,textDocument/didOpen,,2942 +1657,false,textDocument/didOpen,,2943 +1661,false,textDocument/didOpen,,2944 +59490,false,textDocument/didOpen,,2945 +76107,false,textDocument/didOpen,,2949 +1808,false,textDocument/didOpen,,2950 +1651,false,textDocument/didOpen,,2951 +1568,false,textDocument/didOpen,,2952 +1602,false,textDocument/didOpen,,2953 +1580,false,textDocument/didOpen,,2954 +1595,false,textDocument/didOpen,,2955 +126,false,textDocument/completion,1, +1575,false,textDocument/didOpen,,2956 +1604,false,textDocument/didOpen,,2958 +1596,false,textDocument/didOpen,,2957 +1611,false,textDocument/didOpen,,2958 +117,false,textDocument/completion,1, +1920,false,textDocument/didOpen,,2959 +1731,false,textDocument/didOpen,,2960 +2048,false,textDocument/didOpen,,2961 +1609,false,textDocument/didOpen,,2962 +152,false,textDocument/completion,1, +1599,false,textDocument/didOpen,,2977 +1603,false,textDocument/didOpen,,2967 +1715,false,textDocument/didOpen,,2981 +1596,false,textDocument/didOpen,,2982 +1636,false,textDocument/didOpen,,2987 +1667,false,textDocument/didOpen,,2988 +1611,false,textDocument/didOpen,,2989 +411,false,textDocument/didOpen,,2990 +1642,false,textDocument/didOpen,,2989 +131878,false,textDocument/didOpen,,2990 +164792,false,textDocument/didOpen,,2993 +151938,false,textDocument/didOpen,,2991 +197365,false,textDocument/didOpen,,2984 +741,false,textDocument/didOpen,,2985 +183,false,textDocument/completion,186, +2242,false,textDocument/didOpen,,2990 +267445,false,textDocument/didOpen,,2997 +216873,false,textDocument/didOpen,,3004 +237204,false,textDocument/didOpen,,3006 +212382,false,textDocument/didOpen,,3007 +309642,false,textDocument/didOpen,,3000 +255492,false,textDocument/didOpen,,2999 +288194,false,textDocument/didOpen,,3004 +307744,false,textDocument/didOpen,,3000 +294076,false,textDocument/didOpen,,2999 +331642,false,textDocument/didOpen,,3000 +327905,false,textDocument/didOpen,,3005 +153448,false,textDocument/didOpen,,3006 +342678,false,textDocument/didOpen,,3007 +580,false,textDocument/didOpen,,3008 +139,false,textDocument/completion,188, +2154,false,textDocument/didOpen,,3013 +363351,false,textDocument/didOpen,,3018 +321436,false,textDocument/didOpen,,3027 +378001,false,textDocument/didOpen,,3028 +372220,false,textDocument/didOpen,,3029 +348520,false,textDocument/didOpen,,3030 +421654,false,textDocument/didOpen,,3009 +2066,false,textDocument/didOpen,,3010 +933,false,textDocument/completion,188, +2051,false,textDocument/didOpen,,3011 +1913,false,textDocument/didOpen,,3012 +3177,false,textDocument/didOpen,,3013 +2006,false,textDocument/didOpen,,3026 +436296,false,textDocument/didOpen,,3027 +434531,false,textDocument/didOpen,,3026 +461385,false,textDocument/didOpen,,3031 +398448,false,textDocument/didOpen,,3032 +394023,false,textDocument/didOpen,,3033 +475546,false,textDocument/didOpen,,3032 +460935,false,textDocument/didOpen,,3033 +2021,false,textDocument/didOpen,,3032 +486626,false,textDocument/didOpen,,3039 +2171,false,textDocument/didOpen,,3038 +481124,false,textDocument/didOpen,,3045 +532000,false,textDocument/didOpen,,3046 +441010,false,textDocument/didOpen,,3047 +154,false,textDocument/completion,183, +504314,false,textDocument/didOpen,,3052 +439139,false,textDocument/didOpen,,3051 +487001,false,textDocument/didOpen,,3050 +513423,false,textDocument/didOpen,,3047 +511392,false,textDocument/didOpen,,3048 +131,false,textDocument/completion,183, +512439,false,textDocument/didOpen,,3051 +525520,false,textDocument/didOpen,,3054 +486089,false,textDocument/didOpen,,3055 +500495,false,textDocument/didOpen,,3054 +552009,false,textDocument/didOpen,,3055 +544749,false,textDocument/didOpen,,3056 +2260,false,textDocument/completion,183, +507584,false,textDocument/didOpen,,3057 +551372,false,textDocument/didOpen,,3058 +584407,false,textDocument/didOpen,,3059 +118287,false,textDocument/didOpen,,3060 +144103,false,textDocument/didOpen,,3061 +44,false,textDocument/completion,74, +111194,false,textDocument/didOpen,,3060 +136764,false,textDocument/didOpen,,3061 +36,false,textDocument/completion,74, +166554,false,textDocument/didOpen,,3060 +113378,false,textDocument/didOpen,,3061 +36,false,textDocument/completion,74, +189520,false,textDocument/didOpen,,3063 +41,false,textDocument/completion,74, +116502,false,textDocument/didOpen,,3067 +36,false,textDocument/completion,74, +142630,false,textDocument/didOpen,,3069 +44,false,textDocument/completion,74, +191993,false,textDocument/didOpen,,3072 +2756,false,textDocument/completion,74, +126952,false,textDocument/didOpen,,3073 +200969,false,textDocument/didOpen,,3077 +34,false,textDocument/completion,74, +120042,false,textDocument/didOpen,,3078 +125399,false,textDocument/didOpen,,3079 +157021,false,textDocument/didOpen,,3080 +34,false,textDocument/completion,74, +125333,false,textDocument/didOpen,,3081 +177847,false,textDocument/didOpen,,3082 +33,false,textDocument/completion,74, +138293,false,textDocument/didOpen,,3086 +35,false,textDocument/completion,74, +163892,false,textDocument/didOpen,,3087 +221357,false,textDocument/didOpen,,3088 +157852,false,textDocument/didOpen,,3087 +189234,false,textDocument/didOpen,,3084 +130128,false,textDocument/didOpen,,3082 +71,false,textDocument/completion,74, +137798,false,textDocument/didOpen,,3093 +37,false,textDocument/completion,74, +175197,false,textDocument/didOpen,,3094 +164958,false,textDocument/didOpen,,3097 +172064,false,textDocument/didOpen,,3098 +167448,false,textDocument/didOpen,,3099 +154000,false,textDocument/didOpen,,3099 +34,false,textDocument/completion,74, +166699,false,textDocument/didOpen,,3100 +137813,false,textDocument/didOpen,,3103 +34,false,textDocument/completion,74, +156719,false,textDocument/didOpen,,3104 +221654,false,textDocument/didOpen,,3105 +125970,false,textDocument/didOpen,,3106 +34,false,textDocument/completion,74, +224062,false,textDocument/didOpen,,3107 +167947,false,textDocument/didOpen,,3106 +137673,false,textDocument/didOpen,,3107 +42,false,textDocument/completion,74, +227724,false,textDocument/didOpen,,3109 +164731,false,textDocument/didOpen,,3110 +170084,false,textDocument/didOpen,,3111 +753596,false,textDocument/didOpen,,3112 +716480,false,textDocument/didOpen,,3113 +714625,false,textDocument/didOpen,,3114 +746911,false,textDocument/didOpen,,3113 +756391,false,textDocument/didOpen,,3114 +914110,false,textDocument/didOpen,,3113 +917684,false,textDocument/didOpen,,3112 +875967,false,textDocument/didOpen,,3113 +174586,false,textDocument/didOpen,,3113 +112691,false,textDocument/didOpen,,3114 +96098,false,textDocument/didOpen,,3113 +1139,false,textDocument/didOpen,,3114 +26,false,textDocument/completion,195, +2172,false,textDocument/didOpen,,3115 +89477,false,textDocument/didOpen,,3118 +16,false,textDocument/completion,124, +112299,false,textDocument/didOpen,,3121 +70847,false,textDocument/didOpen,,3122 +23,false,textDocument/completion,124, +103559,false,textDocument/didOpen,,3123 +70899,false,textDocument/didOpen,,3124 +16,false,textDocument/completion,124, +112374,false,textDocument/didOpen,,3125 +146804,false,textDocument/didOpen,,3126 +147755,false,textDocument/didOpen,,3127 +151103,false,textDocument/didOpen,,3128 +160342,false,textDocument/didOpen,,3129 +154575,false,textDocument/didOpen,,3130 +170263,false,textDocument/didOpen,,3131 +183552,false,textDocument/didOpen,,3132 +148416,false,textDocument/didOpen,,3133 +214369,false,textDocument/didOpen,,3132 +242817,false,textDocument/didOpen,,3133 +186012,false,textDocument/didOpen,,3134 +190850,false,textDocument/didOpen,,3135 +70,false,textDocument/completion,124, +267430,false,textDocument/didOpen,,3138 +268150,false,textDocument/didOpen,,3141 +252939,false,textDocument/didOpen,,3142 +211690,false,textDocument/didOpen,,3144 +213688,false,textDocument/didOpen,,3145 +250252,false,textDocument/didOpen,,3146 +264299,false,textDocument/didOpen,,3149 +288493,false,textDocument/didOpen,,3150 +488,false,textDocument/didOpen,,3114 +397,false,textDocument/didOpen,,3048 +427175,false,textDocument/didOpen,,3046 +55288,false,textDocument/didOpen,,347 +17180,false,textDocument/didOpen,,348 +17893,false,textDocument/didOpen,,349 +19747,false,textDocument/didOpen,,350 +18796,false,textDocument/didOpen,,351 +30443,false,textDocument/didOpen,,352 +66,false,textDocument/completion,11, +19255,false,textDocument/didOpen,,354 +17800,false,textDocument/didOpen,,355 +23430,false,textDocument/didOpen,,356 +105,false,textDocument/completion,11, +17457,false,textDocument/didOpen,,355 +17702,false,textDocument/didOpen,,356 +151,false,textDocument/completion,11, +16435,false,textDocument/didOpen,,357 +136,false,textDocument/completion,11, +17335,false,textDocument/didOpen,,358 +104,false,textDocument/completion,11, +18549,false,textDocument/didOpen,,359 +144,false,textDocument/completion,11, +21013,false,textDocument/didOpen,,357 +18634,false,textDocument/didOpen,,356 +21127,false,textDocument/didOpen,,357 +103,false,textDocument/completion,11, +15623,false,textDocument/didOpen,,358 +154,false,textDocument/completion,11, +17332,false,textDocument/didOpen,,358 +98,false,textDocument/completion,11, +18545,false,textDocument/didOpen,,359 +146,false,textDocument/completion,11, +10799,false,textDocument/didOpen,,361 +80,false,textDocument/completion,11, +205,false,textDocument/completion,11, +19277,false,textDocument/didOpen,,362 +93,false,textDocument/completion,11, +17206,false,textDocument/didOpen,,363 +147,false,textDocument/completion,11, +20009,false,textDocument/didOpen,,364 +156,false,textDocument/completion,11, +15525,false,textDocument/didOpen,,365 +102,false,textDocument/completion,11, +16888,false,textDocument/didOpen,,366 +153,false,textDocument/completion,11, +45243,false,textDocument/didOpen,,367 +121005,false,textDocument/didOpen,,3046 +59862,false,textDocument/didOpen,,367 +165779,false,textDocument/didOpen,,5604 +166618,false,textDocument/didOpen,,3046 +114705,false,textDocument/didOpen,,3049 +132089,false,textDocument/didOpen,,3050 +44894,false,textDocument/didOpen,,3051 +125,false,textDocument/completion,89, +73033,false,textDocument/didOpen,,3054 +68,false,textDocument/completion,89, +60817,false,textDocument/didOpen,,3055 +109,false,textDocument/completion,89, +60749,false,textDocument/didOpen,,3057 +67,false,textDocument/completion,89, +77336,false,textDocument/didOpen,,3058 +46970,false,textDocument/didOpen,,3059 +170,false,textDocument/completion,89, +59816,false,textDocument/didOpen,,3060 +93421,false,textDocument/didOpen,,3061 +71054,false,textDocument/didOpen,,3062 +73255,false,textDocument/didOpen,,3063 +73553,false,textDocument/didOpen,,3062 +86164,false,textDocument/didOpen,,3063 +107665,false,textDocument/didOpen,,3064 +58,false,textDocument/completion,89, +95762,false,textDocument/didOpen,,3065 +94567,false,textDocument/didOpen,,3067 +110608,false,textDocument/didOpen,,3068 +192276,false,textDocument/didOpen,,3069 +164136,false,textDocument/didOpen,,3070 +71946,false,textDocument/didOpen,,3071 +279616,false,textDocument/didOpen,,3050 +239115,false,textDocument/didOpen,,3049 +248620,false,textDocument/didOpen,,3048 +244268,false,textDocument/didOpen,,3047 +286106,false,textDocument/didOpen,,3049 +268495,false,textDocument/didOpen,,3050 +166337,false,textDocument/didOpen,,3051 +57,false,textDocument/completion,89, +383628,false,textDocument/didOpen,,3050 +346120,false,textDocument/didOpen,,3048 +333627,false,textDocument/didOpen,,3047 +306021,false,textDocument/didOpen,,3048 +378502,false,textDocument/didOpen,,3050 +183876,false,textDocument/didOpen,,3051 +753,false,textDocument/completion,89, +123505,false,textDocument/didOpen,,3052 +146417,false,textDocument/didOpen,,3053 +126435,false,textDocument/didOpen,,3055 +86,false,textDocument/completion,89, +143441,false,textDocument/didOpen,,3056 +63,false,textDocument/completion,89, +173042,false,textDocument/didOpen,,3057 +162380,false,textDocument/didOpen,,3056 +138920,false,textDocument/didOpen,,3057 +60,false,textDocument/completion,89, +174751,false,textDocument/didOpen,,3060 +150397,false,textDocument/didOpen,,3061 +187179,false,textDocument/didOpen,,3063 +58,false,textDocument/completion,89, +113960,false,textDocument/didOpen,,3069 +115899,false,textDocument/didOpen,,3070 +36,false,textDocument/completion,74, +126877,false,textDocument/didOpen,,3072 +112422,false,textDocument/didOpen,,3070 +86894,false,textDocument/didOpen,,3071 +34,false,textDocument/completion,74, +114991,false,textDocument/didOpen,,3075 +123701,false,textDocument/didOpen,,3079 +431866,false,textDocument/didOpen,,3081 +167188,false,textDocument/didOpen,,3082 +463128,false,textDocument/didOpen,,3083 +187272,false,textDocument/didOpen,,367 +24639,false,textDocument/didOpen,,356 +72612,false,textDocument/didOpen,,357 +87,false,textDocument/completion,27, +113189,false,textDocument/didOpen,,358 +89645,false,textDocument/didOpen,,359 +45532,false,textDocument/didOpen,,361 +71554,false,textDocument/didOpen,,363 +185310,false,textDocument/didOpen,,3083 +122635,false,textDocument/didOpen,,3085 +114857,false,textDocument/didOpen,,3087 +172897,false,textDocument/didOpen,,3087 +59151,false,textDocument/didOpen,,363 +57122,false,textDocument/didOpen,,363 +117836,false,textDocument/didOpen,,3087 +113162,false,textDocument/didOpen,,3091 +141059,false,textDocument/didOpen,,3095 +102205,false,textDocument/didOpen,,3097 +153635,false,textDocument/didOpen,,3101 +157197,false,textDocument/didOpen,,3105 +151890,false,textDocument/didOpen,,3094 +139145,false,textDocument/didOpen,,3095 +145,false,textDocument/completion,199, +190305,false,textDocument/didOpen,,3097 +212988,false,textDocument/didOpen,,3098 +226775,false,textDocument/didOpen,,3101 +156,false,textDocument/completion,199, +233571,false,textDocument/didOpen,,3104 +208108,false,textDocument/didOpen,,3103 +210521,false,textDocument/didOpen,,3102 +220599,false,textDocument/didOpen,,3101 +279962,false,textDocument/didOpen,,3100 +118,false,textDocument/completion,199, +292471,false,textDocument/didOpen,,3099 +288916,false,textDocument/didOpen,,3099 +558,false,textDocument/completion,199, +326977,false,textDocument/didOpen,,3103 +107863,false,textDocument/didOpen,,3103 +131077,false,textDocument/didOpen,,3092 +136201,false,textDocument/didOpen,,3094 +96378,false,textDocument/didOpen,,3095 +138,false,textDocument/completion,199, +132894,false,textDocument/didOpen,,3096 +131288,false,textDocument/didOpen,,3097 +115225,false,textDocument/didOpen,,3101 +25819,false,textDocument/didOpen,,363 +358,false,textDocument/didOpen,,2452 +1317,false,textDocument/didOpen,,2474 +1932,false,textDocument/didOpen,,2475 +1992,false,textDocument/didOpen,,2474 +1235,false,textDocument/didOpen,,2472 +1230,false,textDocument/didOpen,,2470 +1234,false,textDocument/didOpen,,2468 +1929,false,textDocument/didOpen,,2466 +1248,false,textDocument/didOpen,,2464 +1273,false,textDocument/didOpen,,2462 +304,false,textDocument/didOpen,,2460 +1258,false,textDocument/didOpen,,2458 +1228,false,textDocument/didOpen,,2456 +614,false,textDocument/didOpen,,2457 +28,true,textDocument/completion,, +1260,false,textDocument/didOpen,,2458 +1242,false,textDocument/didOpen,,2460 +34,true,textDocument/completion,, +1271,false,textDocument/didOpen,,2461 +36,true,textDocument/completion,, +1319,false,textDocument/didOpen,,2462 +45,true,textDocument/completion,, +1291,false,textDocument/didOpen,,2463 +62,true,textDocument/completion,, +1324,false,textDocument/didOpen,,2464 +38,true,textDocument/completion,, +1246,false,textDocument/didOpen,,2465 +1430,false,textDocument/didOpen,,2466 +1360,false,textDocument/didOpen,,2467 +1981,false,textDocument/didOpen,,2468 +37,true,textDocument/completion,, +1266,false,textDocument/didOpen,,2470 +36,true,textDocument/completion,, +1268,false,textDocument/didOpen,,2471 +36,true,textDocument/completion,, +1267,false,textDocument/didOpen,,2472 +426,false,textDocument/didOpen,,2472 +400,false,textDocument/didOpen,,2473 +1313,false,textDocument/didOpen,,2474 +26,true,textDocument/completion,, +314,false,textDocument/didOpen,,2478 +8,true,textDocument/completion,, +1333,false,textDocument/didOpen,,2480 +1363,false,textDocument/didOpen,,2481 +448,false,textDocument/didOpen,,2482 +13,true,textDocument/completion,, +419,false,textDocument/didOpen,,2484 +15,true,textDocument/completion,, +1329,false,textDocument/didOpen,,2487 +746,false,textDocument/didOpen,,2488 +32,true,textDocument/completion,, +1384,false,textDocument/didOpen,,2489 +1362,false,textDocument/didOpen,,2490 +1338,false,textDocument/didOpen,,2494 +1334,false,textDocument/didOpen,,2497 +380,false,textDocument/didOpen,,2498 +13,true,textDocument/completion,, +1334,false,textDocument/didOpen,,2500 +1379,false,textDocument/didOpen,,2501 +1356,false,textDocument/didOpen,,2502 +35,true,textDocument/completion,, +1441,false,textDocument/didOpen,,2506 +1481,false,textDocument/didOpen,,2507 +1334,false,textDocument/didOpen,,2509 +1371,false,textDocument/didOpen,,2510 +350,false,textDocument/didOpen,,2510 +301,false,textDocument/didOpen,,2509 +369,false,textDocument/didOpen,,2509 +299,false,textDocument/didOpen,,2505 +272,false,textDocument/didOpen,,393 +551,false,textDocument/didOpen,,389 +333,false,textDocument/didOpen,,390 +51,false,textDocument/completion,1, +287,false,textDocument/didOpen,,391 +1252,false,textDocument/didOpen,,392 +1242,false,textDocument/didOpen,,394 +25218,false,textDocument/didOpen,,250 +1253,false,textDocument/didOpen,,352 +360,false,textDocument/didOpen,,339 +279,false,textDocument/didOpen,,331 +674,false,textDocument/didOpen,,297 +577,false,textDocument/didOpen,,249 +268,false,textDocument/didOpen,,248 +653,false,textDocument/didOpen,,249 +35,false,textDocument/completion,1, +13914,false,textDocument/didOpen,,250 +144,false,textDocument/completion,42, +473,false,textDocument/didOpen,,773 +1681,false,textDocument/didOpen,,772 +1258,false,textDocument/didOpen,,773 +30354,false,textDocument/didOpen,,637 +375,false,textDocument/didOpen,,12012 +1138,false,textDocument/didOpen,,11844 +366,false,textDocument/didOpen,,11843 +1216,false,textDocument/didOpen,,11844 +1244,false,textDocument/didOpen,,11636 +393,false,textDocument/didOpen,,11635 +1279,false,textDocument/didOpen,,11636 +290,false,textDocument/didOpen,,11404 +474,false,textDocument/didOpen,,11403 +1587,false,textDocument/didOpen,,11404 +1526,false,textDocument/didOpen,,11184 +110,false,textDocument/didOpen,,11183 +131,false,textDocument/didOpen,,11184 +297,false,textDocument/didOpen,,10936 +262,false,textDocument/didOpen,,10935 +359,false,textDocument/didOpen,,10936 +277,false,textDocument/didOpen,,10721 +1366,false,textDocument/didOpen,,10720 +1289,false,textDocument/didOpen,,10721 +342,false,textDocument/didOpen,,10476 +1349,false,textDocument/didOpen,,10475 +1364,false,textDocument/didOpen,,10476 +299,false,textDocument/didOpen,,10269 +420,false,textDocument/didOpen,,10268 +1498,false,textDocument/didOpen,,10269 +301,false,textDocument/didOpen,,10063 +1345,false,textDocument/didOpen,,10062 +1341,false,textDocument/didOpen,,10063 +292,false,textDocument/didOpen,,9846 +1366,false,textDocument/didOpen,,9845 +1389,false,textDocument/didOpen,,9846 +1309,false,textDocument/didOpen,,9655 +1400,false,textDocument/didOpen,,9654 +455,false,textDocument/didOpen,,9656 +1392,false,textDocument/didOpen,,9654 +1000,false,textDocument/didOpen,,9656 +96,false,textDocument/completion,1, +1393,false,textDocument/didOpen,,9655 +1328,false,textDocument/didOpen,,9488 +1434,false,textDocument/didOpen,,9487 +1747,false,textDocument/didOpen,,9488 +328,false,textDocument/didOpen,,9220 +896,false,textDocument/didOpen,,9219 +1746,false,textDocument/didOpen,,9220 +535,false,textDocument/didOpen,,8960 +386,false,textDocument/didOpen,,8959 +1770,false,textDocument/didOpen,,8960 +1360,false,textDocument/didOpen,,8701 +1480,false,textDocument/didOpen,,8700 +1430,false,textDocument/didOpen,,8701 +1145,false,textDocument/didOpen,,8471 +541,false,textDocument/didOpen,,8470 +1497,false,textDocument/didOpen,,8471 +1407,false,textDocument/didOpen,,8157 +1655,false,textDocument/didOpen,,8156 +1488,false,textDocument/didOpen,,8157 +324,false,textDocument/didOpen,,7900 +334,false,textDocument/didOpen,,7899 +1462,false,textDocument/didOpen,,7900 +1435,false,textDocument/didOpen,,7635 +323,false,textDocument/didOpen,,7634 +1491,false,textDocument/didOpen,,7635 +197,false,textDocument/didOpen,,4263 +432,false,textDocument/didOpen,,4117 +1306,false,textDocument/didOpen,,4116 +1328,false,textDocument/didOpen,,4117 +410,false,textDocument/didOpen,,4016 +634,false,textDocument/didOpen,,4015 +397,false,textDocument/didOpen,,4016 +387,false,textDocument/didOpen,,1750 +1541,false,textDocument/didOpen,,1541 +502,false,textDocument/didOpen,,1540 +1225,false,textDocument/didOpen,,1541 +1215,false,textDocument/didOpen,,1542 +1190,false,textDocument/didOpen,,1540 +617,false,textDocument/didOpen,,1541 +1130,false,textDocument/didOpen,,1352 +1140,false,textDocument/didOpen,,1351 +1144,false,textDocument/didOpen,,1352 +106,false,textDocument/didOpen,,10695 +320,false,textDocument/didOpen,,10535 +303,false,textDocument/didOpen,,10534 +305,false,textDocument/didOpen,,10535 +302,false,textDocument/didOpen,,10423 +303,false,textDocument/didOpen,,10422 +339,false,textDocument/didOpen,,10423 +73,false,textDocument/didOpen,,10318 +299,false,textDocument/didOpen,,10317 +298,false,textDocument/didOpen,,10318 +300,false,textDocument/didOpen,,10172 +213,false,textDocument/didOpen,,10171 +300,false,textDocument/didOpen,,10172 +347,false,textDocument/didOpen,,885 +251,false,textDocument/didOpen,,879 +245,false,textDocument/didOpen,,879 +52472,false,textDocument/didOpen,,131 +276,false,textDocument/didOpen,,347 +270,false,textDocument/didOpen,,346 +1210,false,textDocument/didOpen,,347 +13253,false,textDocument/didOpen,,250 +282,false,textDocument/didOpen,,748 +1263,false,textDocument/didOpen,,747 +1268,false,textDocument/didOpen,,748 +44161,false,textDocument/didOpen,,637 +282,false,textDocument/didOpen,,9136 +458,false,textDocument/didOpen,,9057 +648,false,textDocument/didOpen,,8978 +1002,false,textDocument/didOpen,,8899 +1285,false,textDocument/didOpen,,8820 +92,false,textDocument/didOpen,,8741 +1293,false,textDocument/didOpen,,8662 +723,false,textDocument/didOpen,,8583 +1379,false,textDocument/didOpen,,8504 +300,false,textDocument/didOpen,,8425 +1326,false,textDocument/didOpen,,8346 +1343,false,textDocument/didOpen,,8267 +1394,false,textDocument/didOpen,,8188 +347,false,textDocument/didOpen,,8109 +1414,false,textDocument/didOpen,,8030 +1431,false,textDocument/didOpen,,7951 +1439,false,textDocument/didOpen,,7872 +1605,false,textDocument/didOpen,,7793 +390,false,textDocument/didOpen,,7714 +1463,false,textDocument/didOpen,,7635 +214,false,textDocument/didOpen,,4166 +1271,false,textDocument/didOpen,,4089 +145,false,textDocument/didOpen,,4016 +486,false,textDocument/didOpen,,1506 +1272,false,textDocument/didOpen,,1429 +1150,false,textDocument/didOpen,,1352 +79,false,textDocument/didOpen,,10480 +73,false,textDocument/didOpen,,10403 +309,false,textDocument/didOpen,,10326 +99,false,textDocument/didOpen,,10249 +306,false,textDocument/didOpen,,10172 +422,false,textDocument/didOpen,,7764 +1422,false,textDocument/didOpen,,7639 +523,false,textDocument/didOpen,,7638 +1503,false,textDocument/didOpen,,7639 +351,false,textDocument/didOpen,,1478 +482,false,textDocument/didOpen,,1356 +292,false,textDocument/didOpen,,1355 +1323,false,textDocument/didOpen,,1356 +277,false,textDocument/didOpen,,1352 +62498,false,textDocument/didOpen,,3218 +81274,false,textDocument/didOpen,,3217 +156110,false,textDocument/didOpen,,3217 +18,false,textDocument/definition,208, +34,false,textDocument/references,208, +90375,false,textDocument/didOpen,,3218 +164986,false,textDocument/didOpen,,3217 +139320,false,textDocument/didOpen,,3217 +169456,false,textDocument/didOpen,,3217 +145889,false,textDocument/didOpen,,3217 +41,false,textDocument/hover,208, +19,false,textDocument/references,208, +46979,false,textDocument/didOpen,,319 +191,false,textDocument/didOpen,,1 +69,false,textDocument/didOpen,,3 +22,false,textDocument/completion,1, +1021,false,textDocument/didOpen,,7 +33,false,textDocument/completion,1, +942,false,textDocument/didOpen,,11 +228,false,textDocument/didOpen,,12 +12,false,textDocument/completion,1, +889,false,textDocument/didOpen,,13 +882,false,textDocument/didOpen,,14 +882,false,textDocument/didOpen,,13 +220,false,textDocument/didOpen,,14 +8,false,textDocument/completion,1, +890,false,textDocument/didOpen,,19 +228,false,textDocument/didOpen,,20 +36,false,textDocument/completion,1, +891,false,textDocument/didOpen,,22 +969,false,textDocument/didOpen,,23 +220,false,textDocument/didOpen,,24 +30,false,textDocument/completion,1, +891,false,textDocument/didOpen,,26 +899,false,textDocument/didOpen,,27 +475,false,textDocument/didOpen,,29 +18,false,textDocument/completion,1, +2675,false,textDocument/didOpen,,30 +2648,false,textDocument/didOpen,,31 +52,false,textDocument/didOpen,,32 +38,false,textDocument/completion,3, +154,false,textDocument/didOpen,,33 +10979,false,textDocument/didOpen,,37 +53,false,textDocument/completion,3, +2642,false,textDocument/didOpen,,41 +2628,false,textDocument/didOpen,,43 +3042,false,textDocument/didOpen,,45 +2631,false,textDocument/didOpen,,46 +2550,false,textDocument/didOpen,,47 +2694,false,textDocument/didOpen,,48 +2651,false,textDocument/didOpen,,49 +1296,false,textDocument/didOpen,,50 +18,false,textDocument/completion,3, +2653,false,textDocument/didOpen,,52 +2626,false,textDocument/didOpen,,53 +637,false,textDocument/didOpen,,54 +9,false,textDocument/completion,3, +2633,false,textDocument/didOpen,,59 +2678,false,textDocument/didOpen,,69 +2675,false,textDocument/didOpen,,70 +2724,false,textDocument/didOpen,,72 +565,false,textDocument/didOpen,,73 +8,false,textDocument/completion,3, +2684,false,textDocument/didOpen,,74 +2712,false,textDocument/didOpen,,75 +2956,false,textDocument/didOpen,,77 +2676,false,textDocument/didOpen,,80 +641,false,textDocument/didOpen,,81 +33,false,textDocument/completion,3, +2678,false,textDocument/didOpen,,82 +2704,false,textDocument/didOpen,,83 +2693,false,textDocument/didOpen,,84 +598,false,textDocument/didOpen,,85 +29,false,textDocument/completion,3, +2681,false,textDocument/didOpen,,87 +130,false,textDocument/completion,3, +2690,false,textDocument/didOpen,,88 +129,false,textDocument/completion,3, +623,false,textDocument/didOpen,,89 +2652,false,textDocument/didOpen,,93 +2641,false,textDocument/didOpen,,98 +627,false,textDocument/didOpen,,99 +2724,false,textDocument/didOpen,,102 +2705,false,textDocument/didOpen,,108 +2707,false,textDocument/didOpen,,109 +603,false,textDocument/didOpen,,111 +9,false,textDocument/completion,3, +8037,false,textDocument/didOpen,,112 +7745,false,textDocument/didOpen,,113 +7774,false,textDocument/didOpen,,112 +2703,false,textDocument/didOpen,,111 +2695,false,textDocument/didOpen,,110 +1298,false,textDocument/didOpen,,109 +2673,false,textDocument/didOpen,,110 +5934,false,textDocument/didOpen,,112 +49,false,textDocument/completion,6, +7891,false,textDocument/didOpen,,113 +77,false,textDocument/didOpen,,114 +10,false,textDocument/completion,6, +250,false,textDocument/didOpen,,115 +229,false,textDocument/didOpen,,117 +113,false,textDocument/didOpen,,119 +229,false,textDocument/didOpen,,120 +228,false,textDocument/didOpen,,121 +227,false,textDocument/didOpen,,123 +8270,false,textDocument/didOpen,,124 +17078,false,textDocument/didOpen,,125 +4230,false,textDocument/didOpen,,126 +18,false,textDocument/completion,7, +5030,false,textDocument/didOpen,,127 +18074,false,textDocument/didOpen,,128 +17612,false,textDocument/didOpen,,130 +10232,false,textDocument/didOpen,,131 +230,false,textDocument/didOpen,,1 +119,false,textDocument/didOpen,,345 +207,false,textDocument/didOpen,,291 +205,false,textDocument/didOpen,,281 +207,false,textDocument/didOpen,,233 +13569,false,textDocument/didOpen,,223 +12834,false,textDocument/didOpen,,211 +9941,false,textDocument/didOpen,,202 +30644,false,textDocument/didOpen,,203 +157,false,textDocument/completion,16, +12021,false,textDocument/didOpen,,204 +9380,false,textDocument/didOpen,,205 +79,false,textDocument/completion,16, +12630,false,textDocument/didOpen,,206 +75,false,textDocument/completion,16, +28743,false,textDocument/didOpen,,207 +130,false,textDocument/completion,16, +31007,false,textDocument/didOpen,,208 +159,false,textDocument/completion,16, +9448,false,textDocument/didOpen,,209 +103,false,textDocument/completion,16, +12843,false,textDocument/didOpen,,210 +127,false,textDocument/completion,16, +10009,false,textDocument/didOpen,,211 +91,false,textDocument/completion,16, +13005,false,textDocument/didOpen,,210 +38244,false,textDocument/didOpen,,209 +12552,false,textDocument/didOpen,,208 +8222,false,textDocument/didOpen,,209 +77,false,textDocument/completion,16, +38297,false,textDocument/didOpen,,208 +11677,false,textDocument/didOpen,,209 +88,false,textDocument/completion,16, +14084,false,textDocument/didOpen,,210 +40351,false,textDocument/didOpen,,211 +10210,false,textDocument/didOpen,,212 +94,false,textDocument/completion,16, +9106,false,textDocument/didOpen,,213 +80,false,textDocument/completion,16, +12642,false,textDocument/didOpen,,214 +117,false,textDocument/completion,16, +12180,false,textDocument/didOpen,,213 +37686,false,textDocument/didOpen,,211 +9687,false,textDocument/didOpen,,210 +11978,false,textDocument/didOpen,,209 +38069,false,textDocument/didOpen,,208 +12981,false,textDocument/didOpen,,209 +39480,false,textDocument/didOpen,,210 +219,false,textDocument/completion,16, +35686,false,textDocument/didOpen,,211 +30990,false,textDocument/didOpen,,213 +180,false,textDocument/completion,16, +34009,false,textDocument/didOpen,,214 +234,false,textDocument/completion,16, +14746,false,textDocument/didOpen,,202 +8762,false,textDocument/didOpen,,203 +147,false,textDocument/completion,16, +13250,false,textDocument/didOpen,,205 +26186,false,textDocument/didOpen,,206 +13105,false,textDocument/didOpen,,207 +156,false,textDocument/completion,16, +36970,false,textDocument/didOpen,,209 +46733,false,textDocument/didOpen,,194 +10091,false,textDocument/didOpen,,209 +33133,false,textDocument/didOpen,,210 +184,false,textDocument/completion,10, +32091,false,textDocument/didOpen,,212 +11774,false,textDocument/didOpen,,211 +40102,false,textDocument/didOpen,,197 +37501,false,textDocument/didOpen,,196 +37777,false,textDocument/didOpen,,195 +42259,false,textDocument/didOpen,,194 +1073,false,textDocument/didOpen,,193 +286,false,textDocument/didOpen,,194 +31,false,textDocument/completion,1, +1099,false,textDocument/didOpen,,198 +1007,false,textDocument/didOpen,,199 +1006,false,textDocument/didOpen,,200 +1018,false,textDocument/didOpen,,200 +145,false,textDocument/completion,1, +1033,false,textDocument/didOpen,,201 +1055,false,textDocument/didOpen,,202 +1052,false,textDocument/didOpen,,201 +40120,false,textDocument/didOpen,,191 +308,false,textDocument/didOpen,,190 +332,false,textDocument/didOpen,,189 +310,false,textDocument/didOpen,,188 +344,false,textDocument/didOpen,,187 +313,false,textDocument/didOpen,,186 +12968,false,textDocument/didOpen,,185 +94,false,textDocument/didOpen,,186 +81,false,textDocument/completion,16, +294,false,textDocument/didOpen,,187 +307,false,textDocument/didOpen,,188 +306,false,textDocument/didOpen,,190 +13775,false,textDocument/didOpen,,191 +312,false,textDocument/didOpen,,190 +312,false,textDocument/didOpen,,189 +313,false,textDocument/didOpen,,188 +313,false,textDocument/didOpen,,187 +299,false,textDocument/didOpen,,186 +13433,false,textDocument/didOpen,,185 +41596,false,textDocument/didOpen,,186 +16637,false,textDocument/didOpen,,187 +29043,false,textDocument/didOpen,,188 +172,false,textDocument/completion,10, +48199,false,textDocument/didOpen,,191 +29501,false,textDocument/didOpen,,193 +34062,false,textDocument/didOpen,,194 +34361,false,textDocument/didOpen,,195 +8843,false,textDocument/didOpen,,196 +79,false,textDocument/completion,10, +29264,false,textDocument/didOpen,,198 +35898,false,textDocument/didOpen,,199 +34107,false,textDocument/didOpen,,200 +27767,false,textDocument/didOpen,,203 +14843,false,textDocument/didOpen,,205 +16074,false,textDocument/didOpen,,206 +15225,false,textDocument/didOpen,,205 +35146,false,textDocument/didOpen,,206 +14320,false,textDocument/didOpen,,204 +1048,false,textDocument/didOpen,,205 +268,false,textDocument/didOpen,,206 +28,false,textDocument/completion,1, +1012,false,textDocument/didOpen,,208 +236,false,textDocument/didOpen,,209 +261,false,textDocument/didOpen,,210 +30,false,textDocument/completion,1, +48169,false,textDocument/didOpen,,214 +22819,false,textDocument/didOpen,,201 +33394,false,textDocument/didOpen,,202 +102,false,textDocument/completion,20, +42509,false,textDocument/didOpen,,203 +59636,false,textDocument/didOpen,,204 +13658,false,textDocument/didOpen,,209 +13423,false,textDocument/didOpen,,210 +15520,false,textDocument/didOpen,,219 +13269,false,textDocument/didOpen,,220 +15643,false,textDocument/didOpen,,229 +15889,false,textDocument/didOpen,,229 +29721,false,textDocument/didOpen,,229 +158124,false,textDocument/didOpen,,5691 +232865,false,textDocument/didOpen,,3217 +248475,false,textDocument/didOpen,,3216 +204695,false,textDocument/didOpen,,3215 +235999,false,textDocument/didOpen,,3209 +23045,false,textDocument/didOpen,,222 +21001,false,textDocument/didOpen,,223 +70,false,textDocument/completion,20, +72209,false,textDocument/didOpen,,225 +55120,false,textDocument/didOpen,,226 +46762,false,textDocument/didOpen,,221 +39175,false,textDocument/didOpen,,211 +47189,false,textDocument/didOpen,,212 +56182,false,textDocument/didOpen,,213 +42198,false,textDocument/didOpen,,214 +27413,false,textDocument/didOpen,,215 +31738,false,textDocument/didOpen,,211 +67942,false,textDocument/didOpen,,212 +50388,false,textDocument/didOpen,,213 +142,false,textDocument/completion,10, +53578,false,textDocument/didOpen,,214 +48234,false,textDocument/didOpen,,215 +32563,false,textDocument/didOpen,,219 +49213,false,textDocument/didOpen,,221 +50220,false,textDocument/didOpen,,222 +51066,false,textDocument/didOpen,,225 +20460,false,textDocument/didOpen,,226 +35311,false,textDocument/didOpen,,227 +426,false,textDocument/completion,10, +53024,false,textDocument/didOpen,,232 +53103,false,textDocument/didOpen,,237 +51784,false,textDocument/didOpen,,239 +1013,false,textDocument/didOpen,,240 +53641,false,textDocument/didOpen,,241 +18412,false,textDocument/didOpen,,242 +51574,false,textDocument/didOpen,,241 +29428,false,textDocument/didOpen,,242 +203,false,textDocument/didOpen,,243 +47,false,textDocument/didOpen,,238 +148,false,textDocument/didOpen,,239 +183,false,textDocument/didOpen,,238 +77569,false,textDocument/didOpen,,237 +139852,false,textDocument/didOpen,,3209 +173155,false,textDocument/didOpen,,3209 +132632,false,textDocument/didOpen,,3209 +140274,false,textDocument/didOpen,,3209 +45,false,textDocument/definition,208, +19,false,textDocument/references,208, +33,false,textDocument/definition,208, +156331,false,textDocument/didOpen,,3209 +90881,false,textDocument/didOpen,,3148 +108265,false,textDocument/didOpen,,3149 +14,false,textDocument/completion,208, +113132,false,textDocument/didOpen,,3149 +16,false,textDocument/completion,208, +113998,false,textDocument/didOpen,,3152 +15,false,textDocument/completion,208, +90494,false,textDocument/didOpen,,3155 +19,false,textDocument/completion,208, +124139,false,textDocument/didOpen,,3157 +26,false,textDocument/completion,208, +165493,false,textDocument/didOpen,,3159 +188174,false,textDocument/didOpen,,3163 +162102,false,textDocument/didOpen,,3164 +193661,false,textDocument/didOpen,,3165 +244804,false,textDocument/didOpen,,3167 +241305,false,textDocument/didOpen,,3168 +22,false,textDocument/completion,208, +232592,false,textDocument/didOpen,,3169 +275219,false,textDocument/didOpen,,3170 +268742,false,textDocument/didOpen,,3171 +255115,false,textDocument/didOpen,,3172 +284244,false,textDocument/didOpen,,3173 +18,false,textDocument/completion,208, +313899,false,textDocument/didOpen,,3174 +316702,false,textDocument/didOpen,,3175 +356469,false,textDocument/didOpen,,3176 +13,false,textDocument/completion,208, +343583,false,textDocument/didOpen,,3177 +362531,false,textDocument/didOpen,,3180 +18,false,textDocument/completion,208, +323981,false,textDocument/didOpen,,3182 +446335,false,textDocument/didOpen,,3183 +418530,false,textDocument/didOpen,,3184 +351342,false,textDocument/didOpen,,3185 +454985,false,textDocument/didOpen,,3186 +379864,false,textDocument/didOpen,,3187 +29,false,textDocument/completion,209, +403027,false,textDocument/didOpen,,3189 +422961,false,textDocument/didOpen,,3190 +403188,false,textDocument/didOpen,,3191 +398166,false,textDocument/didOpen,,3190 +464501,false,textDocument/didOpen,,3191 +38,false,textDocument/completion,197, +302,false,textDocument/didOpen,,3192 +437538,false,textDocument/didOpen,,3193 +445732,false,textDocument/didOpen,,3194 +501510,false,textDocument/didOpen,,3195 +437682,false,textDocument/didOpen,,3196 +465275,false,textDocument/didOpen,,3197 +451452,false,textDocument/didOpen,,3199 +99,false,textDocument/completion,197, +486080,false,textDocument/didOpen,,3197 +490059,false,textDocument/didOpen,,3198 +19,false,textDocument/completion,208, +546916,false,textDocument/didOpen,,3199 +503657,false,textDocument/didOpen,,3200 +584602,false,textDocument/didOpen,,3201 +533898,false,textDocument/didOpen,,3202 +544073,false,textDocument/didOpen,,3203 +580047,false,textDocument/didOpen,,3202 +599582,false,textDocument/didOpen,,3200 +616650,false,textDocument/didOpen,,3199 +660183,false,textDocument/didOpen,,3200 +641523,false,textDocument/didOpen,,3201 +644071,false,textDocument/didOpen,,3202 +672575,false,textDocument/didOpen,,3203 +694642,false,textDocument/didOpen,,3204 +684433,false,textDocument/didOpen,,3205 +23,false,textDocument/completion,208, +649633,false,textDocument/didOpen,,3204 +713229,false,textDocument/didOpen,,3205 +17,false,textDocument/completion,208, +767721,false,textDocument/didOpen,,3206 +762556,false,textDocument/didOpen,,3207 +759546,false,textDocument/didOpen,,3208 +704418,false,textDocument/didOpen,,3207 +690145,false,textDocument/didOpen,,3206 +715236,false,textDocument/didOpen,,3205 +776066,false,textDocument/didOpen,,3204 +862816,false,textDocument/didOpen,,3205 +17,false,textDocument/completion,208, +909215,false,textDocument/didOpen,,3204 +914911,false,textDocument/didOpen,,3205 +16,false,textDocument/completion,208, +888759,false,textDocument/didOpen,,3206 +869249,false,textDocument/didOpen,,3207 +890314,false,textDocument/didOpen,,3206 +891153,false,textDocument/didOpen,,3207 +15,false,textDocument/completion,208, +972329,false,textDocument/didOpen,,3211 +944228,false,textDocument/didOpen,,3213 +22,false,textDocument/completion,208, +985219,false,textDocument/didOpen,,3216 +997791,false,textDocument/didOpen,,3215 +1003021,false,textDocument/didOpen,,3214 +980715,false,textDocument/didOpen,,3213 +976136,false,textDocument/didOpen,,3206 +1104892,false,textDocument/didOpen,,3205 +998125,false,textDocument/didOpen,,3204 +993083,false,textDocument/didOpen,,3205 +15,false,textDocument/completion,208, +980993,false,textDocument/didOpen,,3212 +15,false,textDocument/completion,208, +998235,false,textDocument/didOpen,,3214 +986535,false,textDocument/didOpen,,3216 +14,false,textDocument/completion,208, +1024301,false,textDocument/didOpen,,3218 +1055979,false,textDocument/didOpen,,3219 +1111552,false,textDocument/didOpen,,3220 +16,false,textDocument/completion,208, +1141017,false,textDocument/didOpen,,3223 +1131682,false,textDocument/didOpen,,3224 +15,false,textDocument/completion,208, +1076088,false,textDocument/didOpen,,3226 +1096806,false,textDocument/didOpen,,3225 +1061910,false,textDocument/didOpen,,3224 +1079075,false,textDocument/didOpen,,3223 +1160807,false,textDocument/didOpen,,3224 +55,false,textDocument/completion,208, +1109587,false,textDocument/didOpen,,3229 +1120397,false,textDocument/didOpen,,3230 +1189943,false,textDocument/didOpen,,3236 +16,false,textDocument/completion,208, +1645259,false,textDocument/didOpen,,3237 +1477465,false,textDocument/didOpen,,3240 +52,false,textDocument/completion,208, +1729963,false,textDocument/didOpen,,3241 +1464931,false,textDocument/didOpen,,3246 +1544422,false,textDocument/didOpen,,3250 +1797579,false,textDocument/didOpen,,3251 +1692100,false,textDocument/didOpen,,3240 +1637548,false,textDocument/didOpen,,3242 +1693504,false,textDocument/didOpen,,3243 +37,false,textDocument/completion,208, +1860493,false,textDocument/didOpen,,3246 +1706054,false,textDocument/didOpen,,3247 +1822780,false,textDocument/didOpen,,3251 +1721801,false,textDocument/didOpen,,3252 +1735389,false,textDocument/didOpen,,3253 +16,false,textDocument/completion,208, +1765389,false,textDocument/didOpen,,3255 +1843343,false,textDocument/didOpen,,3255 +55,false,textDocument/completion,208, +2013293,false,textDocument/didOpen,,3260 +33,false,textDocument/completion,208, +1839547,false,textDocument/didOpen,,3261 +1972518,false,textDocument/didOpen,,3262 +1883526,false,textDocument/didOpen,,3263 +18,false,textDocument/completion,208, +1987351,false,textDocument/didOpen,,3264 +1961637,false,textDocument/didOpen,,3265 +1891415,false,textDocument/didOpen,,3266 +2044521,false,textDocument/didOpen,,3265 +2025188,false,textDocument/didOpen,,3261 +2009959,false,textDocument/didOpen,,3260 +1860051,false,textDocument/didOpen,,3259 +1845631,false,textDocument/didOpen,,3258 +2024355,false,textDocument/didOpen,,3256 +1935610,false,textDocument/didOpen,,3254 +2013614,false,textDocument/didOpen,,3252 +2038954,false,textDocument/didOpen,,3253 +15,false,textDocument/completion,208, +1974407,false,textDocument/didOpen,,3257 +2088202,false,textDocument/didOpen,,3258 +19,false,textDocument/completion,208, +2294052,false,textDocument/didOpen,,3263 +40,false,textDocument/completion,208, +2183984,false,textDocument/didOpen,,3267 +2212304,false,textDocument/didOpen,,3268 +2160844,false,textDocument/didOpen,,3272 +19,false,textDocument/completion,208, +2144459,false,textDocument/didOpen,,3273 +2336911,false,textDocument/didOpen,,3274 +2131910,false,textDocument/didOpen,,3275 +2268526,false,textDocument/didOpen,,3277 +82,false,textDocument/completion,208, +2220797,false,textDocument/didOpen,,3278 +2148446,false,textDocument/didOpen,,3279 +48,false,textDocument/completion,208, +2351125,false,textDocument/didOpen,,3283 +18,false,textDocument/completion,208, +2335921,false,textDocument/didOpen,,3286 +2428521,false,textDocument/didOpen,,3288 +2336344,false,textDocument/didOpen,,3289 +17,false,textDocument/completion,208, +2228265,false,textDocument/didOpen,,3291 +2295154,false,textDocument/didOpen,,3293 +2374058,false,textDocument/didOpen,,3294 +2445300,false,textDocument/didOpen,,3296 +2354592,false,textDocument/didOpen,,3297 +2425478,false,textDocument/didOpen,,3296 +2395127,false,textDocument/didOpen,,3297 +2311636,false,textDocument/didOpen,,3298 +2508082,false,textDocument/didOpen,,3301 +2577824,false,textDocument/didOpen,,3302 +24,false,textDocument/completion,208, +2869607,false,textDocument/didOpen,,3298 +2266878,false,textDocument/didOpen,,3299 +2523598,false,textDocument/didOpen,,3300 +16,false,textDocument/completion,208, +2477554,false,textDocument/didOpen,,3302 +2478665,false,textDocument/didOpen,,3305 +35,false,textDocument/completion,208, +2473129,false,textDocument/didOpen,,3307 +18,false,textDocument/completion,208, +2740224,false,textDocument/didOpen,,3312 +2802112,false,textDocument/didOpen,,3314 +2783633,false,textDocument/didOpen,,3316 +21,false,textDocument/completion,208, +2933401,false,textDocument/didOpen,,3318 +23,false,textDocument/completion,208, +2865602,false,textDocument/didOpen,,3320 +2580577,false,textDocument/didOpen,,3329 +19,false,textDocument/completion,208, +2954087,false,textDocument/didOpen,,3331 +2991600,false,textDocument/didOpen,,3332 +17,false,textDocument/completion,208, +2952618,false,textDocument/didOpen,,3335 +36,false,textDocument/completion,208, +2987949,false,textDocument/didOpen,,3336 +3148958,false,textDocument/didOpen,,3337 +3093256,false,textDocument/didOpen,,3338 +3014628,false,textDocument/didOpen,,3339 +36,false,textDocument/completion,208, +2839012,false,textDocument/didOpen,,3341 +2996769,false,textDocument/didOpen,,3343 +16,false,textDocument/completion,208, +2797178,false,textDocument/didOpen,,3344 +2831049,false,textDocument/didOpen,,3345 +2851060,false,textDocument/didOpen,,3344 +3230296,false,textDocument/didOpen,,3342 +3280585,false,textDocument/didOpen,,3341 +3151931,false,textDocument/didOpen,,3342 +22,false,textDocument/completion,208, +3068311,false,textDocument/didOpen,,3343 +2845434,false,textDocument/didOpen,,3344 +18,false,textDocument/completion,208, +2843688,false,textDocument/didOpen,,3346 +2815190,false,textDocument/didOpen,,3345 +2964755,false,textDocument/didOpen,,3344 +3176977,false,textDocument/didOpen,,3343 +3012400,false,textDocument/didOpen,,3344 +3248483,false,textDocument/didOpen,,3345 +17,false,textDocument/completion,208, +3048021,false,textDocument/didOpen,,3351 +16,false,textDocument/completion,208, +3247737,false,textDocument/didOpen,,3352 +3338508,false,textDocument/didOpen,,3353 +3192060,false,textDocument/didOpen,,3354 +17,false,textDocument/completion,208, +3263296,false,textDocument/didOpen,,3355 +3255195,false,textDocument/didOpen,,3360 +22,false,textDocument/completion,208, +3009533,false,textDocument/didOpen,,3362 +20,false,textDocument/completion,208, +3151142,false,textDocument/didOpen,,3365 +15,false,textDocument/completion,208, +3469179,false,textDocument/didOpen,,3366 +3287808,false,textDocument/didOpen,,3368 +16,false,textDocument/completion,208, +8,false,textDocument/completion,208, +3451477,false,textDocument/didOpen,,3369 +3337013,false,textDocument/didOpen,,3370 +16,false,textDocument/completion,208, +3136712,false,textDocument/didOpen,,3372 +3311817,false,textDocument/didOpen,,3374 +3174994,false,textDocument/didOpen,,3376 +3420778,false,textDocument/didOpen,,3314 +3520884,false,textDocument/didOpen,,3315 +3245594,false,textDocument/didOpen,,3317 +16,false,textDocument/completion,208, +5,false,textDocument/completion,208, +3769515,false,textDocument/didOpen,,3319 +15,false,textDocument/completion,208, +3590620,false,textDocument/didOpen,,3325 +4024593,false,textDocument/didOpen,,3327 +3543133,false,textDocument/didOpen,,3328 +100,false,textDocument/completion,208, +3654892,false,textDocument/didOpen,,3333 +3637464,false,textDocument/didOpen,,3334 +3269615,false,textDocument/didOpen,,3335 +16,false,textDocument/completion,208, +3633098,false,textDocument/didOpen,,3337 +3660108,false,textDocument/didOpen,,3339 +16,false,textDocument/completion,208, +3864037,false,textDocument/didOpen,,3344 +3576186,false,textDocument/didOpen,,3345 +3597614,false,textDocument/didOpen,,3348 +3580478,false,textDocument/didOpen,,3350 +3705912,false,textDocument/didOpen,,3351 +15,false,textDocument/completion,208, +3716149,false,textDocument/didOpen,,3353 +3695015,false,textDocument/didOpen,,3354 +3682223,false,textDocument/didOpen,,3355 +15,false,textDocument/completion,208, +3718253,false,textDocument/didOpen,,3356 +3786001,false,textDocument/didOpen,,3361 +3913778,false,textDocument/didOpen,,3363 +17,false,textDocument/completion,208, +3734489,false,textDocument/didOpen,,3367 +3740316,false,textDocument/didOpen,,3369 +16,false,textDocument/completion,208, +3682661,false,textDocument/didOpen,,3370 +4090558,false,textDocument/didOpen,,3372 +3829772,false,textDocument/didOpen,,3374 +3779083,false,textDocument/didOpen,,3375 +3846201,false,textDocument/didOpen,,3374 +3928830,false,textDocument/didOpen,,3375 +16,false,textDocument/completion,208, +3983900,false,textDocument/didOpen,,3380 +3731858,false,textDocument/didOpen,,3383 +15,false,textDocument/completion,208, +3634755,false,textDocument/didOpen,,3384 +3909814,false,textDocument/didOpen,,3383 +3712686,false,textDocument/didOpen,,3372 +3724038,false,textDocument/didOpen,,3371 +4240620,false,textDocument/didOpen,,3370 +4393191,false,textDocument/didOpen,,3371 +4324449,false,textDocument/didOpen,,3372 +20,false,textDocument/completion,208, +4478137,false,textDocument/didOpen,,3376 +4465434,false,textDocument/didOpen,,3378 +4592480,false,textDocument/didOpen,,3380 +17,false,textDocument/completion,208, +4424059,false,textDocument/didOpen,,3383 +4319622,false,textDocument/didOpen,,3384 +18,false,textDocument/completion,208, +4508401,false,textDocument/didOpen,,3385 +4136551,false,textDocument/didOpen,,3386 +4103103,false,textDocument/didOpen,,3387 +15,false,textDocument/completion,208, +4543810,false,textDocument/didOpen,,3388 +4458422,false,textDocument/didOpen,,3389 +4331019,false,textDocument/didOpen,,3391 +4041374,false,textDocument/didOpen,,3392 +16,false,textDocument/completion,208, +3988598,false,textDocument/didOpen,,3394 +16,false,textDocument/completion,208, +3987384,false,textDocument/didOpen,,3403 +15,false,textDocument/completion,208, +4386277,false,textDocument/didOpen,,3404 +3888431,false,textDocument/didOpen,,3405 +4120707,false,textDocument/didOpen,,3407 +4231528,false,textDocument/didOpen,,3408 +3989376,false,textDocument/didOpen,,3403 +4323101,false,textDocument/didOpen,,3404 +4046900,false,textDocument/didOpen,,3405 +22,false,textDocument/completion,208, +4144112,false,textDocument/didOpen,,3412 +16,false,textDocument/completion,208, +4258242,false,textDocument/didOpen,,3413 +4260283,false,textDocument/didOpen,,3415 +16,false,textDocument/completion,208, +4899811,false,textDocument/didOpen,,3419 +4744763,false,textDocument/didOpen,,3413 +4829145,false,textDocument/didOpen,,3414 +17,false,textDocument/completion,208, +4456111,false,textDocument/didOpen,,3415 +4639368,false,textDocument/didOpen,,3414 +4719466,false,textDocument/didOpen,,3415 +4512071,false,textDocument/didOpen,,3416 +4690074,false,textDocument/didOpen,,3415 +4947204,false,textDocument/didOpen,,3414 +4223188,false,textDocument/didOpen,,3415 +4522204,false,textDocument/didOpen,,3414 +236,false,textDocument/didOpen,,3416 +251,false,textDocument/didOpen,,3417 +153,false,textDocument/didOpen,,3418 +151,false,textDocument/didOpen,,3419 +96,false,textDocument/completion,208, +152,false,textDocument/didOpen,,3420 +184,false,textDocument/didOpen,,3418 +161,false,textDocument/didOpen,,3420 +155,false,textDocument/didOpen,,3422 +151,false,textDocument/didOpen,,3423 +123,false,textDocument/completion,208, +222,false,textDocument/didOpen,,3424 +153,false,textDocument/didOpen,,3425 +209,false,textDocument/didOpen,,3425 +158,false,textDocument/didOpen,,3427 +179,false,textDocument/didOpen,,3429 +153,false,textDocument/didOpen,,3430 +101,false,textDocument/completion,208, +168,false,textDocument/didOpen,,3432 +157,false,textDocument/didOpen,,3433 +6971,false,textDocument/completion,208, +211,false,textDocument/didOpen,,3438 +214,false,textDocument/completion,208, +157,false,textDocument/didOpen,,3439 +172,false,textDocument/didOpen,,3440 +155,false,textDocument/didOpen,,3442 +222,false,textDocument/didOpen,,3443 +172,false,textDocument/didOpen,,3444 +142,false,textDocument/completion,208, +238,false,textDocument/didOpen,,3452 +229,false,textDocument/didOpen,,3454 +117,false,textDocument/completion,208, +169,false,textDocument/didOpen,,3462 +130,false,textDocument/completion,208, +217,false,textDocument/didOpen,,3466 +233,false,textDocument/didOpen,,3472 +181,false,textDocument/didOpen,,3473 +161,false,textDocument/didOpen,,3474 +120,false,textDocument/completion,208, +167,false,textDocument/didOpen,,3475 +173,false,textDocument/didOpen,,3478 +191,false,textDocument/didOpen,,3480 +186,false,textDocument/completion,208, +231,false,textDocument/didOpen,,3486 +137,false,textDocument/completion,208, +95,false,textDocument/completion,208, +214,false,textDocument/didOpen,,3491 +226,false,textDocument/didOpen,,3494 +118,false,textDocument/completion,208, +162,false,textDocument/didOpen,,3499 +225,false,textDocument/didOpen,,3500 +132,false,textDocument/completion,208, +226,false,textDocument/didOpen,,3505 +118,false,textDocument/completion,208, +164,false,textDocument/didOpen,,3508 +143,false,textDocument/completion,208, +202,false,textDocument/didOpen,,3512 +233,false,textDocument/didOpen,,3513 +183,false,textDocument/didOpen,,3515 +160,false,textDocument/didOpen,,3517 +116,false,textDocument/completion,208, +161,false,textDocument/didOpen,,3524 +122,false,textDocument/completion,208, +215,false,textDocument/didOpen,,3526 +102,false,textDocument/completion,208, +264,false,textDocument/didOpen,,3527 +225,false,textDocument/didOpen,,3529 +140,false,textDocument/completion,208, +245,false,textDocument/didOpen,,3532 +275,false,textDocument/didOpen,,3534 +216,false,textDocument/didOpen,,3536 +225,false,textDocument/didOpen,,3531 +194,false,textDocument/didOpen,,3533 +126,false,textDocument/completion,208, +164,false,textDocument/didOpen,,3534 +258,false,textDocument/didOpen,,3535 +190,false,textDocument/didOpen,,3537 +199,false,textDocument/didOpen,,3538 +180,false,textDocument/didOpen,,3539 +167,false,textDocument/didOpen,,3540 +142,false,textDocument/completion,208, +112,false,textDocument/completion,208, +216,false,textDocument/didOpen,,3541 +255,false,textDocument/didOpen,,3542 +255,false,textDocument/didOpen,,3540 +178,false,textDocument/didOpen,,3539 +185,false,textDocument/didOpen,,3538 +166,false,textDocument/didOpen,,3539 +138,false,textDocument/completion,208, +160,false,textDocument/didOpen,,3540 +161,false,textDocument/didOpen,,3542 +161,false,textDocument/completion,208, +216,false,textDocument/didOpen,,3548 +130,false,textDocument/completion,208, +225,false,textDocument/didOpen,,3549 +169,false,textDocument/didOpen,,3550 +117,false,textDocument/completion,208, +165,false,textDocument/didOpen,,3552 +158,false,textDocument/didOpen,,3554 +138,false,textDocument/completion,208, +217,false,textDocument/didOpen,,3556 +230,false,textDocument/didOpen,,3557 +179,false,textDocument/didOpen,,3558 +160,false,textDocument/didOpen,,3560 +140,false,textDocument/completion,208, +160,false,textDocument/didOpen,,3561 +167,false,textDocument/didOpen,,3560 +226,false,textDocument/didOpen,,3558 +158,false,textDocument/didOpen,,3560 +151,false,textDocument/completion,208, +217,false,textDocument/didOpen,,3565 +228,false,textDocument/didOpen,,3569 +136,false,textDocument/completion,208, +162,false,textDocument/didOpen,,3572 +129,false,textDocument/completion,208, +251,false,textDocument/didOpen,,3576 +180,false,textDocument/didOpen,,3580 +165,false,textDocument/didOpen,,3583 +119,false,textDocument/completion,208, +159,false,textDocument/didOpen,,3584 +202,false,textDocument/didOpen,,3585 +186,false,textDocument/didOpen,,3586 +154,false,textDocument/didOpen,,3588 +220,false,textDocument/didOpen,,3589 +237,false,textDocument/didOpen,,3590 +171,false,textDocument/didOpen,,3591 +163,false,textDocument/didOpen,,3593 +114,false,textDocument/completion,208, +166,false,textDocument/didOpen,,3591 +180,false,textDocument/didOpen,,3592 +134,false,textDocument/completion,208, +231,false,textDocument/didOpen,,3593 +183,false,textDocument/didOpen,,3594 +170,false,textDocument/didOpen,,3593 +168,false,textDocument/didOpen,,3595 +177,false,textDocument/didOpen,,3597 +164,false,textDocument/didOpen,,3599 +168,false,textDocument/didOpen,,3601 +164,false,textDocument/didOpen,,3607 +165,false,textDocument/didOpen,,3608 +163,false,textDocument/didOpen,,3609 +166,false,textDocument/didOpen,,3611 +162,false,textDocument/didOpen,,3613 +158,false,textDocument/didOpen,,3615 +113,false,textDocument/completion,208, +162,false,textDocument/didOpen,,3613 +254,false,textDocument/didOpen,,3614 +157,false,textDocument/didOpen,,3616 +110,false,textDocument/completion,208, +159,false,textDocument/didOpen,,3618 +126,false,textDocument/completion,208, +162,false,textDocument/didOpen,,3619 +167,false,textDocument/didOpen,,3618 +165,false,textDocument/didOpen,,3617 +212,false,textDocument/didOpen,,3615 +163,false,textDocument/didOpen,,3616 +160,false,textDocument/didOpen,,3618 +7836,false,textDocument/completion,208, +199,false,textDocument/didOpen,,3620 +237,false,textDocument/didOpen,,3623 +120,false,textDocument/completion,208, +162,false,textDocument/didOpen,,3626 +220,false,textDocument/didOpen,,3627 +219,false,textDocument/didOpen,,3628 +124,false,textDocument/completion,208, +171,false,textDocument/didOpen,,3632 +236,false,textDocument/didOpen,,3631 +175,false,textDocument/didOpen,,3629 +171,false,textDocument/didOpen,,3628 +167,false,textDocument/didOpen,,3627 +184,false,textDocument/didOpen,,3626 +165,false,textDocument/didOpen,,3613 +167,false,textDocument/didOpen,,3611 +165,false,textDocument/didOpen,,3609 +168,false,textDocument/didOpen,,3608 +165,false,textDocument/didOpen,,3607 +166,false,textDocument/didOpen,,3594 +163,false,textDocument/didOpen,,3594 +127,false,textDocument/didOpen,,3593 +164,false,textDocument/didOpen,,3594 +168,false,textDocument/didOpen,,3595 +164,false,textDocument/didOpen,,3593 +168,false,textDocument/didOpen,,3591 +163,false,textDocument/didOpen,,3590 +222,false,textDocument/didOpen,,3591 +140,false,textDocument/didOpen,,3592 +135,false,textDocument/completion,208, +2628140,false,textDocument/didOpen,,3593 +2761472,false,textDocument/didOpen,,3594 +2760932,false,textDocument/didOpen,,3595 +2817426,false,textDocument/didOpen,,3597 +3028464,false,textDocument/didOpen,,3598 +2841419,false,textDocument/didOpen,,3597 +2746945,false,textDocument/didOpen,,3598 +269,false,textDocument/didOpen,,3599 +112,false,textDocument/completion,123, +169,false,textDocument/didOpen,,3600 +156,false,textDocument/didOpen,,3599 +154,false,textDocument/didOpen,,3601 +153,false,textDocument/didOpen,,3602 +152,false,textDocument/didOpen,,3604 +153,false,textDocument/didOpen,,3606 +159,false,textDocument/didOpen,,3608 +156,false,textDocument/didOpen,,3607 +155,false,textDocument/didOpen,,3608 +153,false,textDocument/didOpen,,3607 +151,false,textDocument/didOpen,,3608 +149,false,textDocument/didOpen,,3606 +150,false,textDocument/didOpen,,3601 +150,false,textDocument/didOpen,,3599 +2746045,false,textDocument/didOpen,,3597 +2858564,false,textDocument/didOpen,,3593 +316,false,textDocument/didOpen,,3591 +199,false,textDocument/didOpen,,3583 +176,false,textDocument/didOpen,,3584 +158,false,textDocument/didOpen,,3585 +147,false,textDocument/didOpen,,3586 +182,false,textDocument/didOpen,,3588 +12765,false,textDocument/didOpen,,3591 +342,false,textDocument/didOpen,,3592 +53,false,textDocument/completion,1, +14804,false,textDocument/didOpen,,3594 +394,false,textDocument/didOpen,,3600 +30,false,textDocument/completion,1, +14310,false,textDocument/didOpen,,3601 +372,false,textDocument/didOpen,,3603 +14525,false,textDocument/didOpen,,3611 +404,false,textDocument/didOpen,,3610 +14605,false,textDocument/didOpen,,3591 +15096,false,textDocument/didOpen,,3592 +435,false,textDocument/didOpen,,3592 +14769,false,textDocument/didOpen,,3594 +428,false,textDocument/didOpen,,3595 +14907,false,textDocument/didOpen,,3598 +463,false,textDocument/didOpen,,3600 +389,false,textDocument/didOpen,,3603 +419,false,textDocument/didOpen,,3606 +426,false,textDocument/didOpen,,3608 +43,false,textDocument/completion,1, +377,false,textDocument/didOpen,,3611 +392,false,textDocument/didOpen,,3612 +411,false,textDocument/didOpen,,3618 +363,false,textDocument/didOpen,,3617 +362,false,textDocument/didOpen,,3607 +9088,false,textDocument/didOpen,,3606 +335,false,textDocument/didOpen,,3608 +363,false,textDocument/didOpen,,3609 +357,false,textDocument/didOpen,,3612 +39,false,textDocument/completion,1, +394,false,textDocument/didOpen,,3614 +414,false,textDocument/didOpen,,3618 +376,false,textDocument/didOpen,,3622 +315,false,textDocument/didOpen,,3625 +9570,false,textDocument/didOpen,,3628 +477,false,textDocument/didOpen,,3631 +9510,false,textDocument/didOpen,,3633 +30,false,textDocument/completion,1, +9320,false,textDocument/didOpen,,3637 +443,false,textDocument/didOpen,,3639 +370,false,textDocument/didOpen,,3640 +300,false,textDocument/didOpen,,3642 +9535,false,textDocument/didOpen,,3643 +364,false,textDocument/didOpen,,3644 +9868,false,textDocument/didOpen,,3645 +342,false,textDocument/didOpen,,3648 +9041,false,textDocument/didOpen,,3650 +29,false,textDocument/completion,1, +364,false,textDocument/didOpen,,3651 +364,false,textDocument/didOpen,,3652 +27,false,textDocument/completion,1, +9666,false,textDocument/didOpen,,3651 +216,false,textDocument/didOpen,,3652 +219,false,textDocument/didOpen,,3653 +38,false,textDocument/completion,1, +3407695,false,textDocument/didOpen,,3654 +3209764,false,textDocument/didOpen,,3655 +2969355,false,textDocument/didOpen,,3657 +3184798,false,textDocument/didOpen,,3659 +2962607,false,textDocument/didOpen,,3659 +3373091,false,textDocument/didOpen,,3660 +2969809,false,textDocument/didOpen,,3661 +3089917,false,textDocument/didOpen,,3662 +3146021,false,textDocument/didOpen,,3663 +3062519,false,textDocument/didOpen,,3664 +3297923,false,textDocument/didOpen,,3665 +3374248,false,textDocument/didOpen,,3666 +88,false,textDocument/completion,134, +3579486,false,textDocument/didOpen,,3667 +3621984,false,textDocument/didOpen,,3668 +3106094,false,textDocument/didOpen,,3667 +3491869,false,textDocument/didOpen,,3668 +3321429,false,textDocument/didOpen,,3669 +3522450,false,textDocument/didOpen,,3670 +3205099,false,textDocument/didOpen,,3671 +3333423,false,textDocument/didOpen,,3672 +3401314,false,textDocument/didOpen,,3657 +3566213,false,textDocument/didOpen,,3651 +3208693,false,textDocument/didOpen,,3652 +2965713,false,textDocument/didOpen,,3654 +149,false,textDocument/completion,134, +2724241,false,textDocument/didOpen,,3655 +3007088,false,textDocument/didOpen,,3657 +3107330,false,textDocument/didOpen,,3660 +3270796,false,textDocument/didOpen,,3661 +3481325,false,textDocument/didOpen,,3662 +3349455,false,textDocument/didOpen,,3664 +109,false,textDocument/completion,134, +3145515,false,textDocument/didOpen,,3669 +2975757,false,textDocument/didOpen,,3670 +3420773,false,textDocument/didOpen,,3671 +3460015,false,textDocument/didOpen,,3673 +3307714,false,textDocument/didOpen,,3675 +162,false,textDocument/completion,134, +3225569,false,textDocument/didOpen,,3676 +3437605,false,textDocument/didOpen,,3677 +3797439,false,textDocument/didOpen,,3678 +3778709,false,textDocument/didOpen,,3676 +3245906,false,textDocument/didOpen,,3674 +3238850,false,textDocument/didOpen,,3675 +98,false,textDocument/completion,134, +3358034,false,textDocument/didOpen,,3674 +3468836,false,textDocument/didOpen,,3675 +3340986,false,textDocument/didOpen,,3676 +106,false,textDocument/completion,134, +3534203,false,textDocument/didOpen,,3684 +3826705,false,textDocument/didOpen,,3686 +99,false,textDocument/completion,134, +3426402,false,textDocument/didOpen,,3688 +3320568,false,textDocument/didOpen,,3695 +3719174,false,textDocument/didOpen,,3696 +3403516,false,textDocument/didOpen,,3697 +3769297,false,textDocument/didOpen,,3698 +3494657,false,textDocument/didOpen,,3697 +3496533,false,textDocument/didOpen,,3679 +3436909,false,textDocument/didOpen,,3680 +162,false,textDocument/didOpen,,3714 +205,false,textDocument/didOpen,,3712 +897,false,textDocument/didOpen,,3713 +194,false,textDocument/didOpen,,3715 +950,false,textDocument/didOpen,,3716 +199,false,textDocument/didOpen,,3717 +206,false,textDocument/didOpen,,3716 +966,false,textDocument/didOpen,,3715 +206,false,textDocument/didOpen,,3714 +954,false,textDocument/didOpen,,3713 +882,false,textDocument/didOpen,,3715 +956,false,textDocument/didOpen,,3714 +920,false,textDocument/didOpen,,3715 +889,false,textDocument/didOpen,,3716 +926,false,textDocument/didOpen,,3715 +924,false,textDocument/didOpen,,3714 +890,false,textDocument/didOpen,,3715 +990,false,textDocument/didOpen,,3716 +983,false,textDocument/didOpen,,3717 +984,false,textDocument/didOpen,,3718 +225,false,textDocument/didOpen,,3719 +214,false,textDocument/didOpen,,3709 +936,false,textDocument/didOpen,,3708 +708,false,textDocument/didOpen,,3709 +932,false,textDocument/didOpen,,3710 +905,false,textDocument/didOpen,,3711 +948,false,textDocument/didOpen,,3712 +240,false,textDocument/didOpen,,3713 +937,false,textDocument/didOpen,,3714 +937,false,textDocument/didOpen,,3715 +964,false,textDocument/didOpen,,3716 +1295,false,textDocument/didOpen,,3717 +942,false,textDocument/didOpen,,3718 +871,false,textDocument/didOpen,,3719 +953,false,textDocument/didOpen,,3718 +956,false,textDocument/didOpen,,3716 +928,false,textDocument/didOpen,,3714 +239,false,textDocument/didOpen,,3713 +1005,false,textDocument/didOpen,,3712 +905,false,textDocument/didOpen,,3713 +935,false,textDocument/didOpen,,3714 +945,false,textDocument/didOpen,,3715 +970,false,textDocument/didOpen,,3716 +877,false,textDocument/didOpen,,3718 +547,false,textDocument/didOpen,,3720 +970,false,textDocument/didOpen,,3721 +879,false,textDocument/didOpen,,3722 +216,false,textDocument/didOpen,,3723 +15,true,textDocument/completion,, +371,false,textDocument/didOpen,,3727 +894,false,textDocument/didOpen,,3726 +213,false,textDocument/didOpen,,3727 +28,true,textDocument/completion,, +934,false,textDocument/didOpen,,3728 +227,false,textDocument/didOpen,,3729 +956,false,textDocument/didOpen,,3730 +941,false,textDocument/didOpen,,3731 +985,false,textDocument/didOpen,,3732 +465,false,textDocument/didOpen,,3733 +944,false,textDocument/didOpen,,3734 +878,false,textDocument/didOpen,,3735 +226,false,textDocument/didOpen,,3736 +227,false,textDocument/didOpen,,3737 +11,true,textDocument/completion,, +939,false,textDocument/didOpen,,3736 +968,false,textDocument/didOpen,,3737 +960,false,textDocument/didOpen,,3738 +939,false,textDocument/didOpen,,3739 +32,true,textDocument/completion,, +201,false,textDocument/didOpen,,3746 +7,true,textDocument/completion,, +894,false,textDocument/didOpen,,3750 +32,true,textDocument/completion,, +973,false,textDocument/didOpen,,3753 +238,false,textDocument/didOpen,,3754 +8,true,textDocument/completion,, +962,false,textDocument/didOpen,,3755 +293,false,textDocument/didOpen,,3756 +258,false,textDocument/didOpen,,3757 +7,true,textDocument/completion,, +967,false,textDocument/didOpen,,3758 +222,false,textDocument/didOpen,,3759 +12,true,textDocument/completion,, +903,false,textDocument/didOpen,,3758 +703,false,textDocument/didOpen,,3759 +26,true,textDocument/completion,, +975,false,textDocument/didOpen,,3760 +35,true,textDocument/completion,, +656,false,textDocument/didOpen,,3761 +23,true,textDocument/completion,, +229,false,textDocument/didOpen,,3762 +950,false,textDocument/didOpen,,3761 +945,false,textDocument/didOpen,,3760 +872,false,textDocument/didOpen,,3759 +877,false,textDocument/didOpen,,3760 +912,false,textDocument/didOpen,,3761 +42,true,textDocument/completion,, +837,false,textDocument/didOpen,,3764 +39,true,textDocument/completion,, +240,false,textDocument/didOpen,,3766 +307,false,textDocument/didOpen,,3767 +15,true,textDocument/completion,, +33,true,textDocument/completion,, +374,false,textDocument/didOpen,,3769 +18,true,textDocument/completion,, +421,false,textDocument/didOpen,,3772 +36,true,textDocument/completion,, +931,false,textDocument/didOpen,,3771 +881,false,textDocument/didOpen,,3763 +900,false,textDocument/didOpen,,3762 +885,false,textDocument/didOpen,,3761 +439,false,textDocument/didOpen,,3760 +892,false,textDocument/didOpen,,3761 +69,true,textDocument/completion,, +909,false,textDocument/didOpen,,3760 +310,false,textDocument/didOpen,,3762 +15,true,textDocument/completion,, +201,false,textDocument/didOpen,,3763 +533,false,textDocument/didOpen,,3764 +25,true,textDocument/completion,, +948,false,textDocument/didOpen,,3763 +971,false,textDocument/didOpen,,3764 +41,true,textDocument/completion,, +910,false,textDocument/didOpen,,3765 +42,true,textDocument/completion,, +938,false,textDocument/didOpen,,3766 +52,true,textDocument/completion,, +344,false,textDocument/didOpen,,3767 +14,true,textDocument/completion,, +248,false,textDocument/didOpen,,3768 +29,true,textDocument/completion,, +945,false,textDocument/didOpen,,3769 +36,true,textDocument/completion,, +956,false,textDocument/didOpen,,3770 +245,false,textDocument/didOpen,,3772 +13,true,textDocument/completion,, +948,false,textDocument/didOpen,,3776 +42,true,textDocument/completion,, +565,false,textDocument/didOpen,,3778 +385,false,textDocument/didOpen,,3779 +22,true,textDocument/completion,, +876,false,textDocument/didOpen,,3780 +881,false,textDocument/didOpen,,3786 +288,false,textDocument/didOpen,,3788 +14,true,textDocument/completion,, +420,false,textDocument/didOpen,,3789 +894,false,textDocument/didOpen,,3790 +57,true,textDocument/completion,, +266,false,textDocument/didOpen,,3799 +10,true,textDocument/completion,, +613,false,textDocument/didOpen,,3801 +226,false,textDocument/didOpen,,3802 +879,false,textDocument/didOpen,,3803 +1659,false,textDocument/didOpen,,3807 +39,true,textDocument/completion,, +883,false,textDocument/didOpen,,3808 +1076,false,textDocument/didOpen,,3809 +33,true,textDocument/completion,, +241,false,textDocument/didOpen,,3811 +10,true,textDocument/completion,, +884,false,textDocument/didOpen,,3812 +885,false,textDocument/didOpen,,3814 +883,false,textDocument/didOpen,,3816 +978,false,textDocument/didOpen,,3818 +994,false,textDocument/didOpen,,3820 +888,false,textDocument/didOpen,,3822 +44,true,textDocument/completion,, +1168,false,textDocument/didOpen,,3823 +45,true,textDocument/completion,, +308,false,textDocument/didOpen,,3824 +10,true,textDocument/completion,, +217,false,textDocument/didOpen,,3826 +8,true,textDocument/completion,, +341,false,textDocument/didOpen,,3830 +15,true,textDocument/completion,, +905,false,textDocument/didOpen,,3834 +43,true,textDocument/completion,, +897,false,textDocument/didOpen,,3838 +40,true,textDocument/completion,, +570,false,textDocument/didOpen,,3840 +30,true,textDocument/completion,, +892,false,textDocument/didOpen,,3843 +44,true,textDocument/completion,, +923,false,textDocument/didOpen,,3845 +880,false,textDocument/didOpen,,3846 +42,true,textDocument/completion,, +206,false,textDocument/didOpen,,3848 +10,true,textDocument/completion,, +893,false,textDocument/didOpen,,3851 +32,true,textDocument/completion,, +218,false,textDocument/didOpen,,3852 +461,false,textDocument/didOpen,,3854 +258,false,textDocument/didOpen,,3855 +13,true,textDocument/completion,, +987,false,textDocument/didOpen,,3858 +44,true,textDocument/completion,, +884,false,textDocument/didOpen,,3857 +869,false,textDocument/didOpen,,3852 +878,false,textDocument/didOpen,,3851 +881,false,textDocument/didOpen,,3850 +869,false,textDocument/didOpen,,3849 +928,false,textDocument/didOpen,,3850 +43,true,textDocument/completion,, +276,false,textDocument/didOpen,,3852 +614,false,textDocument/didOpen,,3853 +22,true,textDocument/completion,, +902,false,textDocument/didOpen,,3854 +892,false,textDocument/didOpen,,3855 +31,true,textDocument/completion,, +943,false,textDocument/didOpen,,3857 +207,false,textDocument/didOpen,,3858 +8,true,textDocument/completion,, +940,false,textDocument/didOpen,,3864 +296,false,textDocument/didOpen,,3865 +10,true,textDocument/completion,, +868,false,textDocument/didOpen,,3868 +873,false,textDocument/didOpen,,3869 +356,false,textDocument/didOpen,,3870 +875,false,textDocument/didOpen,,3871 +909,false,textDocument/didOpen,,3872 +944,false,textDocument/didOpen,,3873 +947,false,textDocument/didOpen,,3875 +329,false,textDocument/didOpen,,3946 +887,false,textDocument/didOpen,,3945 +952,false,textDocument/didOpen,,3946 +981,false,textDocument/didOpen,,3947 +888,false,textDocument/didOpen,,3948 +881,false,textDocument/didOpen,,3952 +940,false,textDocument/didOpen,,3953 +920,false,textDocument/didOpen,,3954 +317,false,textDocument/didOpen,,3955 +331,false,textDocument/didOpen,,3956 +12,true,textDocument/completion,, +882,false,textDocument/didOpen,,3958 +864,false,textDocument/didOpen,,3942 +941,false,textDocument/didOpen,,3943 +959,false,textDocument/didOpen,,3943 +880,false,textDocument/didOpen,,3943 +951,false,textDocument/didOpen,,3942 +354,false,textDocument/didOpen,,3943 +977,false,textDocument/didOpen,,3945 +946,false,textDocument/didOpen,,3947 +200,false,textDocument/didOpen,,3951 +878,false,textDocument/didOpen,,3952 +367,false,textDocument/didOpen,,3953 +11,true,textDocument/completion,, +234,false,textDocument/didOpen,,3954 +998,false,textDocument/didOpen,,3953 +436,false,textDocument/didOpen,,3954 +328,false,textDocument/didOpen,,3955 +12,true,textDocument/completion,, +878,false,textDocument/didOpen,,3957 +202,false,textDocument/didOpen,,3958 +8,true,textDocument/completion,, +946,false,textDocument/didOpen,,3957 +212,false,textDocument/didOpen,,3958 +8,true,textDocument/completion,, +948,false,textDocument/didOpen,,3960 +39,true,textDocument/completion,, +198,false,textDocument/didOpen,,3961 +7,true,textDocument/completion,, +218,false,textDocument/didOpen,,3962 +10,true,textDocument/completion,, +204,false,textDocument/didOpen,,3963 +8,true,textDocument/completion,, +980,false,textDocument/didOpen,,3962 +939,false,textDocument/didOpen,,3961 +200,false,textDocument/didOpen,,3962 +8,true,textDocument/completion,, +886,false,textDocument/didOpen,,3963 +30,true,textDocument/completion,, +342,false,textDocument/didOpen,,3965 +13,true,textDocument/completion,, +233,false,textDocument/didOpen,,3967 +24,true,textDocument/completion,, +905,false,textDocument/didOpen,,3968 +34,true,textDocument/completion,, +327,false,textDocument/didOpen,,3969 +12,true,textDocument/completion,, +301,false,textDocument/didOpen,,3970 +11,true,textDocument/completion,, +1227,false,textDocument/didOpen,,3972 +45,true,textDocument/completion,, +939,false,textDocument/didOpen,,3978 +903,false,textDocument/didOpen,,3980 +33,true,textDocument/completion,, +925,false,textDocument/didOpen,,3978 +865,false,textDocument/didOpen,,3979 +951,false,textDocument/didOpen,,3982 +949,false,textDocument/didOpen,,3984 +950,false,textDocument/didOpen,,3986 +363,false,textDocument/didOpen,,3988 +8,true,textDocument/completion,, +912,false,textDocument/didOpen,,3993 +33,true,textDocument/completion,, +251,false,textDocument/didOpen,,3994 +999,false,textDocument/didOpen,,3996 +496,false,textDocument/didOpen,,3999 +19,true,textDocument/completion,, +961,false,textDocument/didOpen,,4000 +342,false,textDocument/didOpen,,4003 +11,true,textDocument/completion,, +951,false,textDocument/didOpen,,4005 +969,false,textDocument/didOpen,,4006 +986,false,textDocument/didOpen,,4007 +327,false,textDocument/didOpen,,4008 +20,true,textDocument/completion,, +978,false,textDocument/didOpen,,4010 +981,false,textDocument/didOpen,,4011 +311,false,textDocument/didOpen,,4012 +12,true,textDocument/completion,, +887,false,textDocument/didOpen,,4013 +895,false,textDocument/didOpen,,4011 +405,false,textDocument/didOpen,,4012 +15,true,textDocument/completion,, +923,false,textDocument/didOpen,,4014 +34,true,textDocument/completion,, +470,false,textDocument/didOpen,,4015 +18,true,textDocument/completion,, +930,false,textDocument/didOpen,,4016 +234,false,textDocument/didOpen,,4017 +9,true,textDocument/completion,, +955,false,textDocument/didOpen,,4018 +1532,false,textDocument/didOpen,,4020 +223,false,textDocument/didOpen,,4022 +8,true,textDocument/completion,, +969,false,textDocument/didOpen,,4024 +229,false,textDocument/didOpen,,4026 +8,true,textDocument/completion,, +948,false,textDocument/didOpen,,4028 +914,false,textDocument/didOpen,,4029 +245,false,textDocument/didOpen,,4030 +891,false,textDocument/didOpen,,4031 +996,false,textDocument/didOpen,,4035 +974,false,textDocument/didOpen,,4036 +964,false,textDocument/didOpen,,4040 +943,false,textDocument/didOpen,,4041 +930,false,textDocument/didOpen,,4022 +887,false,textDocument/didOpen,,4023 +32,true,textDocument/completion,, +212,false,textDocument/didOpen,,4027 +8,true,textDocument/completion,, +948,false,textDocument/didOpen,,4029 +991,false,textDocument/didOpen,,4033 +915,false,textDocument/didOpen,,4036 +32,true,textDocument/completion,, +899,false,textDocument/didOpen,,4039 +34,true,textDocument/completion,, +878,false,textDocument/didOpen,,4043 +375,false,textDocument/didOpen,,4044 +28,true,textDocument/completion,, +204,false,textDocument/didOpen,,4045 +220,false,textDocument/didOpen,,4046 +9,true,textDocument/completion,, +905,false,textDocument/didOpen,,4045 +352,false,textDocument/didOpen,,4046 +14,true,textDocument/completion,, +200,false,textDocument/didOpen,,4050 +8,true,textDocument/completion,, +891,false,textDocument/didOpen,,4055 +954,false,textDocument/didOpen,,4057 +32,true,textDocument/completion,, +885,false,textDocument/didOpen,,4059 +32,true,textDocument/completion,, +884,false,textDocument/didOpen,,4061 +32,true,textDocument/completion,, +949,false,textDocument/didOpen,,4062 +295,false,textDocument/didOpen,,4064 +12,true,textDocument/completion,, +722,false,textDocument/didOpen,,4066 +979,false,textDocument/didOpen,,4065 +948,false,textDocument/didOpen,,4064 +951,false,textDocument/didOpen,,4063 +881,false,textDocument/didOpen,,4062 +322,false,textDocument/didOpen,,4062 +299,false,textDocument/didOpen,,4063 +11,true,textDocument/completion,, +205,false,textDocument/didOpen,,4065 +235,false,textDocument/didOpen,,4066 +7,true,textDocument/completion,, +903,false,textDocument/didOpen,,4067 +219,false,textDocument/didOpen,,4068 +8,true,textDocument/completion,, +961,false,textDocument/didOpen,,4071 +32,true,textDocument/completion,, +901,false,textDocument/didOpen,,4073 +945,false,textDocument/didOpen,,4078 +925,false,textDocument/didOpen,,4079 +879,false,textDocument/didOpen,,4080 +918,false,textDocument/didOpen,,4082 +1158,false,textDocument/didOpen,,4084 +888,false,textDocument/didOpen,,4086 +918,false,textDocument/didOpen,,4088 +236,false,textDocument/didOpen,,4089 +8,true,textDocument/completion,, +234,false,textDocument/didOpen,,4088 +218,false,textDocument/didOpen,,4087 +945,false,textDocument/didOpen,,4088 +413,false,textDocument/didOpen,,4089 +10,true,textDocument/completion,, +626,false,textDocument/didOpen,,4091 +24,true,textDocument/completion,, +875,false,textDocument/didOpen,,4093 +920,false,textDocument/didOpen,,4100 +42,true,textDocument/completion,, +319,false,textDocument/didOpen,,4104 +903,false,textDocument/didOpen,,4105 +40,true,textDocument/completion,, +221,false,textDocument/didOpen,,4112 +10,true,textDocument/completion,, +787,false,textDocument/didOpen,,4116 +37,true,textDocument/completion,, +249,false,textDocument/didOpen,,4117 +257,false,textDocument/didOpen,,4118 +7,true,textDocument/completion,, +934,false,textDocument/didOpen,,4125 +34,true,textDocument/completion,, +929,false,textDocument/didOpen,,4131 +884,false,textDocument/didOpen,,4132 +883,false,textDocument/didOpen,,4131 +885,false,textDocument/didOpen,,4130 +197,false,textDocument/didOpen,,4131 +26,true,textDocument/completion,, +949,false,textDocument/didOpen,,4132 +881,false,textDocument/didOpen,,4130 +900,false,textDocument/didOpen,,4129 +522,false,textDocument/didOpen,,4129 +206,false,textDocument/didOpen,,4130 +8,true,textDocument/completion,, +613,false,textDocument/didOpen,,4132 +286,false,textDocument/didOpen,,4133 +10,true,textDocument/completion,, +946,false,textDocument/didOpen,,4134 +223,false,textDocument/didOpen,,4135 +30,true,textDocument/completion,, +252,false,textDocument/didOpen,,4136 +825,false,textDocument/didOpen,,4137 +974,false,textDocument/didOpen,,4138 +199,false,textDocument/didOpen,,4139 +8,true,textDocument/completion,, +964,false,textDocument/didOpen,,4141 +912,false,textDocument/didOpen,,4140 +950,false,textDocument/didOpen,,4139 +906,false,textDocument/didOpen,,4138 +930,false,textDocument/didOpen,,4137 +886,false,textDocument/didOpen,,4136 +890,false,textDocument/didOpen,,4135 +266,false,textDocument/didOpen,,4135 +10,true,textDocument/completion,, +318,false,textDocument/didOpen,,4138 +12,true,textDocument/completion,, +871,false,textDocument/didOpen,,4139 +32,true,textDocument/completion,, +793,false,textDocument/didOpen,,4147 +29,true,textDocument/completion,, +206,false,textDocument/didOpen,,4153 +7,true,textDocument/completion,, +879,false,textDocument/didOpen,,4154 +279,false,textDocument/didOpen,,4155 +882,false,textDocument/didOpen,,4154 +922,false,textDocument/didOpen,,4155 +33,true,textDocument/completion,, +896,false,textDocument/didOpen,,4158 +32,true,textDocument/completion,, +889,false,textDocument/didOpen,,4160 +883,false,textDocument/didOpen,,4161 +881,false,textDocument/didOpen,,4163 +982,false,textDocument/didOpen,,4165 +945,false,textDocument/didOpen,,4167 +886,false,textDocument/didOpen,,4169 +888,false,textDocument/didOpen,,4170 +911,false,textDocument/didOpen,,4172 +33,true,textDocument/completion,, +891,false,textDocument/didOpen,,4174 +877,false,textDocument/didOpen,,4173 +883,false,textDocument/didOpen,,4172 +897,false,textDocument/didOpen,,4171 +885,false,textDocument/didOpen,,4170 +299,false,textDocument/didOpen,,4169 +955,false,textDocument/didOpen,,4170 +882,false,textDocument/didOpen,,4173 +979,false,textDocument/didOpen,,4175 +950,false,textDocument/didOpen,,4177 +948,false,textDocument/didOpen,,4179 +308,false,textDocument/didOpen,,4180 +14,true,textDocument/completion,, +426,false,textDocument/didOpen,,4181 +885,false,textDocument/didOpen,,4182 +32,true,textDocument/completion,, +889,false,textDocument/didOpen,,4185 +32,true,textDocument/completion,, +888,false,textDocument/didOpen,,4186 +32,true,textDocument/completion,, +622,false,textDocument/didOpen,,4188 +24,true,textDocument/completion,, +951,false,textDocument/didOpen,,4189 +942,false,textDocument/didOpen,,4190 +1279,false,textDocument/didOpen,,4192 +885,false,textDocument/didOpen,,4194 +251,false,textDocument/didOpen,,4196 +883,false,textDocument/didOpen,,4197 +936,false,textDocument/didOpen,,4198 +605,false,textDocument/didOpen,,4199 +215,false,textDocument/didOpen,,4200 +8,true,textDocument/completion,, +907,false,textDocument/didOpen,,4202 +214,false,textDocument/didOpen,,4203 +8,true,textDocument/completion,, +886,false,textDocument/didOpen,,4207 +244,false,textDocument/didOpen,,4208 +9,true,textDocument/completion,, +559,false,textDocument/didOpen,,4214 +22,true,textDocument/completion,, +223,false,textDocument/didOpen,,4215 +11,true,textDocument/completion,, +357,false,textDocument/didOpen,,4214 +869,false,textDocument/didOpen,,4213 +887,false,textDocument/didOpen,,4212 +952,false,textDocument/didOpen,,4211 +875,false,textDocument/didOpen,,4209 +883,false,textDocument/didOpen,,4208 +949,false,textDocument/didOpen,,4208 +32,true,textDocument/completion,, +945,false,textDocument/didOpen,,4211 +32,true,textDocument/completion,, +873,false,textDocument/didOpen,,4210 +880,false,textDocument/didOpen,,4209 +898,false,textDocument/didOpen,,4208 +231,false,textDocument/didOpen,,4207 +365,false,textDocument/didOpen,,4209 +17,true,textDocument/completion,, +985,false,textDocument/didOpen,,4213 +32,true,textDocument/completion,, +870,false,textDocument/didOpen,,4212 +374,false,textDocument/didOpen,,4214 +13,true,textDocument/completion,, +962,false,textDocument/didOpen,,4215 +923,false,textDocument/didOpen,,4218 +33,true,textDocument/completion,, +888,false,textDocument/didOpen,,4220 +33,true,textDocument/completion,, +868,false,textDocument/didOpen,,4221 +32,true,textDocument/completion,, +945,false,textDocument/didOpen,,4223 +886,false,textDocument/didOpen,,4223 +944,false,textDocument/didOpen,,4226 +986,false,textDocument/didOpen,,4228 +950,false,textDocument/didOpen,,4230 +882,false,textDocument/didOpen,,4231 +354,false,textDocument/didOpen,,4232 +975,false,textDocument/didOpen,,4233 +941,false,textDocument/didOpen,,4234 +893,false,textDocument/didOpen,,4235 +216,false,textDocument/didOpen,,4236 +8,true,textDocument/completion,, +251,false,textDocument/didOpen,,4238 +269,false,textDocument/didOpen,,4239 +882,false,textDocument/didOpen,,4240 +402,false,textDocument/didOpen,,4241 +269,false,textDocument/didOpen,,4242 +10,true,textDocument/completion,, +1021,false,textDocument/didOpen,,4241 +889,false,textDocument/didOpen,,4239 +898,false,textDocument/didOpen,,4296 +296,false,textDocument/didOpen,,4300 +892,false,textDocument/didOpen,,4304 +925,false,textDocument/didOpen,,4303 +960,false,textDocument/didOpen,,4304 +941,false,textDocument/didOpen,,4310 +984,false,textDocument/didOpen,,4312 +949,false,textDocument/didOpen,,4313 +886,false,textDocument/didOpen,,4314 +891,false,textDocument/didOpen,,4316 +955,false,textDocument/didOpen,,4321 +948,false,textDocument/didOpen,,4323 +214,false,textDocument/didOpen,,4325 +921,false,textDocument/didOpen,,4326 +243,false,textDocument/didOpen,,4327 +9,true,textDocument/completion,, +884,false,textDocument/didOpen,,4326 +205,false,textDocument/didOpen,,4327 +8,true,textDocument/completion,, +949,false,textDocument/didOpen,,4328 +985,false,textDocument/didOpen,,4330 +866,false,textDocument/didOpen,,4329 +440,false,textDocument/didOpen,,4328 +962,false,textDocument/didOpen,,4327 +951,false,textDocument/didOpen,,4326 +889,false,textDocument/didOpen,,4327 +377,false,textDocument/didOpen,,4328 +13,true,textDocument/completion,, +917,false,textDocument/didOpen,,4331 +266,false,textDocument/didOpen,,4333 +10,true,textDocument/completion,, +878,false,textDocument/didOpen,,4335 +875,false,textDocument/didOpen,,4343 +667,false,textDocument/didOpen,,4344 +920,false,textDocument/didOpen,,4346 +32,true,textDocument/completion,, +888,false,textDocument/didOpen,,4351 +883,false,textDocument/didOpen,,4354 +31,true,textDocument/completion,, +973,false,textDocument/didOpen,,4360 +43,true,textDocument/completion,, +950,false,textDocument/didOpen,,4362 +885,false,textDocument/didOpen,,4363 +260,false,textDocument/didOpen,,4364 +9,true,textDocument/completion,, +993,false,textDocument/didOpen,,4367 +942,false,textDocument/didOpen,,4368 +940,false,textDocument/didOpen,,4369 +397,false,textDocument/didOpen,,4372 +46,true,textDocument/completion,, +881,false,textDocument/didOpen,,4377 +950,false,textDocument/didOpen,,4376 +441,false,textDocument/didOpen,,4377 +22,true,textDocument/completion,, +726,false,textDocument/didOpen,,4379 +908,false,textDocument/didOpen,,4381 +42,true,textDocument/completion,, +892,false,textDocument/didOpen,,4383 +882,false,textDocument/didOpen,,4384 +272,false,textDocument/didOpen,,4386 +13,true,textDocument/completion,, +222,false,textDocument/didOpen,,4393 +923,false,textDocument/didOpen,,4395 +42,true,textDocument/completion,, +976,false,textDocument/didOpen,,4397 +41,true,textDocument/completion,, +951,false,textDocument/didOpen,,4398 +890,false,textDocument/didOpen,,4399 +951,false,textDocument/didOpen,,4397 +1011,false,textDocument/didOpen,,4396 +258,false,textDocument/didOpen,,4397 +35,true,textDocument/completion,, +953,false,textDocument/didOpen,,4398 +290,false,textDocument/didOpen,,4399 +409,false,textDocument/didOpen,,4401 +899,false,textDocument/didOpen,,4403 +888,false,textDocument/didOpen,,4405 +957,false,textDocument/didOpen,,4407 +202,false,textDocument/didOpen,,4409 +10,true,textDocument/completion,, +885,false,textDocument/didOpen,,4411 +943,false,textDocument/didOpen,,4412 +348,false,textDocument/didOpen,,4413 +905,false,textDocument/didOpen,,4416 +898,false,textDocument/didOpen,,4419 +233,false,textDocument/didOpen,,4420 +929,false,textDocument/didOpen,,4421 +446,false,textDocument/didOpen,,4422 +967,false,textDocument/didOpen,,4423 +978,false,textDocument/didOpen,,4424 +250,false,textDocument/didOpen,,4426 +219,false,textDocument/didOpen,,4428 +899,false,textDocument/didOpen,,4430 +894,false,textDocument/didOpen,,4431 +957,false,textDocument/didOpen,,4432 +925,false,textDocument/didOpen,,4434 +273,false,textDocument/didOpen,,4435 +959,false,textDocument/didOpen,,4437 +889,false,textDocument/didOpen,,4441 +961,false,textDocument/didOpen,,4443 +967,false,textDocument/didOpen,,4444 +954,false,textDocument/didOpen,,4445 +976,false,textDocument/didOpen,,4446 +42,true,textDocument/completion,, +902,false,textDocument/didOpen,,4447 +252,false,textDocument/didOpen,,4449 +13,true,textDocument/completion,, +889,false,textDocument/didOpen,,4454 +897,false,textDocument/didOpen,,4455 +957,false,textDocument/didOpen,,4456 +813,false,textDocument/didOpen,,4457 +40,true,textDocument/completion,, +958,false,textDocument/didOpen,,4458 +999,false,textDocument/didOpen,,4461 +947,false,textDocument/didOpen,,4462 +396,false,textDocument/didOpen,,4463 +970,false,textDocument/didOpen,,4461 +946,false,textDocument/didOpen,,4460 +948,false,textDocument/didOpen,,4459 +893,false,textDocument/didOpen,,4458 +894,false,textDocument/didOpen,,4457 +938,false,textDocument/didOpen,,4456 +270,false,textDocument/didOpen,,4457 +14,true,textDocument/completion,, +887,false,textDocument/didOpen,,4458 +889,false,textDocument/didOpen,,4462 +906,false,textDocument/didOpen,,4463 +925,false,textDocument/didOpen,,4462 +893,false,textDocument/didOpen,,4461 +988,false,textDocument/didOpen,,4460 +908,false,textDocument/didOpen,,4459 +924,false,textDocument/didOpen,,4458 +962,false,textDocument/didOpen,,4457 +201,false,textDocument/didOpen,,4456 +238,false,textDocument/didOpen,,4457 +10,true,textDocument/completion,, +207,false,textDocument/didOpen,,4458 +889,false,textDocument/didOpen,,4459 +262,false,textDocument/didOpen,,4460 +13,true,textDocument/completion,, +964,false,textDocument/didOpen,,4461 +888,false,textDocument/didOpen,,4465 +200,false,textDocument/didOpen,,4466 +211,false,textDocument/didOpen,,4468 +10,true,textDocument/completion,, +226,false,textDocument/didOpen,,4471 +10,true,textDocument/completion,, +207,false,textDocument/didOpen,,4472 +12,true,textDocument/completion,, +206,false,textDocument/didOpen,,4473 +10,true,textDocument/completion,, +1045,false,textDocument/didOpen,,4478 +42,true,textDocument/completion,, +887,false,textDocument/didOpen,,4482 +808,false,textDocument/didOpen,,4484 +45,true,textDocument/completion,, +225,false,textDocument/didOpen,,4485 +295,false,textDocument/didOpen,,4492 +7,true,textDocument/completion,, +733,false,textDocument/didOpen,,4491 +889,false,textDocument/didOpen,,4456 +214,false,textDocument/didOpen,,4455 +945,false,textDocument/didOpen,,4454 +888,false,textDocument/didOpen,,4445 +264,false,textDocument/didOpen,,4446 +7,true,textDocument/completion,, +937,false,textDocument/didOpen,,4451 +370,false,textDocument/didOpen,,4454 +14,true,textDocument/completion,, +945,false,textDocument/didOpen,,4455 +991,false,textDocument/didOpen,,4462 +32,true,textDocument/completion,, +1130,false,textDocument/didOpen,,4465 +1008,false,textDocument/didOpen,,4466 +30,true,textDocument/completion,, +956,false,textDocument/didOpen,,4475 +32,true,textDocument/completion,, +951,false,textDocument/didOpen,,4477 +980,false,textDocument/didOpen,,4478 +957,false,textDocument/didOpen,,4479 +978,false,textDocument/didOpen,,4482 +404,false,textDocument/didOpen,,4483 +11,true,textDocument/completion,, +963,false,textDocument/didOpen,,4486 +276,false,textDocument/didOpen,,4487 +8,true,textDocument/completion,, +950,false,textDocument/didOpen,,4488 +1541,false,textDocument/didOpen,,4487 +45,true,textDocument/completion,, +1656,false,textDocument/didOpen,,4493 +45,true,textDocument/completion,, +886,false,textDocument/didOpen,,4495 +893,false,textDocument/didOpen,,4496 +405,false,textDocument/didOpen,,4497 +10,true,textDocument/completion,, +883,false,textDocument/didOpen,,4500 +1430,false,textDocument/didOpen,,4503 +45,true,textDocument/completion,, +1445,false,textDocument/didOpen,,4505 +46,true,textDocument/completion,, +885,false,textDocument/didOpen,,4504 +951,false,textDocument/didOpen,,4498 +958,false,textDocument/didOpen,,4497 +57,true,textDocument/completion,, +204,false,textDocument/didOpen,,4499 +1273,false,textDocument/didOpen,,4500 +294,false,textDocument/didOpen,,4501 +14,true,textDocument/completion,, +221,false,textDocument/didOpen,,4508 +11,true,textDocument/completion,, +218,false,textDocument/didOpen,,4509 +12,true,textDocument/completion,, +962,false,textDocument/didOpen,,4512 +42,true,textDocument/completion,, +884,false,textDocument/didOpen,,4513 +961,false,textDocument/didOpen,,4515 +896,false,textDocument/didOpen,,4516 +920,false,textDocument/didOpen,,4519 +43,true,textDocument/completion,, +943,false,textDocument/didOpen,,4521 +432,false,textDocument/didOpen,,4522 +818,false,textDocument/didOpen,,4524 +30,true,textDocument/completion,, +920,false,textDocument/didOpen,,4529 +33,true,textDocument/completion,, +350,false,textDocument/didOpen,,4530 +246,false,textDocument/didOpen,,4531 +9,true,textDocument/completion,, +914,false,textDocument/didOpen,,4533 +403,false,textDocument/didOpen,,4535 +939,false,textDocument/didOpen,,4537 +959,false,textDocument/didOpen,,4539 +887,false,textDocument/didOpen,,4541 +198,false,textDocument/didOpen,,4542 +208,false,textDocument/didOpen,,4545 +12,true,textDocument/completion,, +886,false,textDocument/didOpen,,4552 +44,true,textDocument/completion,, +253,false,textDocument/didOpen,,4555 +14,true,textDocument/completion,, +920,false,textDocument/didOpen,,4559 +41,true,textDocument/completion,, +289,false,textDocument/didOpen,,4561 +14,true,textDocument/completion,, +911,false,textDocument/didOpen,,4564 +40,true,textDocument/completion,, +958,false,textDocument/didOpen,,4565 +31,true,textDocument/completion,, +246,false,textDocument/didOpen,,4566 +8,true,textDocument/completion,, +357,false,textDocument/didOpen,,4569 +12,true,textDocument/completion,, +940,false,textDocument/didOpen,,4572 +41,true,textDocument/completion,, +959,false,textDocument/didOpen,,4573 +892,false,textDocument/didOpen,,4574 +282,false,textDocument/didOpen,,4575 +10,true,textDocument/completion,, +956,false,textDocument/didOpen,,4576 +209,false,textDocument/didOpen,,4578 +8,true,textDocument/completion,, +891,false,textDocument/didOpen,,4580 +32,true,textDocument/completion,, +217,false,textDocument/didOpen,,4582 +20,true,textDocument/completion,, +882,false,textDocument/didOpen,,4584 +246,false,textDocument/didOpen,,4585 +10,true,textDocument/completion,, +210,false,textDocument/didOpen,,4596 +7,true,textDocument/completion,, +889,false,textDocument/didOpen,,4597 +898,false,textDocument/didOpen,,4601 +43,true,textDocument/completion,, +805,false,textDocument/didOpen,,4605 +30,true,textDocument/completion,, +208,false,textDocument/didOpen,,4606 +986,false,textDocument/didOpen,,4607 +276,false,textDocument/didOpen,,4608 +10,true,textDocument/completion,, +992,false,textDocument/didOpen,,4611 +927,false,textDocument/didOpen,,4612 +513,false,textDocument/didOpen,,4615 +8,true,textDocument/completion,, +571,false,textDocument/didOpen,,4617 +279,false,textDocument/didOpen,,4618 +10,true,textDocument/completion,, +389,false,textDocument/didOpen,,4620 +434,false,textDocument/didOpen,,4623 +15,true,textDocument/completion,, +628,false,textDocument/didOpen,,4626 +24,true,textDocument/completion,, +242,false,textDocument/didOpen,,4627 +9,true,textDocument/completion,, +452,false,textDocument/didOpen,,4631 +16,true,textDocument/completion,, +406,false,textDocument/didOpen,,4634 +16,true,textDocument/completion,, +989,false,textDocument/didOpen,,4636 +493,false,textDocument/didOpen,,4638 +18,true,textDocument/completion,, +900,false,textDocument/didOpen,,4640 +352,false,textDocument/didOpen,,4642 +16,true,textDocument/completion,, +897,false,textDocument/didOpen,,4643 +954,false,textDocument/didOpen,,4645 +897,false,textDocument/didOpen,,4647 +896,false,textDocument/didOpen,,4650 +41,true,textDocument/completion,, +984,false,textDocument/didOpen,,4651 +974,false,textDocument/didOpen,,4652 +980,false,textDocument/didOpen,,4651 +266,false,textDocument/didOpen,,4652 +13,true,textDocument/completion,, +872,false,textDocument/didOpen,,4654 +32,true,textDocument/completion,, +913,false,textDocument/didOpen,,4657 +44,true,textDocument/completion,, +257,false,textDocument/didOpen,,4661 +13,true,textDocument/completion,, +562,false,textDocument/didOpen,,4662 +874,false,textDocument/didOpen,,4663 +276,false,textDocument/didOpen,,4665 +642,false,textDocument/didOpen,,4666 +23,true,textDocument/completion,, +904,false,textDocument/didOpen,,4669 +308,false,textDocument/didOpen,,4672 +27,true,textDocument/completion,, +211,false,textDocument/didOpen,,4678 +9,true,textDocument/completion,, +273,false,textDocument/didOpen,,4679 +214,false,textDocument/didOpen,,4680 +905,false,textDocument/didOpen,,4684 +395,false,textDocument/didOpen,,4685 +10,true,textDocument/completion,, +886,false,textDocument/didOpen,,4689 +466,false,textDocument/didOpen,,4690 +17,true,textDocument/completion,, +307,false,textDocument/didOpen,,4691 +953,false,textDocument/didOpen,,4695 +218,false,textDocument/didOpen,,4694 +880,false,textDocument/didOpen,,4693 +918,false,textDocument/didOpen,,4692 +880,false,textDocument/didOpen,,4691 +881,false,textDocument/didOpen,,4689 +393,false,textDocument/didOpen,,4690 +14,true,textDocument/completion,, +948,false,textDocument/didOpen,,4695 +1496,false,textDocument/didOpen,,4697 +48,true,textDocument/completion,, +1050,false,textDocument/didOpen,,4701 +238,false,textDocument/didOpen,,4708 +45,true,textDocument/completion,, +688,false,textDocument/didOpen,,4709 +821,false,textDocument/didOpen,,4710 +1017,false,textDocument/didOpen,,4709 +987,false,textDocument/didOpen,,4704 +1118,false,textDocument/didOpen,,4703 +289,false,textDocument/didOpen,,4703 +20,true,textDocument/completion,, +891,false,textDocument/didOpen,,4708 +30,true,textDocument/completion,, +960,false,textDocument/didOpen,,4711 +34,true,textDocument/completion,, +1000,false,textDocument/didOpen,,4714 +45,true,textDocument/completion,, +888,false,textDocument/didOpen,,4715 +869,false,textDocument/didOpen,,4717 +926,false,textDocument/didOpen,,4719 +876,false,textDocument/didOpen,,4721 +217,false,textDocument/didOpen,,4723 +950,false,textDocument/didOpen,,4725 +447,false,textDocument/didOpen,,4727 +993,false,textDocument/didOpen,,4729 +882,false,textDocument/didOpen,,4731 +911,false,textDocument/didOpen,,4732 +880,false,textDocument/didOpen,,4733 +1164,false,textDocument/didOpen,,4735 +883,false,textDocument/didOpen,,4737 +885,false,textDocument/didOpen,,4739 +882,false,textDocument/didOpen,,4741 +896,false,textDocument/didOpen,,4742 +880,false,textDocument/didOpen,,4743 +282,false,textDocument/didOpen,,4744 +967,false,textDocument/didOpen,,4745 +40,true,textDocument/completion,, +956,false,textDocument/didOpen,,4750 +954,false,textDocument/didOpen,,4751 +958,false,textDocument/didOpen,,4753 +953,false,textDocument/didOpen,,4757 +1001,false,textDocument/didOpen,,4759 +232,false,textDocument/didOpen,,4761 +10,true,textDocument/completion,, +964,false,textDocument/didOpen,,4764 +889,false,textDocument/didOpen,,4765 +896,false,textDocument/didOpen,,4768 +1002,false,textDocument/didOpen,,4771 +270,false,textDocument/didOpen,,4772 +9,true,textDocument/completion,, +889,false,textDocument/didOpen,,4773 +888,false,textDocument/didOpen,,4774 +983,false,textDocument/didOpen,,4775 +992,false,textDocument/didOpen,,4776 +448,false,textDocument/didOpen,,4778 +896,false,textDocument/didOpen,,4782 +957,false,textDocument/didOpen,,4784 +1001,false,textDocument/didOpen,,4786 +234,false,textDocument/didOpen,,4787 +10,true,textDocument/completion,, +238,false,textDocument/didOpen,,4788 +214,false,textDocument/didOpen,,4789 +968,false,textDocument/didOpen,,4790 +897,false,textDocument/didOpen,,4792 +236,false,textDocument/didOpen,,4793 +9,true,textDocument/completion,, +1388,false,textDocument/didOpen,,4793 +51,true,textDocument/completion,, +894,false,textDocument/didOpen,,4797 +954,false,textDocument/didOpen,,4803 +1455,false,textDocument/didOpen,,4806 +50,true,textDocument/completion,, +913,false,textDocument/didOpen,,4808 +730,false,textDocument/didOpen,,4810 +937,false,textDocument/didOpen,,4811 +922,false,textDocument/didOpen,,4812 +958,false,textDocument/didOpen,,4811 +886,false,textDocument/didOpen,,4813 +891,false,textDocument/didOpen,,4815 +918,false,textDocument/didOpen,,4817 +892,false,textDocument/didOpen,,4819 +895,false,textDocument/didOpen,,4821 +948,false,textDocument/didOpen,,4822 +946,false,textDocument/didOpen,,4823 +641,false,textDocument/didOpen,,4824 +28,true,textDocument/completion,, +958,false,textDocument/didOpen,,4826 +885,false,textDocument/didOpen,,4827 +895,false,textDocument/didOpen,,4828 +350,false,textDocument/didOpen,,4829 +13,true,textDocument/completion,, +205,false,textDocument/didOpen,,4832 +895,false,textDocument/didOpen,,4833 +780,false,textDocument/didOpen,,4834 +483,false,textDocument/didOpen,,4835 +891,false,textDocument/didOpen,,4838 +209,false,textDocument/didOpen,,4839 +892,false,textDocument/didOpen,,4842 +1017,false,textDocument/didOpen,,4843 +959,false,textDocument/didOpen,,4844 +708,false,textDocument/didOpen,,4845 +1269,false,textDocument/didOpen,,4847 +960,false,textDocument/didOpen,,4849 +928,false,textDocument/didOpen,,4851 +1573,false,textDocument/didOpen,,4853 +956,false,textDocument/didOpen,,4854 +892,false,textDocument/didOpen,,4855 +355,false,textDocument/didOpen,,4856 +15,true,textDocument/completion,, +953,false,textDocument/didOpen,,4857 +887,false,textDocument/didOpen,,4859 +930,false,textDocument/didOpen,,4861 +935,false,textDocument/didOpen,,4863 +930,false,textDocument/didOpen,,4865 +956,false,textDocument/didOpen,,4866 +892,false,textDocument/didOpen,,4867 +377,false,textDocument/didOpen,,4868 +982,false,textDocument/didOpen,,4869 +893,false,textDocument/didOpen,,4870 +898,false,textDocument/didOpen,,4876 +885,false,textDocument/didOpen,,4878 +887,false,textDocument/didOpen,,4879 +29,true,textDocument/completion,, +234,false,textDocument/didOpen,,4880 +895,false,textDocument/didOpen,,4881 +943,false,textDocument/didOpen,,4883 +33,true,textDocument/completion,, +1346,false,textDocument/didOpen,,4884 +42,true,textDocument/completion,, +878,false,textDocument/didOpen,,4882 +1039,false,textDocument/didOpen,,4881 +231,false,textDocument/didOpen,,4881 +9,true,textDocument/completion,, +1439,false,textDocument/didOpen,,4882 +12,true,textDocument/completion,, +418,false,textDocument/didOpen,,4883 +11,true,textDocument/completion,, +885,false,textDocument/didOpen,,4884 +396,false,textDocument/didOpen,,4887 +10,true,textDocument/completion,, +912,false,textDocument/didOpen,,4888 +349,false,textDocument/didOpen,,4889 +16,true,textDocument/completion,, +954,false,textDocument/didOpen,,4890 +991,false,textDocument/didOpen,,4888 +250,false,textDocument/didOpen,,4889 +9,true,textDocument/completion,, +919,false,textDocument/didOpen,,4895 +33,true,textDocument/completion,, +885,false,textDocument/didOpen,,4896 +233,false,textDocument/didOpen,,4898 +9,true,textDocument/completion,, +1098,false,textDocument/didOpen,,4902 +30,true,textDocument/completion,, +1452,false,textDocument/didOpen,,4904 +46,true,textDocument/completion,, +286,false,textDocument/didOpen,,4909 +1111,false,textDocument/didOpen,,4913 +59,true,textDocument/completion,, +272,false,textDocument/didOpen,,4916 +12,true,textDocument/completion,, +1213,false,textDocument/didOpen,,4919 +41,true,textDocument/completion,, +283,false,textDocument/didOpen,,4922 +10,true,textDocument/completion,, +744,false,textDocument/didOpen,,4926 +28,true,textDocument/completion,, +953,false,textDocument/didOpen,,4927 +242,false,textDocument/didOpen,,4928 +8,true,textDocument/completion,, +885,false,textDocument/didOpen,,4927 +218,false,textDocument/didOpen,,4928 +7,true,textDocument/completion,, +979,false,textDocument/didOpen,,4929 +47,true,textDocument/completion,, +231,false,textDocument/didOpen,,4930 +12,true,textDocument/completion,, +216,false,textDocument/didOpen,,4931 +900,false,textDocument/didOpen,,4934 +43,true,textDocument/completion,, +958,false,textDocument/didOpen,,4939 +258,false,textDocument/didOpen,,4941 +10,true,textDocument/completion,, +908,false,textDocument/didOpen,,4942 +34,true,textDocument/completion,, +892,false,textDocument/didOpen,,4943 +68,true,textDocument/completion,, +298,false,textDocument/didOpen,,4944 +1083,false,textDocument/didOpen,,4946 +48,true,textDocument/completion,, +951,false,textDocument/didOpen,,4947 +981,false,textDocument/didOpen,,4948 +250,false,textDocument/didOpen,,4949 +12,true,textDocument/completion,, +941,false,textDocument/didOpen,,4950 +300,false,textDocument/didOpen,,4951 +13,true,textDocument/completion,, +283,false,textDocument/didOpen,,4952 +19,true,textDocument/completion,, +890,false,textDocument/didOpen,,4953 +921,false,textDocument/didOpen,,4954 +347,false,textDocument/didOpen,,4956 +17,true,textDocument/completion,, +891,false,textDocument/didOpen,,4959 +41,true,textDocument/completion,, +968,false,textDocument/didOpen,,4960 +886,false,textDocument/didOpen,,4961 +933,false,textDocument/didOpen,,4964 +43,true,textDocument/completion,, +278,false,textDocument/didOpen,,4965 +15,true,textDocument/completion,, +892,false,textDocument/didOpen,,4966 +42,true,textDocument/completion,, +885,false,textDocument/didOpen,,4968 +900,false,textDocument/didOpen,,4970 +898,false,textDocument/didOpen,,4972 +886,false,textDocument/didOpen,,4974 +900,false,textDocument/didOpen,,4975 +889,false,textDocument/didOpen,,4976 +224,false,textDocument/didOpen,,4977 +8,true,textDocument/completion,, +924,false,textDocument/didOpen,,4980 +903,false,textDocument/didOpen,,4981 +29,true,textDocument/completion,, +899,false,textDocument/didOpen,,4985 +42,true,textDocument/completion,, +919,false,textDocument/didOpen,,4986 +218,false,textDocument/didOpen,,4988 +945,false,textDocument/didOpen,,4989 +281,false,textDocument/didOpen,,4991 +15,true,textDocument/completion,, +956,false,textDocument/didOpen,,4992 +957,false,textDocument/didOpen,,4993 +959,false,textDocument/didOpen,,4994 +966,false,textDocument/didOpen,,4999 +982,false,textDocument/didOpen,,5004 +1308,false,textDocument/didOpen,,5005 +969,false,textDocument/didOpen,,5006 +332,false,textDocument/didOpen,,5008 +15,true,textDocument/completion,, +256,false,textDocument/didOpen,,5011 +13,true,textDocument/completion,, +578,false,textDocument/didOpen,,5015 +28,true,textDocument/completion,, +919,false,textDocument/didOpen,,5017 +41,true,textDocument/completion,, +229,false,textDocument/didOpen,,5018 +13,true,textDocument/completion,, +900,false,textDocument/didOpen,,5019 +42,true,textDocument/completion,, +1061,false,textDocument/didOpen,,5021 +45,true,textDocument/completion,, +896,false,textDocument/didOpen,,5022 +45,true,textDocument/completion,, +903,false,textDocument/didOpen,,5023 +214,false,textDocument/didOpen,,5024 +11,true,textDocument/completion,, +922,false,textDocument/didOpen,,5026 +897,false,textDocument/didOpen,,5027 +235,false,textDocument/didOpen,,5028 +926,false,textDocument/didOpen,,5029 +905,false,textDocument/didOpen,,5031 +942,false,textDocument/didOpen,,5033 +902,false,textDocument/didOpen,,5035 +972,false,textDocument/didOpen,,5037 +930,false,textDocument/didOpen,,5038 +1067,false,textDocument/didOpen,,5039 +1055,false,textDocument/didOpen,,5040 +942,false,textDocument/didOpen,,5039 +310,false,textDocument/didOpen,,5040 +578,false,textDocument/didOpen,,5042 +29,true,textDocument/completion,, +889,false,textDocument/didOpen,,5045 +250,false,textDocument/didOpen,,5046 +10,true,textDocument/completion,, +923,false,textDocument/didOpen,,5049 +42,true,textDocument/completion,, +900,false,textDocument/didOpen,,5052 +41,true,textDocument/completion,, +895,false,textDocument/didOpen,,5054 +894,false,textDocument/didOpen,,5062 +40,true,textDocument/completion,, +894,false,textDocument/didOpen,,5064 +362,false,textDocument/didOpen,,5067 +18,true,textDocument/completion,, +955,false,textDocument/didOpen,,5068 +893,false,textDocument/didOpen,,5067 +893,false,textDocument/didOpen,,5061 +201,false,textDocument/didOpen,,5061 +10,true,textDocument/completion,, +964,false,textDocument/didOpen,,5063 +954,false,textDocument/didOpen,,5066 +903,false,textDocument/didOpen,,5067 +42,true,textDocument/completion,, +1462,false,textDocument/didOpen,,5066 +47,true,textDocument/completion,, +1588,false,textDocument/didOpen,,5069 +47,true,textDocument/completion,, +891,false,textDocument/didOpen,,5071 +246,false,textDocument/didOpen,,5070 +802,false,textDocument/didOpen,,5069 +29,true,textDocument/completion,, +276,false,textDocument/didOpen,,5071 +8,true,textDocument/completion,, +1257,false,textDocument/didOpen,,5072 +40,true,textDocument/completion,, +225,false,textDocument/didOpen,,5074 +14,true,textDocument/completion,, +897,false,textDocument/didOpen,,5075 +30,true,textDocument/completion,, +940,false,textDocument/didOpen,,5076 +34,true,textDocument/completion,, +891,false,textDocument/didOpen,,5079 +43,true,textDocument/completion,, +933,false,textDocument/didOpen,,5085 +33,true,textDocument/completion,, +283,false,textDocument/didOpen,,5086 +10,true,textDocument/completion,, +891,false,textDocument/didOpen,,5087 +32,true,textDocument/completion,, +999,false,textDocument/didOpen,,5088 +953,false,textDocument/didOpen,,5091 +33,true,textDocument/completion,, +504,false,textDocument/didOpen,,5092 +19,true,textDocument/completion,, +884,false,textDocument/didOpen,,5094 +313,false,textDocument/didOpen,,5095 +9,true,textDocument/completion,, +956,false,textDocument/didOpen,,5096 +263,false,textDocument/didOpen,,5099 +8,true,textDocument/completion,, +895,false,textDocument/didOpen,,5103 +32,true,textDocument/completion,, +919,false,textDocument/didOpen,,5101 +818,false,textDocument/didOpen,,5102 +30,true,textDocument/completion,, +890,false,textDocument/didOpen,,5106 +53,true,textDocument/completion,, +922,false,textDocument/didOpen,,5109 +882,false,textDocument/didOpen,,5110 +955,false,textDocument/didOpen,,5114 +1502,false,textDocument/didOpen,,5116 +233,false,textDocument/didOpen,,5118 +963,false,textDocument/didOpen,,5117 +982,false,textDocument/didOpen,,5115 +16,true,textDocument/completion,, +316,false,textDocument/didOpen,,5117 +10,true,textDocument/completion,, +16,true,textDocument/completion,, +911,false,textDocument/didOpen,,5118 +32,true,textDocument/completion,, +891,false,textDocument/didOpen,,5119 +65,true,textDocument/completion,, +247,false,textDocument/didOpen,,5120 +12,true,textDocument/completion,, +927,false,textDocument/didOpen,,5119 +880,false,textDocument/didOpen,,5087 +924,false,textDocument/didOpen,,5119 +996,false,textDocument/didOpen,,5097 +961,false,textDocument/didOpen,,5098 +1042,false,textDocument/didOpen,,5100 +44,true,textDocument/completion,, +362,false,textDocument/didOpen,,5104 +50,true,textDocument/completion,, +901,false,textDocument/didOpen,,5105 +349,false,textDocument/didOpen,,5107 +1016,false,textDocument/didOpen,,5110 +331,false,textDocument/didOpen,,5112 +17,true,textDocument/completion,, +1084,false,textDocument/didOpen,,5115 +42,true,textDocument/completion,, +628,false,textDocument/didOpen,,5117 +894,false,textDocument/didOpen,,5119 +965,false,textDocument/didOpen,,5124 +901,false,textDocument/didOpen,,5125 +205,false,textDocument/didOpen,,5126 +10,true,textDocument/completion,, +963,false,textDocument/didOpen,,5136 +934,false,textDocument/didOpen,,5138 +919,false,textDocument/didOpen,,5140 +895,false,textDocument/didOpen,,5142 +952,false,textDocument/didOpen,,5144 +486,false,textDocument/didOpen,,5145 +998,false,textDocument/didOpen,,5146 +246,false,textDocument/didOpen,,5147 +9,true,textDocument/completion,, +947,false,textDocument/didOpen,,5149 +229,false,textDocument/didOpen,,5150 +9,true,textDocument/completion,, +893,false,textDocument/didOpen,,5154 +32,true,textDocument/completion,, +952,false,textDocument/didOpen,,5156 +206,false,textDocument/didOpen,,5157 +8,true,textDocument/completion,, +397,false,textDocument/didOpen,,5160 +15,true,textDocument/completion,, +961,false,textDocument/didOpen,,5162 +306,false,textDocument/didOpen,,5164 +980,false,textDocument/didOpen,,5165 +32,true,textDocument/completion,, +887,false,textDocument/didOpen,,5167 +349,false,textDocument/didOpen,,5169 +18,true,textDocument/completion,, +894,false,textDocument/didOpen,,5171 +228,false,textDocument/didOpen,,5172 +8,true,textDocument/completion,, +886,false,textDocument/didOpen,,5173 +933,false,textDocument/didOpen,,5174 +311,false,textDocument/didOpen,,5174 +13,true,textDocument/completion,, +897,false,textDocument/didOpen,,5175 +227,false,textDocument/didOpen,,5176 +9,true,textDocument/completion,, +271,false,textDocument/didOpen,,5177 +890,false,textDocument/didOpen,,5181 +943,false,textDocument/didOpen,,5184 +31,true,textDocument/completion,, +358,false,textDocument/didOpen,,5187 +13,true,textDocument/completion,, +921,false,textDocument/didOpen,,5188 +967,false,textDocument/didOpen,,5189 +397,false,textDocument/didOpen,,5191 +15,true,textDocument/completion,, +286,false,textDocument/didOpen,,5192 +10,true,textDocument/completion,, +958,false,textDocument/didOpen,,5193 +673,false,textDocument/didOpen,,5194 +249,false,textDocument/didOpen,,5195 +13,true,textDocument/completion,, +968,false,textDocument/didOpen,,5194 +988,false,textDocument/didOpen,,5196 +996,false,textDocument/didOpen,,5194 +1002,false,textDocument/didOpen,,5192 +900,false,textDocument/didOpen,,5191 +999,false,textDocument/didOpen,,5190 +959,false,textDocument/didOpen,,5189 +959,false,textDocument/didOpen,,5188 +966,false,textDocument/didOpen,,5187 +209,false,textDocument/didOpen,,5187 +10,true,textDocument/completion,, +899,false,textDocument/didOpen,,5194 +335,false,textDocument/didOpen,,5195 +16,true,textDocument/completion,, +748,false,textDocument/didOpen,,5196 +903,false,textDocument/didOpen,,5197 +254,false,textDocument/didOpen,,5198 +8,true,textDocument/completion,, +883,false,textDocument/didOpen,,5197 +225,false,textDocument/didOpen,,5198 +11,true,textDocument/completion,, +234,false,textDocument/didOpen,,5202 +7,true,textDocument/completion,, +281,false,textDocument/didOpen,,5212 +11,true,textDocument/completion,, +242,false,textDocument/didOpen,,5218 +7,true,textDocument/completion,, +882,false,textDocument/didOpen,,5220 +32,true,textDocument/completion,, +884,false,textDocument/didOpen,,5222 +874,false,textDocument/didOpen,,5223 +273,false,textDocument/didOpen,,5224 +11,true,textDocument/completion,, +949,false,textDocument/didOpen,,5226 +207,false,textDocument/didOpen,,5227 +887,false,textDocument/didOpen,,5228 +298,false,textDocument/didOpen,,5229 +11,true,textDocument/completion,, +972,false,textDocument/didOpen,,5232 +971,false,textDocument/didOpen,,5233 +887,false,textDocument/didOpen,,5234 +958,false,textDocument/didOpen,,5236 +927,false,textDocument/didOpen,,5238 +959,false,textDocument/didOpen,,5240 +883,false,textDocument/didOpen,,5242 +889,false,textDocument/didOpen,,5243 +889,false,textDocument/didOpen,,5244 +404,false,textDocument/didOpen,,5246 +15,true,textDocument/completion,, +266,false,textDocument/didOpen,,5247 +950,false,textDocument/didOpen,,5246 +228,false,textDocument/didOpen,,5248 +8,true,textDocument/completion,, +270,false,textDocument/didOpen,,5252 +9,true,textDocument/completion,, +1452,false,textDocument/didOpen,,5256 +45,true,textDocument/completion,, +211,false,textDocument/didOpen,,5258 +15,true,textDocument/completion,, +826,false,textDocument/didOpen,,5260 +30,true,textDocument/completion,, +442,false,textDocument/didOpen,,5264 +20,true,textDocument/completion,, +1033,false,textDocument/didOpen,,5266 +289,false,textDocument/didOpen,,5267 +11,true,textDocument/completion,, +918,false,textDocument/didOpen,,5272 +902,false,textDocument/didOpen,,5275 +32,true,textDocument/completion,, +225,false,textDocument/didOpen,,5279 +49,true,textDocument/completion,, +207,false,textDocument/didOpen,,5280 +8,true,textDocument/completion,, +1001,false,textDocument/didOpen,,5286 +34,true,textDocument/completion,, +993,false,textDocument/didOpen,,5292 +297,false,textDocument/didOpen,,5293 +10,true,textDocument/completion,, +950,false,textDocument/didOpen,,5297 +246,false,textDocument/didOpen,,5293 +575,false,textDocument/didOpen,,5296 +21,true,textDocument/completion,, +355,false,textDocument/didOpen,,5297 +610,false,textDocument/didOpen,,5293 +962,false,textDocument/didOpen,,5294 +949,false,textDocument/didOpen,,5295 +501,false,textDocument/didOpen,,5296 +18,true,textDocument/completion,, +964,false,textDocument/didOpen,,5300 +30,true,textDocument/completion,, +256,false,textDocument/didOpen,,5301 +890,false,textDocument/didOpen,,5302 +927,false,textDocument/didOpen,,5304 +47,true,textDocument/completion,, +968,false,textDocument/didOpen,,5305 +32,true,textDocument/completion,, +565,false,textDocument/didOpen,,5307 +25,true,textDocument/completion,, +935,false,textDocument/didOpen,,5308 +33,true,textDocument/completion,, +197,false,textDocument/didOpen,,5310 +8,true,textDocument/completion,, +882,false,textDocument/didOpen,,5312 +894,false,textDocument/didOpen,,5317 +965,false,textDocument/didOpen,,5318 +428,false,textDocument/didOpen,,5320 +11,true,textDocument/completion,, +923,false,textDocument/didOpen,,5322 +264,false,textDocument/didOpen,,5323 +894,false,textDocument/didOpen,,5324 +34,true,textDocument/completion,, +979,false,textDocument/didOpen,,5326 +250,false,textDocument/didOpen,,5328 +904,false,textDocument/didOpen,,5329 +32,true,textDocument/completion,, +961,false,textDocument/didOpen,,5331 +882,false,textDocument/didOpen,,5333 +891,false,textDocument/didOpen,,5335 +961,false,textDocument/didOpen,,5337 +884,false,textDocument/didOpen,,5339 +980,false,textDocument/didOpen,,5341 +33,true,textDocument/completion,, +322,false,textDocument/didOpen,,5345 +890,false,textDocument/didOpen,,5346 +31,true,textDocument/completion,, +218,false,textDocument/didOpen,,5354 +33,true,textDocument/completion,, +686,false,textDocument/didOpen,,5362 +31,true,textDocument/completion,, +901,false,textDocument/didOpen,,5365 +34,true,textDocument/completion,, +889,false,textDocument/didOpen,,5367 +34,true,textDocument/completion,, +892,false,textDocument/didOpen,,5368 +33,true,textDocument/completion,, +215,false,textDocument/didOpen,,5338 +344,false,textDocument/didOpen,,5335 +966,false,textDocument/didOpen,,5336 +232,false,textDocument/didOpen,,5337 +8,true,textDocument/completion,, +901,false,textDocument/didOpen,,5341 +33,true,textDocument/completion,, +1173,false,textDocument/didOpen,,5343 +44,true,textDocument/completion,, +288,false,textDocument/didOpen,,5344 +229,false,textDocument/didOpen,,5345 +9,true,textDocument/completion,, +252,false,textDocument/didOpen,,5347 +8,true,textDocument/completion,, +278,false,textDocument/didOpen,,5350 +13,true,textDocument/completion,, +358,false,textDocument/didOpen,,5355 +8,true,textDocument/completion,, +645,false,textDocument/didOpen,,5358 +31,true,textDocument/completion,, +883,false,textDocument/didOpen,,5360 +33,true,textDocument/completion,, +311,false,textDocument/didOpen,,5362 +977,false,textDocument/didOpen,,5363 +983,false,textDocument/didOpen,,5364 +230,false,textDocument/didOpen,,5366 +11,true,textDocument/completion,, +215,false,textDocument/didOpen,,5364 +312,false,textDocument/didOpen,,5365 +911,false,textDocument/didOpen,,5366 +895,false,textDocument/didOpen,,5367 +33,true,textDocument/completion,, +991,false,textDocument/didOpen,,5371 +396,false,textDocument/didOpen,,5373 +8,true,textDocument/completion,, +968,false,textDocument/didOpen,,5375 +899,false,textDocument/didOpen,,5376 +258,false,textDocument/didOpen,,5377 +219,false,textDocument/didOpen,,5381 +8,true,textDocument/completion,, +959,false,textDocument/didOpen,,5383 +902,false,textDocument/didOpen,,5385 +35,true,textDocument/completion,, +961,false,textDocument/didOpen,,5394 +212,false,textDocument/didOpen,,5398 +8,true,textDocument/completion,, +804,false,textDocument/didOpen,,5401 +33,true,textDocument/completion,, +923,false,textDocument/didOpen,,5402 +33,true,textDocument/completion,, +895,false,textDocument/didOpen,,5406 +32,true,textDocument/completion,, +912,false,textDocument/didOpen,,5413 +32,true,textDocument/completion,, +242,false,textDocument/didOpen,,5423 +9,true,textDocument/completion,, +929,false,textDocument/didOpen,,5425 +887,false,textDocument/didOpen,,5426 +42,true,textDocument/completion,, +299,false,textDocument/didOpen,,5427 +888,false,textDocument/didOpen,,5428 +964,false,textDocument/didOpen,,5430 +32,true,textDocument/completion,, +893,false,textDocument/didOpen,,5433 +32,true,textDocument/completion,, +934,false,textDocument/didOpen,,5431 +921,false,textDocument/didOpen,,5430 +895,false,textDocument/didOpen,,5429 +893,false,textDocument/didOpen,,5428 +207,false,textDocument/didOpen,,5429 +8,true,textDocument/completion,, +959,false,textDocument/didOpen,,5430 +954,false,textDocument/didOpen,,5428 +209,false,textDocument/didOpen,,5429 +10,true,textDocument/completion,, +906,false,textDocument/didOpen,,5434 +897,false,textDocument/didOpen,,5436 +32,true,textDocument/completion,, +889,false,textDocument/didOpen,,5438 +1015,false,textDocument/didOpen,,5439 +897,false,textDocument/didOpen,,5449 +35,true,textDocument/completion,, +949,false,textDocument/didOpen,,5450 +229,false,textDocument/didOpen,,5451 +8,true,textDocument/completion,, +886,false,textDocument/didOpen,,5455 +32,true,textDocument/completion,, +886,false,textDocument/didOpen,,5457 +958,false,textDocument/didOpen,,5465 +955,false,textDocument/didOpen,,5466 +203,false,textDocument/didOpen,,5468 +884,false,textDocument/didOpen,,5470 +945,false,textDocument/didOpen,,5472 +916,false,textDocument/didOpen,,5474 +247,false,textDocument/didOpen,,5475 +10,true,textDocument/completion,, +216,false,textDocument/didOpen,,5477 +973,false,textDocument/didOpen,,5479 +1541,false,textDocument/didOpen,,5481 +217,false,textDocument/didOpen,,5483 +241,false,textDocument/didOpen,,5483 +437,false,textDocument/didOpen,,5482 +199,false,textDocument/didOpen,,5483 +8,true,textDocument/completion,, +881,false,textDocument/didOpen,,5488 +955,false,textDocument/didOpen,,5489 +954,false,textDocument/didOpen,,5493 +955,false,textDocument/didOpen,,5495 +888,false,textDocument/didOpen,,5497 +896,false,textDocument/didOpen,,5498 +1279,false,textDocument/didOpen,,5500 +32,true,textDocument/completion,, +986,false,textDocument/didOpen,,5503 +892,false,textDocument/didOpen,,5504 +891,false,textDocument/didOpen,,5507 +959,false,textDocument/didOpen,,5509 +957,false,textDocument/didOpen,,5510 +338,false,textDocument/didOpen,,5511 +14,true,textDocument/completion,, +963,false,textDocument/didOpen,,5516 +962,false,textDocument/didOpen,,5515 +956,false,textDocument/didOpen,,5514 +966,false,textDocument/didOpen,,5513 +969,false,textDocument/didOpen,,5512 +971,false,textDocument/didOpen,,5511 +921,false,textDocument/didOpen,,5510 +271,false,textDocument/didOpen,,5511 +10,true,textDocument/completion,, +894,false,textDocument/didOpen,,5516 +343,false,textDocument/didOpen,,5517 +1088,false,textDocument/didOpen,,5515 +932,false,textDocument/didOpen,,5514 +894,false,textDocument/didOpen,,5513 +233,false,textDocument/didOpen,,5512 +937,false,textDocument/didOpen,,5511 +951,false,textDocument/didOpen,,5510 +358,false,textDocument/didOpen,,5512 +12,true,textDocument/completion,, +881,false,textDocument/didOpen,,5516 +617,false,textDocument/didOpen,,5518 +23,true,textDocument/completion,, +254,false,textDocument/didOpen,,5519 +9,true,textDocument/completion,, +356,false,textDocument/didOpen,,5523 +48,true,textDocument/completion,, +892,false,textDocument/didOpen,,5524 +42,true,textDocument/completion,, +884,false,textDocument/didOpen,,5525 +32,true,textDocument/completion,, +279,false,textDocument/didOpen,,5526 +10,true,textDocument/completion,, +229,false,textDocument/didOpen,,5527 +8,true,textDocument/completion,, +346,false,textDocument/didOpen,,5528 +12,true,textDocument/completion,, +895,false,textDocument/didOpen,,5529 +884,false,textDocument/didOpen,,5529 +885,false,textDocument/didOpen,,5528 +230,false,textDocument/didOpen,,5529 +889,false,textDocument/didOpen,,5532 +201,false,textDocument/didOpen,,5534 +889,false,textDocument/didOpen,,5536 +893,false,textDocument/didOpen,,5538 +981,false,textDocument/didOpen,,5540 +587,false,textDocument/didOpen,,5541 +890,false,textDocument/didOpen,,5540 +838,false,textDocument/didOpen,,5541 +887,false,textDocument/didOpen,,5542 +206,false,textDocument/didOpen,,5543 +983,false,textDocument/didOpen,,5542 +957,false,textDocument/didOpen,,5540 +233,false,textDocument/didOpen,,5541 +8,true,textDocument/completion,, +910,false,textDocument/didOpen,,5542 +1406,false,textDocument/didOpen,,5543 +352,false,textDocument/didOpen,,5544 +10,true,textDocument/completion,, +947,false,textDocument/didOpen,,5546 +1284,false,textDocument/didOpen,,5547 +897,false,textDocument/didOpen,,5549 +531,false,textDocument/didOpen,,5550 +18,true,textDocument/completion,, +927,false,textDocument/didOpen,,5554 +1003,false,textDocument/didOpen,,5555 +227,false,textDocument/didOpen,,5556 +972,false,textDocument/didOpen,,5561 +932,false,textDocument/didOpen,,5563 +33,true,textDocument/completion,, +953,false,textDocument/didOpen,,5567 +953,false,textDocument/didOpen,,5568 +891,false,textDocument/didOpen,,5569 +965,false,textDocument/didOpen,,5568 +957,false,textDocument/didOpen,,5569 +215,false,textDocument/didOpen,,5570 +8,true,textDocument/completion,, +962,false,textDocument/didOpen,,5571 +895,false,textDocument/didOpen,,5572 +890,false,textDocument/didOpen,,5574 +214,false,textDocument/didOpen,,5576 +894,false,textDocument/didOpen,,5578 +953,false,textDocument/didOpen,,5580 +469,false,textDocument/didOpen,,5581 +977,false,textDocument/didOpen,,5582 +239,false,textDocument/didOpen,,5583 +8,true,textDocument/completion,, +950,false,textDocument/didOpen,,5585 +211,false,textDocument/didOpen,,5586 +890,false,textDocument/didOpen,,5587 +268,false,textDocument/didOpen,,5588 +8,true,textDocument/completion,, +365,false,textDocument/didOpen,,5590 +965,false,textDocument/didOpen,,5591 +1046,false,textDocument/didOpen,,5592 +892,false,textDocument/didOpen,,5593 +450,false,textDocument/didOpen,,5594 +414,false,textDocument/didOpen,,5595 +204,false,textDocument/didOpen,,5596 +965,false,textDocument/didOpen,,5598 +993,false,textDocument/didOpen,,5600 +956,false,textDocument/didOpen,,5602 +1004,false,textDocument/didOpen,,5604 +999,false,textDocument/didOpen,,5605 +268,false,textDocument/didOpen,,5606 +962,false,textDocument/didOpen,,5609 +340,false,textDocument/didOpen,,5610 +1007,false,textDocument/didOpen,,5614 +279,false,textDocument/didOpen,,5616 +896,false,textDocument/didOpen,,5617 +986,false,textDocument/didOpen,,5619 +966,false,textDocument/didOpen,,5621 +885,false,textDocument/didOpen,,5623 +923,false,textDocument/didOpen,,5625 +920,false,textDocument/didOpen,,5626 +951,false,textDocument/didOpen,,5627 +964,false,textDocument/didOpen,,5629 +950,false,textDocument/didOpen,,5633 +1000,false,textDocument/didOpen,,5635 +966,false,textDocument/didOpen,,5636 +898,false,textDocument/didOpen,,5637 +891,false,textDocument/didOpen,,5638 +890,false,textDocument/didOpen,,5639 +908,false,textDocument/didOpen,,5641 +36,true,textDocument/completion,, +882,false,textDocument/didOpen,,5640 +935,false,textDocument/didOpen,,5639 +892,false,textDocument/didOpen,,5638 +922,false,textDocument/didOpen,,5639 +900,false,textDocument/didOpen,,5641 +890,false,textDocument/didOpen,,5642 +892,false,textDocument/didOpen,,5643 +892,false,textDocument/didOpen,,5644 +921,false,textDocument/didOpen,,5645 +908,false,textDocument/didOpen,,5646 +236,false,textDocument/didOpen,,5647 +7,true,textDocument/completion,, +26550,false,textDocument/didOpen,,5646 +57353,false,textDocument/didOpen,,5647 +59886,false,textDocument/didOpen,,5646 +25666,false,textDocument/didOpen,,5647 +439,false,textDocument/didOpen,,5648 +889,false,textDocument/didOpen,,5647 +942,false,textDocument/didOpen,,5615 +955,false,textDocument/didOpen,,5616 +951,false,textDocument/didOpen,,5615 +914,false,textDocument/didOpen,,5616 +1000,false,textDocument/didOpen,,5648 +982,false,textDocument/didOpen,,5638 +960,false,textDocument/didOpen,,5639 +957,false,textDocument/didOpen,,5649 +882,false,textDocument/didOpen,,5651 +918,false,textDocument/didOpen,,5653 +951,false,textDocument/didOpen,,5655 +947,false,textDocument/didOpen,,5656 +218,false,textDocument/didOpen,,5655 +907,false,textDocument/didOpen,,5647 +943,false,textDocument/didOpen,,5648 +971,false,textDocument/didOpen,,5654 +200,false,textDocument/didOpen,,5660 +982,false,textDocument/didOpen,,5661 +878,false,textDocument/didOpen,,5662 +879,false,textDocument/didOpen,,5663 +954,false,textDocument/didOpen,,5662 +890,false,textDocument/didOpen,,5663 +514,false,textDocument/didOpen,,5662 +203,false,textDocument/didOpen,,5663 +1006,false,textDocument/didOpen,,5664 +208,false,textDocument/didOpen,,5663 +909,false,textDocument/didOpen,,5664 +992,false,textDocument/didOpen,,5665 +406,false,textDocument/didOpen,,5664 +913,false,textDocument/didOpen,,5665 +959,false,textDocument/didOpen,,5664 +335,false,textDocument/didOpen,,5671 +957,false,textDocument/didOpen,,5670 +952,false,textDocument/didOpen,,5669 +897,false,textDocument/didOpen,,5666 +973,false,textDocument/didOpen,,5663 +894,false,textDocument/didOpen,,5662 +888,false,textDocument/didOpen,,5669 +885,false,textDocument/didOpen,,5667 +883,false,textDocument/didOpen,,5665 +891,false,textDocument/didOpen,,5667 +911,false,textDocument/didOpen,,5663 +892,false,textDocument/didOpen,,5659 +948,false,textDocument/didOpen,,5658 +956,false,textDocument/didOpen,,5659 +886,false,textDocument/didOpen,,5661 +1000,false,textDocument/didOpen,,5663 +887,false,textDocument/didOpen,,5659 +961,false,textDocument/didOpen,,5660 +960,false,textDocument/didOpen,,5661 +954,false,textDocument/didOpen,,5662 +956,false,textDocument/didOpen,,5663 +983,false,textDocument/didOpen,,5662 +241,false,textDocument/didOpen,,5665 +300,false,textDocument/didOpen,,5666 +883,false,textDocument/didOpen,,5665 +394,false,textDocument/didOpen,,5664 +949,false,textDocument/didOpen,,5666 +906,false,textDocument/didOpen,,5667 +886,false,textDocument/didOpen,,5666 +393,false,textDocument/didOpen,,5665 +952,false,textDocument/didOpen,,5667 +945,false,textDocument/didOpen,,5668 +955,false,textDocument/didOpen,,5667 +957,false,textDocument/didOpen,,5666 +894,false,textDocument/didOpen,,5668 +958,false,textDocument/didOpen,,5669 +889,false,textDocument/didOpen,,5668 +925,false,textDocument/didOpen,,5669 +346,false,textDocument/didOpen,,5672 +12,false,textDocument/completion,89, +227,false,textDocument/didOpen,,5675 +206,false,textDocument/didOpen,,5676 +919,false,textDocument/didOpen,,5677 +904,false,textDocument/didOpen,,5678 +876,false,textDocument/didOpen,,5677 +887,false,textDocument/didOpen,,5678 +48280,false,textDocument/didOpen,,5677 +107400,false,textDocument/didOpen,,5676 +110154,false,textDocument/didOpen,,5657 +140733,false,textDocument/didOpen,,5658 +85,false,textDocument/completion,208, +117169,false,textDocument/didOpen,,5659 +124431,false,textDocument/didOpen,,5661 +132,false,textDocument/completion,208, +155601,false,textDocument/didOpen,,5662 +210873,false,textDocument/didOpen,,5644 +179195,false,textDocument/didOpen,,5645 +68,false,textDocument/completion,208, +242680,false,textDocument/didOpen,,5640 +250255,false,textDocument/didOpen,,5639 +240030,false,textDocument/didOpen,,5640 +105,false,textDocument/completion,208, +279088,false,textDocument/didOpen,,5641 +113,false,textDocument/completion,208, +264037,false,textDocument/didOpen,,5643 +286505,false,textDocument/didOpen,,5645 +301763,false,textDocument/didOpen,,5644 +292095,false,textDocument/didOpen,,5643 +302267,false,textDocument/didOpen,,5642 +289444,false,textDocument/didOpen,,5641 +320341,false,textDocument/didOpen,,5640 +386721,false,textDocument/didOpen,,5639 +388609,false,textDocument/didOpen,,5640 +421912,false,textDocument/didOpen,,5636 +399877,false,textDocument/didOpen,,5636 +430365,false,textDocument/didOpen,,5637 +96,false,textDocument/completion,208, +448133,false,textDocument/didOpen,,5638 +86,false,textDocument/completion,208, +456052,false,textDocument/didOpen,,5644 +125,false,textDocument/completion,208, +406255,false,textDocument/didOpen,,5646 +389826,false,textDocument/didOpen,,5648 +442043,false,textDocument/didOpen,,5647 +435242,false,textDocument/didOpen,,5638 +466191,false,textDocument/didOpen,,5637 +502126,false,textDocument/didOpen,,5638 +70,false,textDocument/completion,208, +485977,false,textDocument/didOpen,,5639 +474907,false,textDocument/didOpen,,5640 +460756,false,textDocument/didOpen,,5643 +469086,false,textDocument/didOpen,,5645 +67,false,textDocument/completion,208, +495247,false,textDocument/didOpen,,5647 +89,false,textDocument/completion,208, +493344,false,textDocument/didOpen,,5648 +518848,false,textDocument/didOpen,,5646 +496431,false,textDocument/didOpen,,5645 +525418,false,textDocument/didOpen,,5646 +538109,false,textDocument/didOpen,,5647 +555286,false,textDocument/didOpen,,5639 +624261,false,textDocument/didOpen,,5641 +554846,false,textDocument/didOpen,,5643 +619866,false,textDocument/didOpen,,5645 +595781,false,textDocument/didOpen,,5647 +707792,false,textDocument/didOpen,,5639 +658165,false,textDocument/didOpen,,5641 +64,false,textDocument/completion,208, +650118,false,textDocument/didOpen,,5643 +655430,false,textDocument/didOpen,,5646 +722371,false,textDocument/didOpen,,5648 +69,false,textDocument/completion,208, +759906,false,textDocument/didOpen,,5654 +728059,false,textDocument/didOpen,,5655 +76,false,textDocument/completion,208, +711541,false,textDocument/didOpen,,5656 +698555,false,textDocument/didOpen,,5654 +700665,false,textDocument/didOpen,,5655 +69,false,textDocument/completion,208, +668348,false,textDocument/didOpen,,5659 +2155,false,textDocument/completion,208, +753076,false,textDocument/didOpen,,5662 +68,false,textDocument/completion,208, +789192,false,textDocument/didOpen,,5664 +754355,false,textDocument/didOpen,,5646 +822883,false,textDocument/didOpen,,5639 +850811,false,textDocument/didOpen,,5634 +931571,false,textDocument/didOpen,,5631 +862814,false,textDocument/didOpen,,5632 +1658,false,textDocument/completion,208, +867604,false,textDocument/didOpen,,5634 +914423,false,textDocument/didOpen,,5633 +922405,false,textDocument/didOpen,,5635 +1070911,false,textDocument/didOpen,,5636 +3151,false,textDocument/completion,208, +1052855,false,textDocument/didOpen,,5637 +1042088,false,textDocument/didOpen,,5639 +73,false,textDocument/completion,208, +994302,false,textDocument/didOpen,,5643 +79,false,textDocument/completion,208, +948018,false,textDocument/didOpen,,5650 +3193,false,textDocument/completion,208, +981209,false,textDocument/didOpen,,5651 +927061,false,textDocument/didOpen,,5652 +1074047,false,textDocument/didOpen,,5651 +1088889,false,textDocument/didOpen,,5632 +1007806,false,textDocument/didOpen,,5632 +119,false,textDocument/completion,208, +1142125,false,textDocument/didOpen,,5633 +1094739,false,textDocument/didOpen,,5637 +70,false,textDocument/completion,208, +1114824,false,textDocument/didOpen,,5641 +74,false,textDocument/completion,208, +1055445,false,textDocument/didOpen,,5643 +1046084,false,textDocument/didOpen,,5645 +70,false,textDocument/completion,208, +1021049,false,textDocument/didOpen,,5647 +1025852,false,textDocument/didOpen,,5648 +1055384,false,textDocument/didOpen,,5653 +1809,false,textDocument/completion,208, +1077338,false,textDocument/didOpen,,5654 +1092788,false,textDocument/didOpen,,5656 +66,false,textDocument/completion,208, +1080467,false,textDocument/didOpen,,5659 +1080019,false,textDocument/didOpen,,5660 +1105907,false,textDocument/didOpen,,5661 +1185738,false,textDocument/didOpen,,5637 +1069929,false,textDocument/didOpen,,5627 +1173145,false,textDocument/didOpen,,5626 +1269545,false,textDocument/didOpen,,5628 +1628748,false,textDocument/didOpen,,5632 +1613001,false,textDocument/didOpen,,5634 +1536859,false,textDocument/didOpen,,5635 +128,false,textDocument/completion,208, +1550107,false,textDocument/didOpen,,5636 +1522956,false,textDocument/didOpen,,5635 +1576821,false,textDocument/didOpen,,5635 +1659636,false,textDocument/didOpen,,5636 +3724,false,textDocument/completion,208, +1740919,false,textDocument/didOpen,,5638 +1796044,false,textDocument/didOpen,,5645 +1784613,false,textDocument/didOpen,,5635 +1828976,false,textDocument/didOpen,,5637 +67,false,textDocument/completion,208, +1716642,false,textDocument/didOpen,,5639 +72,false,textDocument/completion,208, +1837624,false,textDocument/didOpen,,5641 +1815620,false,textDocument/didOpen,,5643 +1691240,false,textDocument/didOpen,,5644 +1917140,false,textDocument/didOpen,,5645 +1795033,false,textDocument/didOpen,,5646 +1881198,false,textDocument/didOpen,,5638 +1738335,false,textDocument/didOpen,,5640 +1969878,false,textDocument/didOpen,,5642 +1844454,false,textDocument/didOpen,,5644 +1933392,false,textDocument/didOpen,,5646 +1862678,false,textDocument/didOpen,,5641 +1793109,false,textDocument/didOpen,,5643 +91,false,textDocument/completion,208, +1797699,false,textDocument/didOpen,,5645 +1728568,false,textDocument/didOpen,,5646 +2103546,false,textDocument/didOpen,,5644 +1925657,false,textDocument/didOpen,,5647 +187,false,textDocument/completion,208, +1898317,false,textDocument/didOpen,,5648 +1935857,false,textDocument/didOpen,,5646 +2051784,false,textDocument/didOpen,,5648 +77,false,textDocument/completion,208, +2002988,false,textDocument/didOpen,,5650 +1995857,false,textDocument/didOpen,,5654 +103,false,textDocument/completion,208, +1989814,false,textDocument/didOpen,,5655 +1936127,false,textDocument/didOpen,,5657 +1929449,false,textDocument/didOpen,,5657 +1947122,false,textDocument/didOpen,,5659 +1951437,false,textDocument/didOpen,,5661 +2023151,false,textDocument/didOpen,,5663 +2251192,false,textDocument/didOpen,,5665 +2185222,false,textDocument/didOpen,,5657 +2384859,false,textDocument/didOpen,,5657 +2227886,false,textDocument/didOpen,,5659 +2038690,false,textDocument/didOpen,,5661 +2267072,false,textDocument/didOpen,,5663 +2111289,false,textDocument/didOpen,,5665 +2458963,false,textDocument/didOpen,,5654 +2138040,false,textDocument/didOpen,,5655 +73,false,textDocument/completion,208, +2277756,false,textDocument/didOpen,,5657 +2299525,false,textDocument/didOpen,,5652 +2305892,false,textDocument/didOpen,,5655 +117,false,textDocument/completion,208, +2227772,false,textDocument/didOpen,,5656 +2199288,false,textDocument/didOpen,,5657 +2252010,false,textDocument/didOpen,,5659 +6013,false,textDocument/completion,208, +2317731,false,textDocument/didOpen,,5662 +80,false,textDocument/completion,208, +2258349,false,textDocument/didOpen,,5665 +2323412,false,textDocument/didOpen,,5662 +2511076,false,textDocument/didOpen,,5664 +2486844,false,textDocument/didOpen,,5666 +145,false,textDocument/completion,208, +2415470,false,textDocument/didOpen,,5671 +2490779,false,textDocument/didOpen,,5672 +5744,false,textDocument/completion,208, +2634033,false,textDocument/didOpen,,5680 +2199070,false,textDocument/didOpen,,5684 +67,false,textDocument/completion,208, +2419058,false,textDocument/didOpen,,5690 +2372474,false,textDocument/didOpen,,5682 +2485746,false,textDocument/didOpen,,5681 +2536030,false,textDocument/didOpen,,5683 +6029,false,textDocument/completion,208, +2527162,false,textDocument/didOpen,,5689 +73,false,textDocument/completion,208, +2513202,false,textDocument/didOpen,,5690 +2524429,false,textDocument/didOpen,,5695 +2528709,false,textDocument/didOpen,,5696 +86,false,textDocument/completion,208, +2540820,false,textDocument/didOpen,,5695 +2707408,false,textDocument/didOpen,,5695 +2741259,false,textDocument/didOpen,,5697 +2787075,false,textDocument/didOpen,,5699 +2884394,false,textDocument/didOpen,,5701 +2736567,false,textDocument/didOpen,,5703 +2933790,false,textDocument/didOpen,,5695 +2761461,false,textDocument/didOpen,,5695 +2671468,false,textDocument/didOpen,,5701 +2790681,false,textDocument/didOpen,,5695 +2869355,false,textDocument/didOpen,,5697 +2782619,false,textDocument/didOpen,,5699 +2643616,false,textDocument/didOpen,,5701 +2836387,false,textDocument/didOpen,,5703 +2846568,false,textDocument/didOpen,,5695 +2896961,false,textDocument/didOpen,,5695 +2999918,false,textDocument/didOpen,,5697 +2752474,false,textDocument/didOpen,,5701 +2852932,false,textDocument/didOpen,,5703 +3041441,false,textDocument/didOpen,,5695 +2965239,false,textDocument/didOpen,,5695 +2835161,false,textDocument/didOpen,,5697 +3083392,false,textDocument/didOpen,,5699 +2800795,false,textDocument/didOpen,,5701 +3027577,false,textDocument/didOpen,,5703 +2904142,false,textDocument/didOpen,,5695 +3298636,false,textDocument/didOpen,,5695 +3086397,false,textDocument/didOpen,,5697 +3159626,false,textDocument/didOpen,,5699 +3162633,false,textDocument/didOpen,,5701 +3104243,false,textDocument/didOpen,,5703 +3602326,false,textDocument/didOpen,,5695 +3185357,false,textDocument/didOpen,,5695 +3557720,false,textDocument/didOpen,,5697 +3176980,false,textDocument/didOpen,,5699 +3200031,false,textDocument/didOpen,,5701 +3232610,false,textDocument/didOpen,,5703 +3358050,false,textDocument/didOpen,,5685 +3284933,false,textDocument/didOpen,,5687 +149,false,textDocument/completion,208, +3460639,false,textDocument/didOpen,,5688 +3545809,false,textDocument/didOpen,,5689 +3457737,false,textDocument/didOpen,,5664 +3513319,false,textDocument/didOpen,,5608 +3638467,false,textDocument/didOpen,,5610 +3477691,false,textDocument/didOpen,,5614 +3661688,false,textDocument/didOpen,,5616 +3423959,false,textDocument/didOpen,,5616 +3378016,false,textDocument/didOpen,,5616 +3252268,false,textDocument/didOpen,,5618 +3466178,false,textDocument/didOpen,,5620 +3395104,false,textDocument/didOpen,,5622 +3565578,false,textDocument/didOpen,,5624 +3597060,false,textDocument/didOpen,,5624 +3703631,false,textDocument/didOpen,,5624 +3350281,false,textDocument/didOpen,,5626 +3643431,false,textDocument/didOpen,,5628 +3846622,false,textDocument/didOpen,,5630 +3523978,false,textDocument/didOpen,,5632 +3606756,false,textDocument/didOpen,,5632 +3515071,false,textDocument/didOpen,,5634 +3401643,false,textDocument/didOpen,,5636 +3507213,false,textDocument/didOpen,,5638 +3639373,false,textDocument/didOpen,,5640 +3512538,false,textDocument/didOpen,,5640 +3487893,false,textDocument/didOpen,,5640 +3656303,false,textDocument/didOpen,,5642 +3451008,false,textDocument/didOpen,,5644 +3531412,false,textDocument/didOpen,,5646 +3438055,false,textDocument/didOpen,,5648 +3487011,false,textDocument/didOpen,,5648 +3884787,false,textDocument/didOpen,,5648 +3817649,false,textDocument/didOpen,,5650 +3737873,false,textDocument/didOpen,,5652 +3727393,false,textDocument/didOpen,,5654 +3967026,false,textDocument/didOpen,,5656 +3689279,false,textDocument/didOpen,,5658 +69,false,textDocument/completion,208, +94,false,textDocument/completion,208, +3843978,false,textDocument/didOpen,,5650 +3975920,false,textDocument/didOpen,,5647 +3791246,false,textDocument/didOpen,,5643 +3883140,false,textDocument/didOpen,,5645 +72,false,textDocument/completion,208, +3895564,false,textDocument/didOpen,,5647 +3749793,false,textDocument/didOpen,,5646 +3895621,false,textDocument/didOpen,,5649 +108,false,textDocument/completion,208, +3844862,false,textDocument/didOpen,,5650 +4032937,false,textDocument/didOpen,,5648 +4117252,false,textDocument/didOpen,,5648 +3851622,false,textDocument/didOpen,,5652 +4033882,false,textDocument/didOpen,,5653 +88,false,textDocument/completion,208, +3837994,false,textDocument/didOpen,,5658 +67,false,textDocument/completion,208, +3851396,false,textDocument/didOpen,,5660 +69,false,textDocument/completion,208, +3971664,false,textDocument/didOpen,,5656 +3891433,false,textDocument/didOpen,,5658 +70,false,textDocument/completion,208, +4104137,false,textDocument/didOpen,,5659 +3888665,false,textDocument/didOpen,,5653 +4173679,false,textDocument/didOpen,,5654 +70,false,textDocument/completion,208, +4130770,false,textDocument/didOpen,,5656 +4196598,false,textDocument/didOpen,,5653 +3898001,false,textDocument/didOpen,,5648 +4141366,false,textDocument/didOpen,,5648 +4055667,false,textDocument/didOpen,,5650 +109,false,textDocument/completion,208, +4155887,false,textDocument/didOpen,,5655 +9694,false,textDocument/completion,208, +4194765,false,textDocument/didOpen,,5659 +74,false,textDocument/completion,208, +3962773,false,textDocument/didOpen,,5660 +91,false,textDocument/completion,208, +4182508,false,textDocument/didOpen,,5662 +4339520,false,textDocument/didOpen,,5662 +4113332,false,textDocument/didOpen,,5662 +4347788,false,textDocument/didOpen,,5664 +4237569,false,textDocument/didOpen,,5666 +4257071,false,textDocument/didOpen,,5668 +4558089,false,textDocument/didOpen,,5670 +4509153,false,textDocument/didOpen,,5662 +4349408,false,textDocument/didOpen,,5662 +4460127,false,textDocument/didOpen,,5664 +5082072,false,textDocument/didOpen,,5666 +5813537,false,textDocument/didOpen,,5668 +4443426,false,textDocument/didOpen,,5670 +4854124,false,textDocument/didOpen,,5662 +4621172,false,textDocument/didOpen,,5656 +4527447,false,textDocument/didOpen,,5658 +72,false,textDocument/completion,208, +4616171,false,textDocument/didOpen,,5663 +4995083,false,textDocument/didOpen,,5664 +94,false,textDocument/completion,208, +4967449,false,textDocument/didOpen,,5668 +65,false,textDocument/completion,208, +4743811,false,textDocument/didOpen,,5673 +4788250,false,textDocument/didOpen,,5665 +4985412,false,textDocument/didOpen,,5666 +9603,false,textDocument/completion,208, +4980828,false,textDocument/didOpen,,5669 +5251185,false,textDocument/didOpen,,5668 +5064789,false,textDocument/didOpen,,5667 +4710967,false,textDocument/didOpen,,5669 +4503214,false,textDocument/didOpen,,5671 +5289473,false,textDocument/didOpen,,5672 +5635990,false,textDocument/didOpen,,5676 +5626618,false,textDocument/didOpen,,5677 +72,false,textDocument/completion,208, +4951141,false,textDocument/didOpen,,5678 +4219927,false,textDocument/didOpen,,5680 +4403177,false,textDocument/didOpen,,5682 +4614753,false,textDocument/didOpen,,5684 +4974400,false,textDocument/didOpen,,5686 +4655851,false,textDocument/didOpen,,5678 +4903214,false,textDocument/didOpen,,5655 +72,false,textDocument/completion,208, +4390764,false,textDocument/didOpen,,5660 +71,false,textDocument/completion,208, +4461032,false,textDocument/didOpen,,5659 +4361857,false,textDocument/didOpen,,5661 +4452428,false,textDocument/didOpen,,5662 +4387539,false,textDocument/didOpen,,5663 +4476087,false,textDocument/didOpen,,5664 +76,false,textDocument/completion,208, +4481031,false,textDocument/didOpen,,5665 +4291007,false,textDocument/didOpen,,5666 +4542270,false,textDocument/didOpen,,5667 +41193,false,textDocument/didOpen,,319 +236,false,textDocument/didOpen,,320 +1033,false,textDocument/didOpen,,321 +1003,false,textDocument/didOpen,,320 +1006,false,textDocument/didOpen,,321 +38220,false,textDocument/didOpen,,319 +38090,false,textDocument/didOpen,,318 +1052,false,textDocument/didOpen,,319 +1036,false,textDocument/didOpen,,320 +67378,false,textDocument/didOpen,,321 +144,false,textDocument/completion,21, +44660,false,textDocument/didOpen,,322 +40881,false,textDocument/didOpen,,323 +36063,false,textDocument/didOpen,,324 +1076,false,textDocument/didOpen,,325 +1119,false,textDocument/didOpen,,326 +1071,false,textDocument/didOpen,,327 +27706,false,textDocument/didOpen,,328 +89,false,textDocument/completion,21, +53099,false,textDocument/didOpen,,330 +1028,false,textDocument/didOpen,,331 +53172,false,textDocument/didOpen,,332 +144,false,textDocument/completion,21, +52417,false,textDocument/didOpen,,333 +49500,false,textDocument/didOpen,,334 +54503,false,textDocument/didOpen,,335 +75201,false,textDocument/didOpen,,337 +12412,false,textDocument/didOpen,,318 +17356,false,textDocument/didOpen,,317 +44914,false,textDocument/didOpen,,316 +14130,false,textDocument/didOpen,,315 +25814,false,textDocument/didOpen,,316 +41091,false,textDocument/didOpen,,317 +42469,false,textDocument/didOpen,,318 +49080,false,textDocument/didOpen,,319 +38751,false,textDocument/didOpen,,320 +13396,false,textDocument/didOpen,,316 +400,false,textDocument/didOpen,,317 +396,false,textDocument/completion,20, +12766,false,textDocument/didOpen,,316 +80590,false,textDocument/didOpen,,319 +45709,false,textDocument/didOpen,,318 +1007,false,textDocument/didOpen,,319 +997,false,textDocument/didOpen,,320 +60920,false,textDocument/didOpen,,319 +1041,false,textDocument/didOpen,,315 +44159,false,textDocument/didOpen,,317 +12862,false,textDocument/didOpen,,318 +44533,false,textDocument/didOpen,,317 +46644,false,textDocument/didOpen,,322 +382,false,textDocument/didOpen,,324 +181,false,textDocument/completion,20, +1085,false,textDocument/didOpen,,326 +1055,false,textDocument/didOpen,,327 +144,false,textDocument/completion,1, +1086,false,textDocument/didOpen,,328 +20265,false,textDocument/didOpen,,329 +18679,false,textDocument/didOpen,,330 +19373,false,textDocument/didOpen,,329 +1115,false,textDocument/didOpen,,328 +1067,false,textDocument/didOpen,,327 +1061,false,textDocument/didOpen,,326 +481,false,textDocument/didOpen,,327 +1101,false,textDocument/didOpen,,328 +148,false,textDocument/completion,1, +344,false,textDocument/didOpen,,330 +43,false,textDocument/completion,1, +1079,false,textDocument/didOpen,,331 +833,false,textDocument/didOpen,,330 +1068,false,textDocument/didOpen,,331 +1117,false,textDocument/didOpen,,330 +338,false,textDocument/didOpen,,329 +289,false,textDocument/didOpen,,328 +1077,false,textDocument/didOpen,,327 +1093,false,textDocument/didOpen,,326 +47104,false,textDocument/didOpen,,317 +76649,false,textDocument/didOpen,,322 +381,false,textDocument/didOpen,,323 +157,false,textDocument/completion,20, +397,false,textDocument/didOpen,,324 +1104,false,textDocument/didOpen,,325 +1064,false,textDocument/didOpen,,326 +1062,false,textDocument/didOpen,,327 +1089,false,textDocument/didOpen,,328 +143,false,textDocument/completion,1, +1100,false,textDocument/didOpen,,329 +1100,false,textDocument/didOpen,,327 +1062,false,textDocument/didOpen,,329 +160,false,textDocument/completion,1, +1067,false,textDocument/didOpen,,331 +1070,false,textDocument/didOpen,,332 +142,false,textDocument/completion,1, +1114,false,textDocument/didOpen,,333 +149,false,textDocument/completion,1, +1098,false,textDocument/didOpen,,336 +149,false,textDocument/completion,1, +1043,false,textDocument/didOpen,,337 +143,false,textDocument/completion,1, +1083,false,textDocument/didOpen,,338 +143,false,textDocument/completion,1, +1056,false,textDocument/didOpen,,339 +140,false,textDocument/completion,1, +1064,false,textDocument/didOpen,,340 +144,false,textDocument/completion,1, +295,false,textDocument/didOpen,,342 +36,false,textDocument/completion,1, +1092,false,textDocument/didOpen,,343 +20112,false,textDocument/didOpen,,346 +23495,false,textDocument/didOpen,,347 +277,false,textDocument/completion,11, +19472,false,textDocument/didOpen,,349 +1093,false,textDocument/didOpen,,350 +22790,false,textDocument/didOpen,,351 +283,false,textDocument/completion,11, +21777,false,textDocument/didOpen,,352 +29021,false,textDocument/didOpen,,353 +281,false,textDocument/completion,11, +15713,false,textDocument/didOpen,,355 +1235,false,textDocument/didOpen,,356 +1002,false,textDocument/didOpen,,357 +996,false,textDocument/didOpen,,356 +21959,false,textDocument/didOpen,,355 +1343,false,textDocument/didOpen,,356 +15602,false,textDocument/didOpen,,357 +47514,false,textDocument/didOpen,,360 +142,false,textDocument/completion,23, +528,false,textDocument/didOpen,,362 +390,false,textDocument/completion,23, +510,false,textDocument/didOpen,,364 +498,false,textDocument/didOpen,,365 +459,false,textDocument/didOpen,,366 +491,false,textDocument/didOpen,,371 +559,false,textDocument/didOpen,,373 +499,false,textDocument/didOpen,,375 +60069,false,textDocument/didOpen,,376 +52313,false,textDocument/didOpen,,377 +71254,false,textDocument/didOpen,,378 +46933,false,textDocument/didOpen,,380 +46204,false,textDocument/didOpen,,382 +45498,false,textDocument/didOpen,,384 +64354,false,textDocument/didOpen,,386 +41971,false,textDocument/didOpen,,388 +44128,false,textDocument/didOpen,,377 +43443,false,textDocument/didOpen,,376 +353,false,textDocument/didOpen,,363 +73248,false,textDocument/didOpen,,376 +62506,false,textDocument/didOpen,,367 +95585,false,textDocument/didOpen,,366 +20222,false,textDocument/didOpen,,364 +68931,false,textDocument/didOpen,,362 +46664,false,textDocument/didOpen,,363 +60047,false,textDocument/didOpen,,362 +94273,false,textDocument/didOpen,,363 +510,false,textDocument/completion,23, +48402,false,textDocument/didOpen,,365 +51938,false,textDocument/didOpen,,366 +57325,false,textDocument/didOpen,,367 +44212,false,textDocument/didOpen,,368 +67091,false,textDocument/didOpen,,369 +65641,false,textDocument/didOpen,,371 +65641,false,textDocument/didOpen,,375 +57683,false,textDocument/didOpen,,377 +48721,false,textDocument/didOpen,,379 +1118,false,textDocument/didOpen,,380 +254,false,textDocument/didOpen,,381 +1047,false,textDocument/didOpen,,382 +1050,false,textDocument/didOpen,,383 +1052,false,textDocument/didOpen,,384 +938,false,textDocument/didOpen,,385 +1125,false,textDocument/didOpen,,386 +1057,false,textDocument/didOpen,,389 +1091,false,textDocument/didOpen,,390 +38614,false,textDocument/didOpen,,391 +43507,false,textDocument/didOpen,,392 +59038,false,textDocument/didOpen,,396 +42428,false,textDocument/didOpen,,398 +14446,false,textDocument/didOpen,,400 +60767,false,textDocument/didOpen,,402 +65059,false,textDocument/didOpen,,403 +120233,false,textDocument/didOpen,,402 +68172,false,textDocument/didOpen,,401 +80995,false,textDocument/didOpen,,400 +75601,false,textDocument/didOpen,,399 +1141,false,textDocument/didOpen,,378 +496,false,textDocument/didOpen,,379 +141,false,textDocument/completion,1, +531,false,textDocument/didOpen,,381 +1133,false,textDocument/didOpen,,378 +129005,false,textDocument/didOpen,,399 +495,false,textDocument/didOpen,,356 +488,false,textDocument/didOpen,,357 +912,false,textDocument/completion,29, +462,false,textDocument/didOpen,,356 +496,false,textDocument/didOpen,,359 +904,false,textDocument/completion,29, +137357,false,textDocument/didOpen,,360 +75152,false,textDocument/didOpen,,363 +1337,false,textDocument/completion,27, +82596,false,textDocument/didOpen,,364 +129165,false,textDocument/didOpen,,320 +75401,false,textDocument/didOpen,,318 +60647,false,textDocument/didOpen,,317 +76356,false,textDocument/didOpen,,318 +63636,false,textDocument/didOpen,,319 +48,false,textDocument/completion,20, +68458,false,textDocument/didOpen,,320 +104956,false,textDocument/didOpen,,321 +42,false,textDocument/completion,20, +69074,false,textDocument/didOpen,,323 +46,false,textDocument/completion,20, +70709,false,textDocument/didOpen,,326 +47,false,textDocument/completion,20, +65746,false,textDocument/didOpen,,330 +46,false,textDocument/completion,20, +62368,false,textDocument/didOpen,,333 +67855,false,textDocument/didOpen,,334 +64691,false,textDocument/didOpen,,335 +46,false,textDocument/completion,20, +21825,false,textDocument/didOpen,,336 +68441,false,textDocument/didOpen,,335 +70349,false,textDocument/didOpen,,336 +45,false,textDocument/completion,20, +68740,false,textDocument/didOpen,,337 +92482,false,textDocument/didOpen,,337 +59,false,textDocument/completion,20, +65162,false,textDocument/didOpen,,341 +50,false,textDocument/completion,20, +65937,false,textDocument/didOpen,,345 +46,false,textDocument/completion,20, +73125,false,textDocument/didOpen,,346 +65745,false,textDocument/didOpen,,343 +73347,false,textDocument/didOpen,,341 +70055,false,textDocument/didOpen,,342 +46,false,textDocument/completion,20, +70648,false,textDocument/didOpen,,344 +46,false,textDocument/completion,20, +69109,false,textDocument/didOpen,,345 +67033,false,textDocument/didOpen,,347 +52069,false,textDocument/didOpen,,348 +70145,false,textDocument/didOpen,,349 +46,false,textDocument/completion,20, +74209,false,textDocument/didOpen,,350 +73742,false,textDocument/didOpen,,351 +69947,false,textDocument/didOpen,,352 +20079,false,textDocument/didOpen,,353 +69772,false,textDocument/didOpen,,354 +71885,false,textDocument/didOpen,,358 +46,false,textDocument/completion,20, +77394,false,textDocument/didOpen,,359 +85599,false,textDocument/didOpen,,360 +47,false,textDocument/completion,20, +76638,false,textDocument/didOpen,,362 +72741,false,textDocument/didOpen,,363 +46,false,textDocument/completion,20, +78965,false,textDocument/didOpen,,364 +80167,false,textDocument/didOpen,,363 +76789,false,textDocument/didOpen,,364 +48,false,textDocument/completion,20, +73671,false,textDocument/didOpen,,363 +153073,false,textDocument/didOpen,,364 +46,false,textDocument/completion,20, +83169,false,textDocument/didOpen,,368 +82634,false,textDocument/didOpen,,371 +46,false,textDocument/completion,20, +79800,false,textDocument/didOpen,,372 +67,false,textDocument/completion,20, +78503,false,textDocument/didOpen,,374 +46,false,textDocument/completion,20, +77774,false,textDocument/didOpen,,379 +81347,false,textDocument/didOpen,,381 +137291,false,textDocument/didOpen,,382 +43,false,textDocument/completion,20, +81467,false,textDocument/didOpen,,392 +46,false,textDocument/completion,20, +75397,false,textDocument/didOpen,,393 +76268,false,textDocument/didOpen,,394 +47,false,textDocument/completion,20, +80500,false,textDocument/didOpen,,396 +47,false,textDocument/completion,20, +84448,false,textDocument/didOpen,,396 +46,false,textDocument/completion,20, +43161,false,textDocument/didOpen,,397 +84696,false,textDocument/didOpen,,398 +140238,false,textDocument/didOpen,,399 +23,false,textDocument/completion,20, +87896,false,textDocument/didOpen,,400 +81785,false,textDocument/didOpen,,401 +43,false,textDocument/completion,20, +86310,false,textDocument/didOpen,,403 +85945,false,textDocument/didOpen,,402 +87885,false,textDocument/didOpen,,400 +90379,false,textDocument/didOpen,,401 +63,false,textDocument/completion,20, +86755,false,textDocument/didOpen,,412 +90144,false,textDocument/didOpen,,413 +61,false,textDocument/completion,20, +91129,false,textDocument/didOpen,,417 +47,false,textDocument/completion,20, +89110,false,textDocument/didOpen,,418 +44,false,textDocument/completion,20, +95887,false,textDocument/didOpen,,420 +61,false,textDocument/completion,20, +97328,false,textDocument/didOpen,,424 +61,false,textDocument/completion,20, +95930,false,textDocument/didOpen,,426 +59,false,textDocument/completion,20, +97460,false,textDocument/didOpen,,429 +62,false,textDocument/completion,20, +94026,false,textDocument/didOpen,,430 +62,false,textDocument/completion,20, +91327,false,textDocument/didOpen,,431 +59,false,textDocument/completion,20, +96081,false,textDocument/didOpen,,432 +47,false,textDocument/completion,20, +94140,false,textDocument/didOpen,,435 +57,false,textDocument/completion,20, +100281,false,textDocument/didOpen,,440 +46,false,textDocument/completion,20, +93059,false,textDocument/didOpen,,442 +24349,false,textDocument/didOpen,,443 +15,false,textDocument/completion,20, +130904,false,textDocument/didOpen,,445 +100766,false,textDocument/didOpen,,444 +48,false,textDocument/completion,20, +102294,false,textDocument/didOpen,,446 +45,false,textDocument/completion,20, +97191,false,textDocument/didOpen,,448 +47,false,textDocument/completion,20, +95766,false,textDocument/didOpen,,449 +95992,false,textDocument/didOpen,,450 +63,false,textDocument/completion,20, +109479,false,textDocument/didOpen,,452 +53,false,textDocument/completion,20, +93870,false,textDocument/didOpen,,453 +104891,false,textDocument/didOpen,,452 +97497,false,textDocument/didOpen,,451 +108097,false,textDocument/didOpen,,450 +112130,false,textDocument/didOpen,,444 +103640,false,textDocument/didOpen,,443 +105942,false,textDocument/didOpen,,442 +105297,false,textDocument/didOpen,,444 +107044,false,textDocument/didOpen,,446 +61,false,textDocument/completion,20, +118117,false,textDocument/didOpen,,448 +65,false,textDocument/completion,20, +116166,false,textDocument/didOpen,,451 +67,false,textDocument/completion,20, +119537,false,textDocument/didOpen,,454 +47,false,textDocument/completion,20, +107175,false,textDocument/didOpen,,467 +46,false,textDocument/completion,20, +113091,false,textDocument/didOpen,,471 +58,false,textDocument/completion,20, +113072,false,textDocument/didOpen,,474 +63,false,textDocument/completion,20, +104795,false,textDocument/didOpen,,476 +47,false,textDocument/completion,20, +104476,false,textDocument/didOpen,,482 +49,false,textDocument/completion,20, +110354,false,textDocument/didOpen,,484 +46,false,textDocument/completion,20, +110352,false,textDocument/didOpen,,485 +48663,false,textDocument/didOpen,,364 +172295,false,textDocument/didOpen,,485 +37376,false,textDocument/didOpen,,317 +34348,false,textDocument/didOpen,,485 +167471,false,textDocument/didOpen,,5788 +209005,false,textDocument/didOpen,,5787 +270897,false,textDocument/didOpen,,5786 +185532,false,textDocument/didOpen,,4016 +195,false,textDocument/didOpen,,1 +391825,false,textDocument/didOpen,,7639 +196,false,textDocument/didOpen,,1 +203,false,textDocument/didOpen,,1 +197,false,textDocument/didOpen,,1 +264,false,textDocument/didOpen,,1 +208,false,textDocument/didOpen,,1 +232,false,textDocument/didOpen,,1 +195,false,textDocument/didOpen,,1 +389035,false,textDocument/didOpen,,7639 +386930,false,textDocument/didOpen,,7639 +413364,false,textDocument/didOpen,,7639 +288,false,textDocument/didOpen,,1 +381771,false,textDocument/didOpen,,7639 +342006,false,textDocument/didOpen,,7644 +310576,false,textDocument/didOpen,,7645 +489124,false,textDocument/didOpen,,7641 +594888,false,textDocument/didOpen,,7643 +649739,false,textDocument/didOpen,,7645 +5665,false,textDocument/didOpen,,7646 +78,false,textDocument/completion,1, +881442,false,textDocument/didOpen,,7645 +845,false,textDocument/didOpen,,7646 +24,false,textDocument/completion,1, +805,false,textDocument/didOpen,,7647 +636,false,textDocument/didOpen,,7648 +572,false,textDocument/didOpen,,7650 +21,false,textDocument/completion,1, +1024,false,textDocument/didOpen,,7652 +54,false,textDocument/completion,1, +1191,false,textDocument/didOpen,,7655 +134,false,textDocument/completion,1, +677,false,textDocument/didOpen,,7656 +3484,false,textDocument/didOpen,,7657 +174,false,textDocument/completion,1, +927,false,textDocument/didOpen,,7658 +1952,false,textDocument/didOpen,,7655 +807,false,textDocument/didOpen,,7656 +42,false,textDocument/completion,1, +666,false,textDocument/didOpen,,7657 +25,false,textDocument/completion,1, +3088,false,textDocument/didOpen,,7658 +113,false,textDocument/completion,1, +3072,false,textDocument/didOpen,,7659 +114,false,textDocument/completion,1, +713,false,textDocument/didOpen,,7660 +30,false,textDocument/completion,1, +2749,false,textDocument/didOpen,,7661 +102,false,textDocument/completion,1, +2748,false,textDocument/didOpen,,7662 +946308,false,textDocument/didOpen,,7663 +1045988,false,textDocument/didOpen,,7664 +1084874,false,textDocument/didOpen,,7663 +1196029,false,textDocument/didOpen,,7664 +1066,false,textDocument/didOpen,,7665 +714,false,textDocument/didOpen,,7666 +837,false,textDocument/didOpen,,7665 +1272192,false,textDocument/didOpen,,7664 +1357228,false,textDocument/didOpen,,7663 +852,false,textDocument/didOpen,,7662 +1446,false,textDocument/didOpen,,7661 +634,false,textDocument/didOpen,,7662 +582,false,textDocument/didOpen,,7664 +1397,false,textDocument/didOpen,,7666 +652,false,textDocument/didOpen,,7668 +1437145,false,textDocument/didOpen,,7669 +1516339,false,textDocument/didOpen,,7670 +1605142,false,textDocument/didOpen,,7671 +62,false,textDocument/completion,341, +156,false,textDocument/didOpen,,7675 +111,false,textDocument/didOpen,,7676 +55,false,textDocument/completion,341, +851,false,textDocument/didOpen,,7674 +1236,false,textDocument/didOpen,,7675 +51,false,textDocument/completion,1, +27,false,textDocument/didOpen,,7676 +1810268,false,textDocument/didOpen,,7677 +1774060,false,textDocument/didOpen,,7678 +1836207,false,textDocument/didOpen,,7680 +1984928,false,textDocument/didOpen,,7682 +2044618,false,textDocument/didOpen,,7684 +2032573,false,textDocument/didOpen,,7686 +2166624,false,textDocument/didOpen,,7688 +2321336,false,textDocument/didOpen,,7689 +38,false,textDocument/completion,339, +2320660,false,textDocument/didOpen,,7690 +2378162,false,textDocument/didOpen,,7689 +2426478,false,textDocument/didOpen,,7690 +35,false,textDocument/completion,339, +2902597,false,textDocument/didOpen,,7694 +35,false,textDocument/completion,339, +2820999,false,textDocument/didOpen,,7696 +2839433,false,textDocument/didOpen,,7700 +2575,false,textDocument/completion,339, +2958071,false,textDocument/didOpen,,7702 +3045468,false,textDocument/didOpen,,7703 +44,false,textDocument/completion,339, +3176035,false,textDocument/didOpen,,7705 +68,false,textDocument/completion,339, +3281512,false,textDocument/didOpen,,7706 +3360749,false,textDocument/didOpen,,7707 +3465924,false,textDocument/didOpen,,7711 +3542357,false,textDocument/didOpen,,7712 +3545209,false,textDocument/didOpen,,7714 +3543622,false,textDocument/didOpen,,7715 +3849843,false,textDocument/didOpen,,7716 +4421839,false,textDocument/didOpen,,7717 +75,false,textDocument/completion,339, +4859637,false,textDocument/didOpen,,7719 +4921032,false,textDocument/didOpen,,7720 +5225959,false,textDocument/didOpen,,7721 +5127389,false,textDocument/didOpen,,7722 +42,false,textDocument/completion,339, +5488520,false,textDocument/didOpen,,7723 +5620453,false,textDocument/didOpen,,7724 +5489474,false,textDocument/didOpen,,7725 +80,false,textDocument/completion,339, +5433047,false,textDocument/didOpen,,7729 +36,false,textDocument/completion,339, +6073599,false,textDocument/didOpen,,7733 +75,false,textDocument/completion,339, +5866117,false,textDocument/didOpen,,7735 +6009664,false,textDocument/didOpen,,7736 +96,false,textDocument/completion,339, +6511130,false,textDocument/didOpen,,7738 +6185042,false,textDocument/didOpen,,7739 +5813956,false,textDocument/didOpen,,7740 +6134979,false,textDocument/didOpen,,7741 +6088838,false,textDocument/didOpen,,7742 +59,false,textDocument/completion,339, +6292918,false,textDocument/didOpen,,7743 +6599087,false,textDocument/didOpen,,7746 +6817995,false,textDocument/didOpen,,7747 +6922881,false,textDocument/didOpen,,7748 +6819609,false,textDocument/didOpen,,7747 +7911567,false,textDocument/didOpen,,7719 +7411388,false,textDocument/didOpen,,7721 +7225893,false,textDocument/didOpen,,7722 +156,false,textDocument/completion,339, +7205164,false,textDocument/didOpen,,7726 +99,false,textDocument/completion,339, +7314554,false,textDocument/didOpen,,7729 +57,false,textDocument/completion,339, +7407147,false,textDocument/didOpen,,7733 +76,false,textDocument/completion,339, +7410142,false,textDocument/didOpen,,7735 +7689082,false,textDocument/didOpen,,7736 +40,false,textDocument/completion,339, +7525000,false,textDocument/didOpen,,7738 +7947541,false,textDocument/didOpen,,7739 +7619134,false,textDocument/didOpen,,7740 +8110182,false,textDocument/didOpen,,7741 +65,false,textDocument/completion,339, +7882344,false,textDocument/didOpen,,7744 +69,false,textDocument/completion,339, +8178474,false,textDocument/didOpen,,7745 +190831,false,textDocument/didOpen,,4016 +118680,false,textDocument/didOpen,,4021 +158099,false,textDocument/didOpen,,4022 +119150,false,textDocument/didOpen,,4018 +154990,false,textDocument/didOpen,,4020 +121542,false,textDocument/didOpen,,4022 +2226,false,textDocument/didOpen,,4023 +80,false,textDocument/completion,1, +140725,false,textDocument/didOpen,,4022 +2037,false,textDocument/didOpen,,4023 +103,false,textDocument/completion,1, +1848,false,textDocument/didOpen,,4025 +109,false,textDocument/completion,1, +1884,false,textDocument/didOpen,,4026 +121,false,textDocument/completion,1, +1853,false,textDocument/didOpen,,4027 +113,false,textDocument/completion,1, +1916,false,textDocument/didOpen,,4028 +108,false,textDocument/completion,1, +1892,false,textDocument/didOpen,,4029 +117,false,textDocument/completion,1, +1993,false,textDocument/didOpen,,4031 +147,false,textDocument/completion,1, +1866,false,textDocument/didOpen,,4032 +108,false,textDocument/completion,1, +730,false,textDocument/didOpen,,4033 +53,false,textDocument/completion,1, +1856,false,textDocument/didOpen,,4034 +135,false,textDocument/completion,1, +938,false,textDocument/didOpen,,4036 +72,false,textDocument/completion,1, +1866,false,textDocument/didOpen,,4037 +146216,false,textDocument/didOpen,,4038 +244040,false,textDocument/didOpen,,4039 +2197,false,textDocument/didOpen,,4146 +371,false,textDocument/didOpen,,4131 +561,false,textDocument/didOpen,,4132 +45,false,textDocument/completion,1, +467,false,textDocument/didOpen,,4134 +37,false,textDocument/completion,1, +1887,false,textDocument/didOpen,,4136 +111,false,textDocument/completion,1, +866,false,textDocument/didOpen,,4137 +46,false,textDocument/completion,1, +1893,false,textDocument/didOpen,,4138 +110,false,textDocument/completion,1, +969,false,textDocument/didOpen,,4140 +51,false,textDocument/completion,1, +56,false,textDocument/completion,1, +2237,false,textDocument/didOpen,,4141 +1895,false,textDocument/didOpen,,4142 +1916,false,textDocument/didOpen,,4144 +1919,false,textDocument/didOpen,,4146 +661,false,textDocument/didOpen,,4148 +1579,false,textDocument/didOpen,,4149 +816,false,textDocument/didOpen,,4151 +54,false,textDocument/completion,1, +1595,false,textDocument/didOpen,,4153 +1572,false,textDocument/didOpen,,4154 +1526,false,textDocument/didOpen,,4160 +1153,false,textDocument/didOpen,,4162 +1150,false,textDocument/didOpen,,4158 +1138,false,textDocument/didOpen,,4156 +1146,false,textDocument/didOpen,,4154 +1139,false,textDocument/didOpen,,4153 +1164,false,textDocument/didOpen,,4154 +273,false,textDocument/didOpen,,4155 +40,false,textDocument/completion,1, +131,false,textDocument/didOpen,,4156 +247565,false,textDocument/didOpen,,4157 +245074,false,textDocument/didOpen,,4158 +276582,false,textDocument/didOpen,,4164 +300411,false,textDocument/didOpen,,4166 +330607,false,textDocument/didOpen,,4167 +272,false,textDocument/completion,106, +324571,false,textDocument/didOpen,,4171 +36,false,textDocument/completion,106, +302944,false,textDocument/didOpen,,4176 +61,false,textDocument/completion,106, +324995,false,textDocument/didOpen,,4178 +33,false,textDocument/completion,106, +342984,false,textDocument/didOpen,,4177 +338482,false,textDocument/didOpen,,4176 +363699,false,textDocument/didOpen,,4175 +407484,false,textDocument/didOpen,,4174 +375547,false,textDocument/didOpen,,4172 +437565,false,textDocument/didOpen,,4171 +422933,false,textDocument/didOpen,,4170 +444129,false,textDocument/didOpen,,4171 +68,false,textDocument/completion,106, +408933,false,textDocument/didOpen,,4175 +33,false,textDocument/completion,106, +451929,false,textDocument/didOpen,,4180 +34,false,textDocument/completion,106, +452860,false,textDocument/didOpen,,4179 +519441,false,textDocument/didOpen,,4180 +32,false,textDocument/completion,106, +506610,false,textDocument/didOpen,,4184 +34,false,textDocument/completion,106, +492499,false,textDocument/didOpen,,4187 +524727,false,textDocument/didOpen,,4188 +2062,false,textDocument/completion,106, +560342,false,textDocument/didOpen,,4189 +572894,false,textDocument/didOpen,,4190 +522945,false,textDocument/didOpen,,4191 +520400,false,textDocument/didOpen,,4192 +619094,false,textDocument/didOpen,,4184 +589902,false,textDocument/didOpen,,4185 +34,false,textDocument/completion,106, +648464,false,textDocument/didOpen,,4187 +637697,false,textDocument/didOpen,,4185 +579285,false,textDocument/didOpen,,4186 +37,false,textDocument/completion,106, +606408,false,textDocument/didOpen,,4189 +605112,false,textDocument/didOpen,,4192 +729082,false,textDocument/didOpen,,4184 +738092,false,textDocument/didOpen,,4185 +31,false,textDocument/completion,106, +714513,false,textDocument/didOpen,,4186 +698601,false,textDocument/didOpen,,4185 +729683,false,textDocument/didOpen,,4186 +60,false,textDocument/completion,106, +711541,false,textDocument/didOpen,,4187 +763784,false,textDocument/didOpen,,4188 +781844,false,textDocument/didOpen,,4190 +775399,false,textDocument/didOpen,,4191 +770666,false,textDocument/didOpen,,4189 +806742,false,textDocument/didOpen,,4190 +34,false,textDocument/completion,106, +774432,false,textDocument/didOpen,,4193 +857740,false,textDocument/didOpen,,4194 +824483,false,textDocument/didOpen,,4195 +33,false,textDocument/completion,106, +809322,false,textDocument/didOpen,,4200 +54,false,textDocument/completion,106, +827093,false,textDocument/didOpen,,4202 +895639,false,textDocument/didOpen,,4204 +912960,false,textDocument/didOpen,,4205 +882314,false,textDocument/didOpen,,4206 +914908,false,textDocument/didOpen,,4207 +37,false,textDocument/completion,106, +863552,false,textDocument/didOpen,,4209 +928786,false,textDocument/didOpen,,4212 +34,false,textDocument/completion,106, +924722,false,textDocument/didOpen,,4217 +32,false,textDocument/completion,106, +914463,false,textDocument/didOpen,,4219 +45,false,textDocument/completion,106, +875357,false,textDocument/didOpen,,4220 +920937,false,textDocument/didOpen,,4221 +964037,false,textDocument/didOpen,,4223 +33,false,textDocument/completion,106, +979573,false,textDocument/didOpen,,4226 +35,false,textDocument/completion,106, +965517,false,textDocument/didOpen,,4227 +1044530,false,textDocument/didOpen,,4228 +1099418,false,textDocument/didOpen,,4229 +38,false,textDocument/completion,106, +1139109,false,textDocument/didOpen,,4230 +1224284,false,textDocument/didOpen,,4230 +1175957,false,textDocument/didOpen,,4231 +1165425,false,textDocument/didOpen,,4233 +1243161,false,textDocument/didOpen,,4235 +1247913,false,textDocument/didOpen,,4237 +1245317,false,textDocument/didOpen,,4234 +1226900,false,textDocument/didOpen,,4236 +1264237,false,textDocument/didOpen,,4238 +1200197,false,textDocument/didOpen,,4231 +1274443,false,textDocument/didOpen,,4232 +1185186,false,textDocument/didOpen,,4233 +1261038,false,textDocument/didOpen,,4234 +1239508,false,textDocument/didOpen,,4235 +1224674,false,textDocument/didOpen,,4236 +1326855,false,textDocument/didOpen,,4237 +1288332,false,textDocument/didOpen,,4238 +1338757,false,textDocument/didOpen,,4237 +1331533,false,textDocument/didOpen,,4238 +1372090,false,textDocument/didOpen,,4239 +1763777,false,textDocument/didOpen,,4240 +1501944,false,textDocument/didOpen,,4294 +1432226,false,textDocument/didOpen,,4291 +1361842,false,textDocument/didOpen,,4292 +1382608,false,textDocument/didOpen,,4294 +1403236,false,textDocument/didOpen,,4296 +1370685,false,textDocument/didOpen,,4298 +1492386,false,textDocument/didOpen,,4300 +1459746,false,textDocument/didOpen,,4301 +1552507,false,textDocument/didOpen,,4302 +525,false,textDocument/didOpen,,4303 +31,false,textDocument/completion,1, +1494,false,textDocument/didOpen,,4302 +398,false,textDocument/didOpen,,4301 +4418,false,textDocument/didOpen,,4300 +389,false,textDocument/didOpen,,4299 +2205,false,textDocument/didOpen,,4298 +501,false,textDocument/didOpen,,4297 +3635,false,textDocument/didOpen,,4298 +3802,false,textDocument/didOpen,,4297 +482,false,textDocument/didOpen,,4298 +3747,false,textDocument/didOpen,,4299 +407,false,textDocument/didOpen,,4300 +2357,false,textDocument/didOpen,,4318 +1902,false,textDocument/didOpen,,4319 +1846,false,textDocument/didOpen,,4321 +1846,false,textDocument/didOpen,,4323 +1892,false,textDocument/didOpen,,4325 +455,false,textDocument/didOpen,,4327 +1942,false,textDocument/didOpen,,4325 +1550170,false,textDocument/didOpen,,4326 +1522428,false,textDocument/didOpen,,4327 +1582981,false,textDocument/didOpen,,4329 +34,false,textDocument/completion,103, +1582872,false,textDocument/didOpen,,4331 +1631129,false,textDocument/didOpen,,4332 +30,false,textDocument/completion,103, +1626425,false,textDocument/didOpen,,4334 +1770105,false,textDocument/didOpen,,4336 +2096883,false,textDocument/didOpen,,4338 +2050620,false,textDocument/didOpen,,4339 +2152817,false,textDocument/didOpen,,4348 +2202866,false,textDocument/didOpen,,4350 +2033644,false,textDocument/didOpen,,4348 +2045947,false,textDocument/didOpen,,4350 +78,false,textDocument/completion,103, +2293158,false,textDocument/didOpen,,4354 +113,false,textDocument/completion,105, +2077302,false,textDocument/didOpen,,4360 +2123676,false,textDocument/didOpen,,4361 +2167200,false,textDocument/didOpen,,4362 +146,false,textDocument/completion,105, +2101325,false,textDocument/didOpen,,4364 +2207734,false,textDocument/didOpen,,4365 +2255235,false,textDocument/didOpen,,4366 +422,false,textDocument/didOpen,,4367 +4128,false,textDocument/didOpen,,4368 +39,false,textDocument/completion,1, +4911,false,textDocument/didOpen,,4369 +356,false,textDocument/didOpen,,4371 +4286,false,textDocument/didOpen,,4372 +40,false,textDocument/completion,1, +353,false,textDocument/didOpen,,4370 +4592,false,textDocument/didOpen,,4367 +339,false,textDocument/didOpen,,4368 +33,false,textDocument/completion,1, +3965,false,textDocument/didOpen,,4373 +4684,false,textDocument/didOpen,,4374 +40,false,textDocument/completion,1, +352,false,textDocument/didOpen,,4378 +2174246,false,textDocument/didOpen,,4379 +4286,false,textDocument/didOpen,,4378 +4836,false,textDocument/didOpen,,4369 +429,false,textDocument/didOpen,,4368 +4156,false,textDocument/didOpen,,4367 +452,false,textDocument/didOpen,,4368 +25,false,textDocument/completion,1, +4057,false,textDocument/didOpen,,4370 +456,false,textDocument/didOpen,,4371 +3904,false,textDocument/didOpen,,4373 +28,false,textDocument/completion,1, +363,false,textDocument/didOpen,,4377 +4609,false,textDocument/didOpen,,4378 +29,false,textDocument/completion,1, +4168,false,textDocument/didOpen,,4381 +30,false,textDocument/completion,1, +365,false,textDocument/didOpen,,4382 +2213390,false,textDocument/didOpen,,4383 +2126355,false,textDocument/didOpen,,4392 +2366879,false,textDocument/didOpen,,4384 +5329,false,textDocument/didOpen,,4383 +345,false,textDocument/didOpen,,4384 +2337553,false,textDocument/didOpen,,4383 +2223974,false,textDocument/didOpen,,4384 +143,false,textDocument/completion,105, +89,false,textDocument/didOpen,,4385 +2383108,false,textDocument/didOpen,,4386 +2468309,false,textDocument/didOpen,,4387 +2411744,false,textDocument/didOpen,,4386 +2563879,false,textDocument/didOpen,,4387 +2530752,false,textDocument/didOpen,,4389 +2491612,false,textDocument/didOpen,,4395 +2462249,false,textDocument/didOpen,,4397 +2431991,false,textDocument/didOpen,,4398 +170,false,textDocument/completion,105, +2230345,false,textDocument/didOpen,,4399 +2325657,false,textDocument/didOpen,,4403 +2591526,false,textDocument/didOpen,,4405 +2523670,false,textDocument/didOpen,,4406 +2407573,false,textDocument/didOpen,,4407 +2580321,false,textDocument/didOpen,,4408 +4281,false,textDocument/completion,105, +2541687,false,textDocument/didOpen,,4409 +2591285,false,textDocument/didOpen,,4410 +2662460,false,textDocument/didOpen,,4411 +2720834,false,textDocument/didOpen,,4413 +2513006,false,textDocument/didOpen,,4414 +2495609,false,textDocument/didOpen,,4413 +2569648,false,textDocument/didOpen,,4414 +2523632,false,textDocument/didOpen,,4415 +131,false,textDocument/completion,105, +2719856,false,textDocument/didOpen,,4416 +2820606,false,textDocument/didOpen,,4417 +2626637,false,textDocument/didOpen,,4418 +2603227,false,textDocument/didOpen,,4419 +2651272,false,textDocument/didOpen,,4420 +2658514,false,textDocument/didOpen,,4421 +197,false,textDocument/completion,105, +2944089,false,textDocument/didOpen,,4423 +2769272,false,textDocument/didOpen,,4424 +2749251,false,textDocument/didOpen,,4425 +2879623,false,textDocument/didOpen,,4426 +2716756,false,textDocument/didOpen,,4427 +116,false,textDocument/completion,105, +2744805,false,textDocument/didOpen,,4429 +2918921,false,textDocument/didOpen,,4430 +2696812,false,textDocument/didOpen,,4431 +2802718,false,textDocument/didOpen,,4434 +2733522,false,textDocument/didOpen,,4435 +144,false,textDocument/completion,105, +2890328,false,textDocument/didOpen,,4434 +2914899,false,textDocument/didOpen,,4435 +2878591,false,textDocument/didOpen,,4436 +5768,false,textDocument/completion,105, +2817907,false,textDocument/didOpen,,4439 +147,false,textDocument/completion,105, +2942704,false,textDocument/didOpen,,4440 +3134810,false,textDocument/didOpen,,4440 +100,false,textDocument/completion,105, +3217763,false,textDocument/didOpen,,4441 +2906046,false,textDocument/didOpen,,4443 +117,false,textDocument/completion,105, +2901595,false,textDocument/didOpen,,4445 +2983735,false,textDocument/didOpen,,4446 +5784,false,textDocument/completion,105, +2990055,false,textDocument/didOpen,,4447 +3001621,false,textDocument/didOpen,,4449 +2992942,false,textDocument/didOpen,,4450 +143,false,textDocument/completion,105, +3092971,false,textDocument/didOpen,,4451 +3127426,false,textDocument/didOpen,,4450 +3054984,false,textDocument/didOpen,,4451 +102,false,textDocument/completion,105, +3115095,false,textDocument/didOpen,,4453 +3033291,false,textDocument/didOpen,,4454 +16757,false,textDocument/completion,105, +3159101,false,textDocument/didOpen,,4455 +3228136,false,textDocument/didOpen,,4457 +3214845,false,textDocument/didOpen,,4458 +6774,false,textDocument/completion,105, +3216090,false,textDocument/didOpen,,4459 +3217993,false,textDocument/didOpen,,4458 +3318223,false,textDocument/didOpen,,4459 +111,false,textDocument/completion,105, +3364949,false,textDocument/didOpen,,4461 +3403871,false,textDocument/didOpen,,4463 +114,false,textDocument/completion,105, +3495594,false,textDocument/didOpen,,4465 +3339177,false,textDocument/didOpen,,4466 +3237235,false,textDocument/didOpen,,4467 +101,false,textDocument/completion,105, +3175628,false,textDocument/didOpen,,4469 +3235413,false,textDocument/didOpen,,4468 +98,false,textDocument/completion,105, +3335399,false,textDocument/didOpen,,4471 +3336365,false,textDocument/didOpen,,4471 +3317593,false,textDocument/didOpen,,4472 +3303272,false,textDocument/didOpen,,4473 +3364786,false,textDocument/didOpen,,4473 +3592904,false,textDocument/didOpen,,4477 +3559656,false,textDocument/didOpen,,4479 +3566521,false,textDocument/didOpen,,4481 +3678822,false,textDocument/didOpen,,4483 +131,false,textDocument/didOpen,,4480 +36,false,textDocument/didOpen,,4479 +46,false,textDocument/didOpen,,4480 +45,false,textDocument/didOpen,,4481 +30,false,textDocument/didOpen,,4482 +40,false,textDocument/didOpen,,4483 +30,false,textDocument/didOpen,,4484 +85,false,textDocument/didOpen,,4483 +44,false,textDocument/didOpen,,4479 +38,false,textDocument/didOpen,,4481 +119,false,textDocument/completion,105, +23,false,textDocument/didOpen,,4482 +3568615,false,textDocument/didOpen,,4483 +3421040,false,textDocument/didOpen,,4482 +3483514,false,textDocument/didOpen,,4481 +3460662,false,textDocument/didOpen,,4483 +99,false,textDocument/completion,105, +3435965,false,textDocument/didOpen,,4481 +3587179,false,textDocument/didOpen,,4482 +3432408,false,textDocument/didOpen,,4483 +3501540,false,textDocument/didOpen,,4484 +97,false,textDocument/completion,105, +3814231,false,textDocument/didOpen,,4474 +3371694,false,textDocument/didOpen,,4475 +3322972,false,textDocument/didOpen,,4481 +3581351,false,textDocument/didOpen,,4483 +3549801,false,textDocument/didOpen,,4486 +6341,false,textDocument/completion,105, +3617948,false,textDocument/didOpen,,4485 +3807877,false,textDocument/didOpen,,4484 +3949758,false,textDocument/didOpen,,4485 +3893261,false,textDocument/didOpen,,4486 +3866798,false,textDocument/didOpen,,4485 +4067027,false,textDocument/didOpen,,4486 +4264047,false,textDocument/didOpen,,4490 +3831075,false,textDocument/didOpen,,4492 +3531944,false,textDocument/didOpen,,4494 +3966786,false,textDocument/didOpen,,4495 +43,false,textDocument/completion,103, +3784913,false,textDocument/didOpen,,4496 +3902113,false,textDocument/didOpen,,4495 +3842874,false,textDocument/didOpen,,4496 +32,false,textDocument/completion,103, +4200074,false,textDocument/didOpen,,4498 +3927116,false,textDocument/didOpen,,4500 +32,false,textDocument/completion,103, +3779336,false,textDocument/didOpen,,4501 +4155043,false,textDocument/didOpen,,4503 +3867895,false,textDocument/didOpen,,4502 +3981906,false,textDocument/didOpen,,4495 +4092096,false,textDocument/didOpen,,4494 +4094644,false,textDocument/didOpen,,4495 +4332624,false,textDocument/didOpen,,4497 +144,false,textDocument/completion,107, +3929616,false,textDocument/didOpen,,4499 +3959843,false,textDocument/didOpen,,4501 +3983351,false,textDocument/didOpen,,4502 +4214171,false,textDocument/didOpen,,4503 +64320,false,textDocument/didOpen,,4504 +4021050,false,textDocument/didOpen,,4505 +4172853,false,textDocument/didOpen,,4506 +4002634,false,textDocument/didOpen,,4620 +4008068,false,textDocument/didOpen,,4634 +4004597,false,textDocument/didOpen,,4630 +4174221,false,textDocument/didOpen,,4644 +4133373,false,textDocument/didOpen,,4645 +4056155,false,textDocument/didOpen,,4649 +4403638,false,textDocument/didOpen,,4651 +4159959,false,textDocument/didOpen,,4653 +4266474,false,textDocument/didOpen,,4655 +4392559,false,textDocument/didOpen,,4657 +4115806,false,textDocument/didOpen,,4671 +4325995,false,textDocument/didOpen,,4685 +4130412,false,textDocument/didOpen,,4684 +4209927,false,textDocument/didOpen,,4685 +4058092,false,textDocument/didOpen,,4693 +4404235,false,textDocument/didOpen,,4697 +4070003,false,textDocument/didOpen,,4698 +4605659,false,textDocument/didOpen,,4699 +4457486,false,textDocument/didOpen,,4707 +4773351,false,textDocument/didOpen,,4709 +4299813,false,textDocument/didOpen,,4711 +4600018,false,textDocument/didOpen,,4712 +33,false,textDocument/completion,103, +4608348,false,textDocument/didOpen,,4711 +4299046,false,textDocument/didOpen,,4709 +4673144,false,textDocument/didOpen,,4707 +4475045,false,textDocument/didOpen,,4695 +4531359,false,textDocument/didOpen,,4693 +4707519,false,textDocument/didOpen,,4694 +4886550,false,textDocument/didOpen,,4695 +4715590,false,textDocument/didOpen,,4697 +5031755,false,textDocument/didOpen,,4695 +4536993,false,textDocument/didOpen,,4694 +4411979,false,textDocument/didOpen,,4696 +4505860,false,textDocument/didOpen,,4702 +4478848,false,textDocument/didOpen,,4704 +4385734,false,textDocument/didOpen,,4705 +38,false,textDocument/completion,103, +4542214,false,textDocument/didOpen,,4709 +162059,false,textDocument/didOpen,,5691 +58339,false,textDocument/didOpen,,221 +94955,false,textDocument/didOpen,,3796 +139051,false,textDocument/didOpen,,3281 +206141,false,textDocument/didOpen,,10169 +463,false,textDocument/didOpen,,5244 +2201,false,textDocument/didOpen,,5243 +487,false,textDocument/didOpen,,5242 +376,false,textDocument/didOpen,,5243 +533,false,textDocument/didOpen,,5242 +1909,false,textDocument/didOpen,,5243 +2272,false,textDocument/didOpen,,5242 +1774,false,textDocument/didOpen,,5243 +515,false,textDocument/didOpen,,5242 +163035,false,textDocument/didOpen,,5691 +106431,false,textDocument/didOpen,,5670 +127357,false,textDocument/didOpen,,5669 +163890,false,textDocument/didOpen,,5669 +449,false,textDocument/didOpen,,5670 +112,false,textDocument/completion,383, +121778,false,textDocument/didOpen,,5671 +384214,false,textDocument/didOpen,,4455 +336340,false,textDocument/didOpen,,4456 +435282,false,textDocument/didOpen,,4457 +581132,false,textDocument/didOpen,,4459 +654388,false,textDocument/didOpen,,4460 +43,false,textDocument/completion,580, +843521,false,textDocument/didOpen,,4461 +962195,false,textDocument/didOpen,,4463 +40,false,textDocument/completion,580, +1022358,false,textDocument/didOpen,,4464 +1186618,false,textDocument/didOpen,,4465 +415866,false,textDocument/didOpen,,4650 +366825,false,textDocument/didOpen,,4652 +466049,false,textDocument/didOpen,,4653 +555420,false,textDocument/didOpen,,4654 +85,false,textDocument/completion,582, +670178,false,textDocument/didOpen,,4656 +910786,false,textDocument/didOpen,,4657 +939615,false,textDocument/didOpen,,4658 +1005630,false,textDocument/didOpen,,4659 +74,false,textDocument/completion,582, +1219940,false,textDocument/didOpen,,4662 +136409,false,textDocument/didOpen,,5691 +125133,false,textDocument/didOpen,,5691 +116857,false,textDocument/didOpen,,5691 +120710,false,textDocument/didOpen,,5691 +60726,false,textDocument/didOpen,,364 +58816,false,textDocument/didOpen,,485 +60245,false,textDocument/didOpen,,364 +254,false,textDocument/didOpen,,365 +19487,false,textDocument/didOpen,,366 +177,false,textDocument/completion,28, +13347,false,textDocument/didOpen,,361 +43962,false,textDocument/didOpen,,362 +168,false,textDocument/completion,28, +28432,false,textDocument/didOpen,,363 +155,false,textDocument/completion,28, +14235,false,textDocument/didOpen,,364 +98,false,textDocument/completion,28, +37902,false,textDocument/didOpen,,365 +185,false,textDocument/completion,28, +30307,false,textDocument/didOpen,,366 +170,false,textDocument/completion,28, +32647,false,textDocument/didOpen,,367 +184,false,textDocument/completion,28, +14230,false,textDocument/didOpen,,368 +43100,false,textDocument/didOpen,,370 +33395,false,textDocument/didOpen,,372 +40924,false,textDocument/didOpen,,374 +38594,false,textDocument/didOpen,,376 +602,false,textDocument/didOpen,,377 +494,false,textDocument/completion,28, +299,false,textDocument/didOpen,,378 +37644,false,textDocument/didOpen,,367 +35239,false,textDocument/didOpen,,361 +49768,false,textDocument/didOpen,,366 +1122,false,textDocument/didOpen,,367 +63221,false,textDocument/didOpen,,368 +130,false,textDocument/completion,28, +12809,false,textDocument/didOpen,,369 +45530,false,textDocument/didOpen,,371 +44351,false,textDocument/didOpen,,375 +36190,false,textDocument/didOpen,,377 +62209,false,textDocument/didOpen,,379 +14206,false,textDocument/didOpen,,369 +12836,false,textDocument/didOpen,,370 +46516,false,textDocument/didOpen,,371 +40903,false,textDocument/didOpen,,360 +36762,false,textDocument/didOpen,,359 +44462,false,textDocument/didOpen,,360 +20207,false,textDocument/didOpen,,362 +36941,false,textDocument/didOpen,,366 +47103,false,textDocument/didOpen,,368 +559,false,textDocument/didOpen,,371 +453,false,textDocument/completion,28, +533,false,textDocument/didOpen,,373 +12321,false,textDocument/didOpen,,374 +41829,false,textDocument/didOpen,,375 +35733,false,textDocument/didOpen,,376 +175,false,textDocument/completion,30, +40428,false,textDocument/didOpen,,377 +131,false,textDocument/completion,30, +14631,false,textDocument/didOpen,,378 +144,false,textDocument/completion,30, +47496,false,textDocument/didOpen,,379 +40609,false,textDocument/didOpen,,454 +53212,false,textDocument/didOpen,,455 +49240,false,textDocument/didOpen,,436 +64339,false,textDocument/didOpen,,406 +59343,false,textDocument/didOpen,,405 +62519,false,textDocument/didOpen,,485 +13212,false,textDocument/didOpen,,454 +60966,false,textDocument/didOpen,,405 +12313,false,textDocument/didOpen,,328 +47607,false,textDocument/didOpen,,327 +40616,false,textDocument/didOpen,,326 +55096,false,textDocument/didOpen,,326 +54867,false,textDocument/didOpen,,327 +51730,false,textDocument/didOpen,,328 +49218,false,textDocument/didOpen,,330 +46218,false,textDocument/didOpen,,332 +21688,false,textDocument/didOpen,,335 +45,false,textDocument/completion,30, +16790,false,textDocument/didOpen,,336 +79,false,textDocument/completion,30, +49410,false,textDocument/didOpen,,338 +140,false,textDocument/completion,30, +47741,false,textDocument/didOpen,,339 +47367,false,textDocument/didOpen,,340 +50565,false,textDocument/didOpen,,341 +1200,false,textDocument/didOpen,,342 +1156,false,textDocument/didOpen,,343 +51054,false,textDocument/didOpen,,345 +149,false,textDocument/completion,30, +1169,false,textDocument/didOpen,,346 +201,false,textDocument/didOpen,,352 +68,false,textDocument/didOpen,,353 +59,false,textDocument/completion,1, +222,false,textDocument/didOpen,,354 +170,false,textDocument/didOpen,,355 +224,false,textDocument/didOpen,,356 +223,false,textDocument/didOpen,,358 +191,false,textDocument/completion,1, +1431,false,textDocument/didOpen,,359 +170,false,textDocument/didOpen,,357 +166,false,textDocument/didOpen,,356 +166,false,textDocument/didOpen,,355 +169,false,textDocument/didOpen,,356 +143,false,textDocument/completion,1, +220,false,textDocument/didOpen,,357 +168,false,textDocument/didOpen,,354 +167,false,textDocument/didOpen,,353 +167,false,textDocument/didOpen,,352 +162,false,textDocument/didOpen,,355 +117,false,textDocument/completion,1, +173,false,textDocument/didOpen,,356 +171,false,textDocument/didOpen,,358 +171,false,textDocument/didOpen,,359 +1125,false,textDocument/didOpen,,360 +1139,false,textDocument/didOpen,,361 +51930,false,textDocument/didOpen,,362 +53238,false,textDocument/didOpen,,363 +1076,false,textDocument/didOpen,,365 +1046,false,textDocument/didOpen,,364 +1014,false,textDocument/didOpen,,363 +1026,false,textDocument/didOpen,,364 +1033,false,textDocument/didOpen,,365 +58224,false,textDocument/didOpen,,364 +52868,false,textDocument/didOpen,,363 +59350,false,textDocument/didOpen,,362 +58001,false,textDocument/didOpen,,322 +88594,false,textDocument/didOpen,,323 +54885,false,textDocument/didOpen,,331 +55825,false,textDocument/didOpen,,333 +191,false,textDocument/didOpen,,334 +150,false,textDocument/completion,31, +548,false,textDocument/didOpen,,336 +56033,false,textDocument/didOpen,,337 +55574,false,textDocument/didOpen,,338 +56532,false,textDocument/didOpen,,339 +3632,false,textDocument/completion,34, +57044,false,textDocument/didOpen,,340 +61137,false,textDocument/didOpen,,341 +67035,false,textDocument/didOpen,,342 +54315,false,textDocument/didOpen,,344 +59076,false,textDocument/didOpen,,345 +57878,false,textDocument/didOpen,,344 +57659,false,textDocument/didOpen,,345 +1115,false,textDocument/didOpen,,347 +1110,false,textDocument/didOpen,,348 +1076,false,textDocument/didOpen,,349 +1126,false,textDocument/didOpen,,351 +1069,false,textDocument/didOpen,,352 +1069,false,textDocument/didOpen,,354 +1116,false,textDocument/didOpen,,355 +1089,false,textDocument/didOpen,,356 +1056,false,textDocument/didOpen,,358 +157,false,textDocument/completion,1, +1079,false,textDocument/didOpen,,359 +1110,false,textDocument/didOpen,,360 +1074,false,textDocument/didOpen,,361 +125,false,textDocument/completion,1, +1060,false,textDocument/didOpen,,362 +159,false,textDocument/completion,1, +1086,false,textDocument/didOpen,,363 +144,false,textDocument/completion,1, +1086,false,textDocument/didOpen,,365 +159,false,textDocument/completion,1, +1085,false,textDocument/didOpen,,366 +118,false,textDocument/completion,1, +1095,false,textDocument/didOpen,,370 +156,false,textDocument/completion,1, +1095,false,textDocument/didOpen,,371 +1069,false,textDocument/didOpen,,370 +1111,false,textDocument/didOpen,,369 +1077,false,textDocument/didOpen,,368 +1189,false,textDocument/didOpen,,367 +1067,false,textDocument/didOpen,,366 +1069,false,textDocument/didOpen,,365 +1075,false,textDocument/didOpen,,366 +124,false,textDocument/completion,1, +1127,false,textDocument/didOpen,,367 +1084,false,textDocument/didOpen,,368 +117,false,textDocument/completion,1, +1059,false,textDocument/didOpen,,369 +1086,false,textDocument/didOpen,,370 +1065,false,textDocument/didOpen,,371 +132,false,textDocument/completion,1, +1088,false,textDocument/didOpen,,372 +1051,false,textDocument/didOpen,,375 +154,false,textDocument/completion,1, +1152,false,textDocument/didOpen,,377 +153,false,textDocument/completion,1, +1082,false,textDocument/didOpen,,378 +1073,false,textDocument/didOpen,,379 +138,false,textDocument/completion,1, +1067,false,textDocument/didOpen,,384 +117,false,textDocument/completion,1, +1104,false,textDocument/didOpen,,385 +1128,false,textDocument/didOpen,,386 +155,false,textDocument/completion,1, +1135,false,textDocument/didOpen,,388 +118,false,textDocument/completion,1, +1090,false,textDocument/didOpen,,389 +121,false,textDocument/completion,1, +1108,false,textDocument/didOpen,,391 +151,false,textDocument/completion,1, +964,false,textDocument/didOpen,,395 +164,false,textDocument/completion,1, +1093,false,textDocument/didOpen,,396 +1089,false,textDocument/didOpen,,398 +1072,false,textDocument/didOpen,,400 +1121,false,textDocument/didOpen,,401 +1087,false,textDocument/didOpen,,400 +1102,false,textDocument/didOpen,,399 +60105,false,textDocument/didOpen,,401 +56751,false,textDocument/didOpen,,365 +64380,false,textDocument/didOpen,,365 +59753,false,textDocument/didOpen,,365 +50351,false,textDocument/didOpen,,365 +12812,false,textDocument/didOpen,,366 +49303,false,textDocument/didOpen,,367 +65919,false,textDocument/didOpen,,367 +61936,false,textDocument/didOpen,,364 +46509,false,textDocument/didOpen,,363 +79701,false,textDocument/didOpen,,362 +48864,false,textDocument/didOpen,,361 +279,false,textDocument/didOpen,,362 +47882,false,textDocument/didOpen,,363 +299,false,textDocument/didOpen,,364 +55035,false,textDocument/didOpen,,365 +293,false,textDocument/didOpen,,364 +56207,false,textDocument/didOpen,,365 +47179,false,textDocument/didOpen,,367 +1075,false,textDocument/didOpen,,368 +48277,false,textDocument/didOpen,,369 +1111,false,textDocument/didOpen,,368 +1076,false,textDocument/didOpen,,368 +1117,false,textDocument/didOpen,,368 +50158,false,textDocument/didOpen,,365 +282,false,textDocument/didOpen,,364 +59040,false,textDocument/didOpen,,363 +287,false,textDocument/didOpen,,362 +53737,false,textDocument/didOpen,,361 +54450,false,textDocument/didOpen,,362 +70540,false,textDocument/didOpen,,361 +52963,false,textDocument/didOpen,,362 +58922,false,textDocument/didOpen,,361 +52249,false,textDocument/didOpen,,360 +56437,false,textDocument/didOpen,,359 +102147,false,textDocument/didOpen,,360 +612,false,textDocument/completion,31, +74609,false,textDocument/didOpen,,361 +54256,false,textDocument/didOpen,,362 +158263,false,textDocument/didOpen,,5786 +178435,false,textDocument/didOpen,,5787 +169,false,textDocument/completion,199, +227643,false,textDocument/didOpen,,5788 +281245,false,textDocument/didOpen,,5791 +285934,false,textDocument/didOpen,,5787 +92167,false,textDocument/didOpen,,5788 +178,false,textDocument/completion,199, +139664,false,textDocument/didOpen,,5789 +134,false,textDocument/completion,199, +102956,false,textDocument/didOpen,,5790 +127106,false,textDocument/didOpen,,5791 +114,false,textDocument/completion,199, +149154,false,textDocument/didOpen,,362 +142043,false,textDocument/didOpen,,368 +98227,false,textDocument/didOpen,,369 +177,false,textDocument/completion,31, +107359,false,textDocument/didOpen,,373 +94277,false,textDocument/didOpen,,454 +74214,false,textDocument/didOpen,,456 +157,false,textDocument/completion,20, +113847,false,textDocument/didOpen,,459 +76,false,textDocument/completion,20, +59296,false,textDocument/didOpen,,463 +137480,false,textDocument/didOpen,,462 +69452,false,textDocument/didOpen,,461 +59547,false,textDocument/didOpen,,460 +87145,false,textDocument/didOpen,,459 +72923,false,textDocument/didOpen,,462 +148,false,textDocument/completion,20, +68181,false,textDocument/didOpen,,463 +153785,false,textDocument/didOpen,,5791 +91776,false,textDocument/didOpen,,5786 +188582,false,textDocument/didOpen,,5789 +136,false,textDocument/completion,199, +191093,false,textDocument/didOpen,,5791 +146922,false,textDocument/didOpen,,5793 +133831,false,textDocument/didOpen,,4796 +15933,false,textDocument/didOpen,,4795 +689,false,textDocument/didOpen,,4794 +17077,false,textDocument/didOpen,,4795 +22669,false,textDocument/didOpen,,4794 +54593,false,textDocument/didOpen,,4795 +60598,false,textDocument/didOpen,,4794 +86866,false,textDocument/didOpen,,4793 +1365,false,textDocument/didOpen,,4794 +402,false,textDocument/didOpen,,4793 +1402,false,textDocument/didOpen,,4794 +77950,false,textDocument/didOpen,,4793 +90535,false,textDocument/didOpen,,4792 +116587,false,textDocument/didOpen,,4793 +75428,false,textDocument/didOpen,,4792 +108881,false,textDocument/didOpen,,4793 +245,false,textDocument/didOpen,,1668 +271,false,textDocument/didOpen,,1667 +281,false,textDocument/didOpen,,1666 +394,false,textDocument/didOpen,,1669 +37,true,textDocument/completion,, +1325,false,textDocument/didOpen,,1670 +1188,false,textDocument/didOpen,,1672 +1156,false,textDocument/didOpen,,1673 +1097,false,textDocument/didOpen,,1674 +259,false,textDocument/didOpen,,1673 +1185,false,textDocument/didOpen,,1672 +1418,false,textDocument/didOpen,,1671 +288,false,textDocument/didOpen,,1670 +1120,false,textDocument/didOpen,,1669 +1123,false,textDocument/didOpen,,1668 +1141,false,textDocument/didOpen,,1667 +1028,false,textDocument/didOpen,,1666 +657,false,textDocument/didOpen,,1667 +29,true,textDocument/completion,, +1691,false,textDocument/didOpen,,1670 +1076,false,textDocument/didOpen,,1673 +348,false,textDocument/didOpen,,1674 +1132,false,textDocument/didOpen,,1675 +1817,false,textDocument/didOpen,,1677 +67,true,textDocument/completion,, +1178,false,textDocument/didOpen,,1678 +34,true,textDocument/completion,, +1712,false,textDocument/didOpen,,1680 +57,true,textDocument/completion,, +1243,false,textDocument/didOpen,,1681 +35,true,textDocument/completion,, +1199,false,textDocument/didOpen,,1679 +337,false,textDocument/didOpen,,1680 +8,true,textDocument/completion,, +464,false,textDocument/didOpen,,1684 +492,false,textDocument/didOpen,,1685 +18,true,textDocument/completion,, +1110,false,textDocument/didOpen,,1687 +1139,false,textDocument/didOpen,,1688 +1113,false,textDocument/didOpen,,1690 +1137,false,textDocument/didOpen,,1689 +497,false,textDocument/didOpen,,1677 +1010,false,textDocument/didOpen,,1678 +1009,false,textDocument/didOpen,,1677 +317,false,textDocument/didOpen,,1678 +13,true,textDocument/completion,, +1153,false,textDocument/didOpen,,1682 +1105,false,textDocument/didOpen,,1683 +1146,false,textDocument/didOpen,,1628 +1076,false,textDocument/didOpen,,1670 +261,false,textDocument/didOpen,,1669 +548,false,textDocument/didOpen,,1668 +1028,false,textDocument/didOpen,,1667 +1827,false,textDocument/didOpen,,1663 +389,false,textDocument/didOpen,,1664 +31,false,textDocument/completion,1, +1204,false,textDocument/didOpen,,1668 +126,false,textDocument/completion,1, +1227,false,textDocument/didOpen,,1663 +362,false,textDocument/didOpen,,1664 +56,false,textDocument/completion,1, +1585,false,textDocument/didOpen,,1668 +1620,false,textDocument/didOpen,,1667 +689,false,textDocument/didOpen,,1662 +577,false,textDocument/didOpen,,1663 +48,false,textDocument/completion,1, +1435,false,textDocument/didOpen,,1667 +1635,false,textDocument/didOpen,,1667 +2307,false,textDocument/didOpen,,1671 +2133,false,textDocument/didOpen,,1674 +61057,false,textDocument/didOpen,,1670 +647,false,textDocument/didOpen,,1672 +243,false,textDocument/completion,236, +2665,false,textDocument/didOpen,,1673 +105900,false,textDocument/didOpen,,1675 +81138,false,textDocument/didOpen,,1668 +95716,false,textDocument/didOpen,,1669 +152,false,textDocument/completion,251, +1772,false,textDocument/didOpen,,1670 +1686,false,textDocument/didOpen,,1673 +88548,false,textDocument/didOpen,,1674 +70651,false,textDocument/didOpen,,1667 +1086,false,textDocument/didOpen,,1669 +540,false,textDocument/completion,243, +2613,false,textDocument/didOpen,,1672 +83470,false,textDocument/didOpen,,1673 +887,false,textDocument/didOpen,,1666 +750,false,textDocument/didOpen,,1668 +43,false,textDocument/completion,1, +95593,false,textDocument/didOpen,,1672 +151992,false,textDocument/didOpen,,1664 +138383,false,textDocument/didOpen,,1665 +62,false,textDocument/completion,251, +163715,false,textDocument/didOpen,,1669 +125964,false,textDocument/didOpen,,1670 +691,false,textDocument/didOpen,,1662 +178959,false,textDocument/didOpen,,1664 +113,false,textDocument/completion,251, +204447,false,textDocument/didOpen,,1667 +388,false,textDocument/completion,251, +155476,false,textDocument/didOpen,,1668 +214694,false,textDocument/didOpen,,1667 +239998,false,textDocument/didOpen,,1668 +560,false,textDocument/didOpen,,34782 +700,false,textDocument/didOpen,,34781 +341,false,textDocument/didOpen,,34780 +375,false,textDocument/didOpen,,34779 +1732,false,textDocument/didOpen,,34778 +1598,false,textDocument/didOpen,,34777 +1623,false,textDocument/didOpen,,34776 +1816,false,textDocument/didOpen,,34775 +334,false,textDocument/didOpen,,34774 +1615,false,textDocument/didOpen,,34773 +432,false,textDocument/didOpen,,34772 +1593,false,textDocument/didOpen,,34758 +602,false,textDocument/didOpen,,34759 +21,true,textDocument/completion,, +481,false,textDocument/didOpen,,34760 +609,false,textDocument/didOpen,,34761 +14,true,textDocument/completion,, +345,false,textDocument/didOpen,,34760 +1564,false,textDocument/didOpen,,34759 +348,false,textDocument/didOpen,,34751 +1034,false,textDocument/didOpen,,34737 +1630,false,textDocument/didOpen,,34738 +43,true,textDocument/completion,, +341,false,textDocument/didOpen,,34740 +343,false,textDocument/didOpen,,34739 +464,false,textDocument/didOpen,,34738 +1663,false,textDocument/didOpen,,34739 +1698,false,textDocument/didOpen,,34741 +1787,false,textDocument/didOpen,,34743 +388,false,textDocument/didOpen,,34755 +349,false,textDocument/didOpen,,34757 +383,false,textDocument/didOpen,,34755 +1642,false,textDocument/didOpen,,34756 +359,false,textDocument/didOpen,,34755 +1782,false,textDocument/didOpen,,34757 +355,false,textDocument/didOpen,,34771 +450,false,textDocument/didOpen,,34772 +480,false,textDocument/didOpen,,34773 +2892,false,textDocument/didOpen,,34774 +351,false,textDocument/didOpen,,34773 +346,false,textDocument/didOpen,,34772 +1650,false,textDocument/didOpen,,34773 +1803,false,textDocument/didOpen,,34774 +353,false,textDocument/didOpen,,34787 +597,false,textDocument/didOpen,,34788 +1783,false,textDocument/didOpen,,34789 +1695,false,textDocument/didOpen,,34790 +1665,false,textDocument/didOpen,,34791 +1669,false,textDocument/didOpen,,34804 +1641,false,textDocument/didOpen,,34805 +1643,false,textDocument/didOpen,,34806 +1640,false,textDocument/didOpen,,34807 +416,false,textDocument/didOpen,,34806 +1674,false,textDocument/didOpen,,34805 +1677,false,textDocument/didOpen,,34799 +1696,false,textDocument/didOpen,,34798 +1687,false,textDocument/didOpen,,34797 +349,false,textDocument/didOpen,,34796 +349,false,textDocument/didOpen,,34795 +73,true,textDocument/definition,, +13,true,textDocument/definition,, +367,false,textDocument/didOpen,,34794 +1701,false,textDocument/didOpen,,34793 +359,false,textDocument/didOpen,,34792 +1677,false,textDocument/didOpen,,34793 +386,false,textDocument/didOpen,,34780 +418,false,textDocument/didOpen,,34781 +9,true,textDocument/completion,, +809,false,textDocument/didOpen,,34782 +1824,false,textDocument/didOpen,,34783 +391,false,textDocument/didOpen,,34782 +371,false,textDocument/didOpen,,34781 +393,false,textDocument/didOpen,,34780 +44,true,textDocument/definition,, +378,false,textDocument/didOpen,,34779 +355,false,textDocument/didOpen,,34778 +1875,false,textDocument/didOpen,,34777 +362,false,textDocument/didOpen,,34719 +618,false,textDocument/didOpen,,34718 +1877,false,textDocument/didOpen,,34717 +362,false,textDocument/didOpen,,34716 +366,false,textDocument/didOpen,,34715 +1947,false,textDocument/didOpen,,34714 +390,false,textDocument/didOpen,,34713 +403,false,textDocument/didOpen,,34712 +1946,false,textDocument/didOpen,,33274 +413,false,textDocument/didOpen,,33278 +402,false,textDocument/didOpen,,33192 +1778,false,textDocument/didOpen,,33278 +368,false,textDocument/didOpen,,33277 +460,false,textDocument/didOpen,,33281 +401,false,textDocument/didOpen,,33280 +369,false,textDocument/didOpen,,33279 +388,false,textDocument/didOpen,,33293 +363,false,textDocument/didOpen,,33301 +374,false,textDocument/didOpen,,33302 +1923,false,textDocument/didOpen,,33304 +1746,false,textDocument/didOpen,,33310 +1905,false,textDocument/didOpen,,33312 +404,false,textDocument/didOpen,,33326 +383,false,textDocument/didOpen,,33324 +386,false,textDocument/didOpen,,33338 +375,false,textDocument/didOpen,,33322 +379,false,textDocument/didOpen,,33338 +394,false,textDocument/didOpen,,33322 +1933,false,textDocument/didOpen,,33338 +394,false,textDocument/didOpen,,33337 +379,false,textDocument/didOpen,,33336 +381,false,textDocument/didOpen,,33350 +1802,false,textDocument/didOpen,,33349 +396,false,textDocument/didOpen,,33364 +379,false,textDocument/didOpen,,33363 +1332,false,textDocument/didOpen,,33362 +1338,false,textDocument/didOpen,,33363 +27,true,textDocument/completion,, +390,false,textDocument/didOpen,,33364 +396,false,textDocument/didOpen,,33378 +1863,false,textDocument/didOpen,,33377 +419,false,textDocument/didOpen,,33391 +1959,false,textDocument/didOpen,,33390 +446,false,textDocument/didOpen,,33404 +1869,false,textDocument/didOpen,,33403 +375,false,textDocument/didOpen,,33402 +471,false,textDocument/didOpen,,33401 +422,false,textDocument/didOpen,,33400 +1808,false,textDocument/didOpen,,33401 +411,false,textDocument/didOpen,,33400 +446,false,textDocument/didOpen,,33401 +373,false,textDocument/didOpen,,33402 +572,false,textDocument/didOpen,,33404 +17,true,textDocument/completion,, +1313,false,textDocument/didOpen,,33406 +37,true,textDocument/completion,, +284,false,textDocument/didOpen,,33408 +9,true,textDocument/completion,, +571,false,textDocument/didOpen,,33410 +19,true,textDocument/completion,, +1275,false,textDocument/didOpen,,33411 +2010,false,textDocument/didOpen,,33400 +1352,false,textDocument/didOpen,,33402 +36,true,textDocument/completion,, +420,false,textDocument/didOpen,,33406 +10,true,textDocument/completion,, +1975,false,textDocument/didOpen,,33407 +37,true,textDocument/completion,, +2028,false,textDocument/didOpen,,33408 +39,true,textDocument/completion,, +1886,false,textDocument/didOpen,,33409 +38,true,textDocument/completion,, +385,false,textDocument/didOpen,,33410 +11,true,textDocument/completion,, +571,false,textDocument/didOpen,,33411 +29,true,textDocument/completion,, +422,false,textDocument/didOpen,,33410 +375,false,textDocument/didOpen,,33400 +391,false,textDocument/didOpen,,33399 +425,false,textDocument/didOpen,,33398 +1789,false,textDocument/didOpen,,33397 +1881,false,textDocument/didOpen,,33396 +1834,false,textDocument/didOpen,,33395 +410,false,textDocument/didOpen,,33396 +423,false,textDocument/didOpen,,33397 +2000,false,textDocument/didOpen,,33418 +414,false,textDocument/didOpen,,33416 +1850,false,textDocument/didOpen,,33417 +1849,false,textDocument/didOpen,,33418 +2992,false,textDocument/didOpen,,33416 +2988,false,textDocument/didOpen,,33414 +1884,false,textDocument/didOpen,,33412 +1840,false,textDocument/didOpen,,33410 +443,false,textDocument/didOpen,,33408 +1881,false,textDocument/didOpen,,33406 +1837,false,textDocument/didOpen,,33404 +1880,false,textDocument/didOpen,,33402 +500,false,textDocument/didOpen,,33400 +1819,false,textDocument/didOpen,,33398 +1878,false,textDocument/didOpen,,33396 +1865,false,textDocument/didOpen,,33395 +1894,false,textDocument/didOpen,,33396 +385,false,textDocument/didOpen,,33395 +1816,false,textDocument/didOpen,,33396 +1860,false,textDocument/didOpen,,33397 +545,false,textDocument/didOpen,,33398 +375,false,textDocument/didOpen,,33399 +396,false,textDocument/didOpen,,33398 +431,false,textDocument/didOpen,,33397 +381,false,textDocument/didOpen,,33398 +374,false,textDocument/didOpen,,33400 +386,false,textDocument/didOpen,,33455 +401,false,textDocument/didOpen,,33454 +424,false,textDocument/didOpen,,33453 +1910,false,textDocument/didOpen,,33452 +1883,false,textDocument/didOpen,,33451 +387,false,textDocument/didOpen,,33450 +401,false,textDocument/didOpen,,33449 +1970,false,textDocument/didOpen,,33448 +1864,false,textDocument/didOpen,,33447 +592,false,textDocument/didOpen,,33446 +435,false,textDocument/didOpen,,33445 +386,false,textDocument/didOpen,,33444 +442,false,textDocument/didOpen,,33443 +419,false,textDocument/didOpen,,33442 +2026,false,textDocument/didOpen,,33441 +444,false,textDocument/didOpen,,33440 +399,false,textDocument/didOpen,,33439 +1886,false,textDocument/didOpen,,33440 +394,false,textDocument/didOpen,,33442 +1869,false,textDocument/didOpen,,33444 +2122,false,textDocument/didOpen,,33448 +439,false,textDocument/didOpen,,33450 +435,false,textDocument/didOpen,,33451 +2018,false,textDocument/didOpen,,33452 +525,false,textDocument/didOpen,,33453 +1891,false,textDocument/didOpen,,33452 +428,false,textDocument/didOpen,,33451 +507,false,textDocument/didOpen,,33450 +1924,false,textDocument/didOpen,,33445 +36,true,textDocument/completion,, +1911,false,textDocument/didOpen,,33447 +2084,false,textDocument/didOpen,,33449 +1885,false,textDocument/didOpen,,33451 +398,false,textDocument/didOpen,,33465 +2022,false,textDocument/didOpen,,33464 +388,false,textDocument/didOpen,,33463 +447,false,textDocument/didOpen,,33462 +1892,false,textDocument/didOpen,,33463 +1956,false,textDocument/didOpen,,33465 +2052,false,textDocument/didOpen,,33467 +408,false,textDocument/didOpen,,33479 +755,false,textDocument/didOpen,,33481 +2090,false,textDocument/didOpen,,33483 +1896,false,textDocument/didOpen,,33484 +387,false,textDocument/didOpen,,33483 +1867,false,textDocument/didOpen,,33482 +434,false,textDocument/didOpen,,33481 +443,false,textDocument/didOpen,,33480 +580,false,textDocument/didOpen,,33479 +695,false,textDocument/didOpen,,33474 +33,true,textDocument/completion,, +453,false,textDocument/didOpen,,33475 +1930,false,textDocument/didOpen,,33486 +413,false,textDocument/didOpen,,33485 +2060,false,textDocument/didOpen,,33484 +1267,false,textDocument/didOpen,,33483 +2040,false,textDocument/didOpen,,33478 +2025,false,textDocument/didOpen,,33477 +2054,false,textDocument/didOpen,,33476 +516,false,textDocument/didOpen,,33475 +1896,false,textDocument/didOpen,,33474 +411,false,textDocument/didOpen,,33476 +557,false,textDocument/didOpen,,33478 +1868,false,textDocument/didOpen,,33480 +391,false,textDocument/didOpen,,33479 +497,false,textDocument/didOpen,,33493 +2474,false,textDocument/didOpen,,33492 +469,false,textDocument/didOpen,,33491 +531,false,textDocument/didOpen,,33490 +486,false,textDocument/didOpen,,33504 +2344,false,textDocument/didOpen,,33518 +506,false,textDocument/didOpen,,33517 +480,false,textDocument/didOpen,,33516 +494,false,textDocument/didOpen,,33515 +482,false,textDocument/didOpen,,33517 +1952,false,textDocument/didOpen,,33518 +2524,false,textDocument/didOpen,,33519 +2488,false,textDocument/didOpen,,33525 +2537,false,textDocument/didOpen,,33527 +783,false,textDocument/didOpen,,33528 +2393,false,textDocument/didOpen,,33529 +2472,false,textDocument/didOpen,,33528 +484,false,textDocument/didOpen,,33527 +533,false,textDocument/didOpen,,33526 +2524,false,textDocument/didOpen,,33529 +485,false,textDocument/didOpen,,33537 +683,false,textDocument/didOpen,,33539 +2494,false,textDocument/didOpen,,33540 +496,false,textDocument/didOpen,,33554 +2498,false,textDocument/didOpen,,33553 +537,false,textDocument/didOpen,,33552 +615,false,textDocument/didOpen,,33551 +2517,false,textDocument/didOpen,,33552 +2489,false,textDocument/didOpen,,33554 +525,false,textDocument/didOpen,,33560 +2400,false,textDocument/didOpen,,33562 +2368,false,textDocument/didOpen,,33564 +2295,false,textDocument/didOpen,,33570 +1708,false,textDocument/didOpen,,33576 +2370,false,textDocument/didOpen,,33580 +2939,false,textDocument/didOpen,,33582 +2400,false,textDocument/didOpen,,33583 +2402,false,textDocument/didOpen,,33584 +2449,false,textDocument/didOpen,,33598 +2503,false,textDocument/didOpen,,33597 +549,false,textDocument/didOpen,,33596 +557,false,textDocument/didOpen,,33598 +586,false,textDocument/didOpen,,33600 +2377,false,textDocument/didOpen,,33604 +2355,false,textDocument/didOpen,,33606 +2346,false,textDocument/didOpen,,33608 +501,false,textDocument/didOpen,,33622 +2374,false,textDocument/didOpen,,33621 +2347,false,textDocument/didOpen,,33620 +2329,false,textDocument/didOpen,,33634 +667,false,textDocument/didOpen,,33633 +2433,false,textDocument/didOpen,,33632 +493,false,textDocument/didOpen,,33631 +713,false,textDocument/didOpen,,33630 +2372,false,textDocument/didOpen,,33631 +49,true,textDocument/completion,, +2402,false,textDocument/didOpen,,33628 +693,false,textDocument/didOpen,,33627 +2402,false,textDocument/didOpen,,33628 +488,false,textDocument/didOpen,,33629 +2414,false,textDocument/didOpen,,33630 +648,false,textDocument/didOpen,,33629 +543,false,textDocument/didOpen,,33630 +2388,false,textDocument/didOpen,,33632 +2432,false,textDocument/didOpen,,33646 +2382,false,textDocument/didOpen,,33645 +2409,false,textDocument/didOpen,,33646 +497,false,textDocument/didOpen,,33660 +491,false,textDocument/didOpen,,33548 +486,false,textDocument/didOpen,,33660 +2423,false,textDocument/didOpen,,33659 +499,false,textDocument/didOpen,,33658 +615,false,textDocument/didOpen,,33644 +2450,false,textDocument/didOpen,,33645 +54,true,textDocument/completion,, +912,false,textDocument/didOpen,,33649 +19,true,textDocument/completion,, +532,false,textDocument/didOpen,,33635 +1504,false,textDocument/didOpen,,33636 +33,true,textDocument/completion,, +2359,false,textDocument/didOpen,,33640 +507,false,textDocument/didOpen,,33639 +2436,false,textDocument/didOpen,,33638 +577,false,textDocument/didOpen,,33642 +2446,false,textDocument/didOpen,,33641 +873,false,textDocument/didOpen,,33621 +504,false,textDocument/didOpen,,33622 +567,false,textDocument/didOpen,,33623 +10,true,textDocument/completion,, +1952,false,textDocument/didOpen,,33629 +38,true,textDocument/completion,, +2367,false,textDocument/didOpen,,33631 +489,false,textDocument/didOpen,,33630 +878,false,textDocument/didOpen,,33629 +992,false,textDocument/didOpen,,33628 +557,false,textDocument/didOpen,,33629 +2404,false,textDocument/didOpen,,33628 +2452,false,textDocument/didOpen,,33629 +2431,false,textDocument/didOpen,,33630 +565,false,textDocument/didOpen,,33631 +2400,false,textDocument/didOpen,,33632 +2502,false,textDocument/didOpen,,33631 +702,false,textDocument/didOpen,,33630 +553,false,textDocument/didOpen,,33629 +2491,false,textDocument/didOpen,,33630 +2444,false,textDocument/didOpen,,33632 +2399,false,textDocument/didOpen,,33633 +2502,false,textDocument/didOpen,,33634 +1232,false,textDocument/didOpen,,33635 +1260,false,textDocument/didOpen,,33634 +2448,false,textDocument/didOpen,,33633 +2472,false,textDocument/didOpen,,33632 +557,false,textDocument/didOpen,,33631 +2392,false,textDocument/didOpen,,33630 +525,false,textDocument/didOpen,,33634 +2445,false,textDocument/didOpen,,33633 +2432,false,textDocument/didOpen,,33632 +534,false,textDocument/didOpen,,33631 +826,false,textDocument/didOpen,,33630 +1692,false,textDocument/didOpen,,33625 +35,true,textDocument/completion,, +2476,false,textDocument/didOpen,,33627 +718,false,textDocument/didOpen,,33629 +501,false,textDocument/didOpen,,33631 +548,false,textDocument/didOpen,,33645 +839,false,textDocument/didOpen,,33644 +546,false,textDocument/didOpen,,33643 +571,false,textDocument/didOpen,,33642 +2937,false,textDocument/didOpen,,33641 +2722,false,textDocument/didOpen,,33640 +728,false,textDocument/didOpen,,33641 +2943,false,textDocument/didOpen,,33640 +2858,false,textDocument/didOpen,,33641 +615,false,textDocument/didOpen,,33642 +598,false,textDocument/didOpen,,33643 +2943,false,textDocument/didOpen,,33642 +1166,false,textDocument/didOpen,,33641 +2706,false,textDocument/didOpen,,33642 +2737,false,textDocument/didOpen,,33644 +2707,false,textDocument/didOpen,,33645 +582,false,textDocument/didOpen,,33659 +573,false,textDocument/didOpen,,33658 +579,false,textDocument/didOpen,,33657 +595,false,textDocument/didOpen,,33643 +603,false,textDocument/didOpen,,33644 +9,true,textDocument/completion,, +2943,false,textDocument/didOpen,,33645 +2904,false,textDocument/didOpen,,33646 +2854,false,textDocument/didOpen,,33647 +3022,false,textDocument/didOpen,,33661 +2972,false,textDocument/didOpen,,33660 +2983,false,textDocument/didOpen,,33659 +2939,false,textDocument/didOpen,,33658 +623,false,textDocument/didOpen,,33657 +2978,false,textDocument/didOpen,,33656 +630,false,textDocument/didOpen,,33655 +581,false,textDocument/didOpen,,33654 +606,false,textDocument/didOpen,,33653 +3001,false,textDocument/didOpen,,33652 +592,false,textDocument/didOpen,,33651 +957,false,textDocument/didOpen,,33650 +676,false,textDocument/didOpen,,33651 +2916,false,textDocument/didOpen,,33652 +38,true,textDocument/completion,, +3023,false,textDocument/didOpen,,33654 +591,false,textDocument/didOpen,,33655 +37,true,textDocument/completion,, +2759,false,textDocument/didOpen,,33657 +590,false,textDocument/didOpen,,33658 +2810,false,textDocument/didOpen,,33659 +36,true,textDocument/completion,, +646,false,textDocument/didOpen,,33658 +2900,false,textDocument/didOpen,,33657 +616,false,textDocument/didOpen,,33641 +2760,false,textDocument/didOpen,,33625 +620,false,textDocument/didOpen,,34642 +2343,false,textDocument/didOpen,,34641 +573,false,textDocument/didOpen,,34642 +2806,false,textDocument/didOpen,,34643 +995,false,textDocument/didOpen,,34644 +2938,false,textDocument/didOpen,,34643 +582,false,textDocument/didOpen,,34644 +572,false,textDocument/didOpen,,34643 +2886,false,textDocument/didOpen,,34642 +2854,false,textDocument/didOpen,,34643 +2893,false,textDocument/didOpen,,34645 +678,false,textDocument/didOpen,,34646 +892,false,textDocument/didOpen,,34645 +2877,false,textDocument/didOpen,,34644 +587,false,textDocument/didOpen,,34643 +1459,false,textDocument/didOpen,,34642 +637,false,textDocument/didOpen,,34637 +13,true,textDocument/completion,, +2877,false,textDocument/didOpen,,34638 +582,false,textDocument/didOpen,,34640 +2887,false,textDocument/didOpen,,34642 +2844,false,textDocument/didOpen,,34644 +599,false,textDocument/didOpen,,34643 +3410,false,textDocument/didOpen,,34644 +625,false,textDocument/didOpen,,34645 +2875,false,textDocument/didOpen,,34646 +602,false,textDocument/didOpen,,34645 +812,false,textDocument/didOpen,,34644 +2846,false,textDocument/didOpen,,34645 +2863,false,textDocument/didOpen,,34647 +3457,false,textDocument/didOpen,,34648 +604,false,textDocument/didOpen,,34647 +2862,false,textDocument/didOpen,,34646 +698,false,textDocument/didOpen,,34645 +649,false,textDocument/didOpen,,34644 +943,false,textDocument/didOpen,,34643 +849,false,textDocument/didOpen,,34642 +2865,false,textDocument/didOpen,,34641 +593,false,textDocument/didOpen,,34640 +1159,false,textDocument/didOpen,,34639 +1223,false,textDocument/didOpen,,34634 +22,true,textDocument/completion,, +2870,false,textDocument/didOpen,,34635 +586,false,textDocument/didOpen,,34639 +2853,false,textDocument/didOpen,,34641 +606,false,textDocument/didOpen,,34640 +605,false,textDocument/didOpen,,34639 +604,false,textDocument/didOpen,,34638 +2886,false,textDocument/didOpen,,34637 +648,false,textDocument/didOpen,,34636 +2916,false,textDocument/didOpen,,34635 +603,false,textDocument/didOpen,,34634 +2898,false,textDocument/didOpen,,34633 +680,false,textDocument/didOpen,,34632 +647,false,textDocument/didOpen,,34632 +1148,false,textDocument/didOpen,,34634 +1037,false,textDocument/didOpen,,34640 +2942,false,textDocument/didOpen,,34644 +1287,false,textDocument/didOpen,,34648 +853,false,textDocument/didOpen,,34649 +2894,false,textDocument/didOpen,,34648 +605,false,textDocument/didOpen,,34647 +595,false,textDocument/didOpen,,34646 +2899,false,textDocument/didOpen,,34646 +2901,false,textDocument/didOpen,,34648 +2891,false,textDocument/didOpen,,34652 +2919,false,textDocument/didOpen,,34654 +585,false,textDocument/didOpen,,34660 +609,false,textDocument/didOpen,,34661 +758,false,textDocument/didOpen,,34660 +2939,false,textDocument/didOpen,,34659 +615,false,textDocument/didOpen,,34658 +634,false,textDocument/didOpen,,34657 +614,false,textDocument/didOpen,,34656 +2923,false,textDocument/didOpen,,34655 +2910,false,textDocument/didOpen,,34654 +2900,false,textDocument/didOpen,,34653 +2061,false,textDocument/didOpen,,34652 +1696,false,textDocument/didOpen,,34651 +683,false,textDocument/didOpen,,34650 +636,false,textDocument/didOpen,,34649 +1243,false,textDocument/didOpen,,34648 +666,false,textDocument/didOpen,,34647 +602,false,textDocument/didOpen,,34646 +665,false,textDocument/didOpen,,34645 +612,false,textDocument/didOpen,,34644 +3104,false,textDocument/didOpen,,34640 +643,false,textDocument/didOpen,,34635 +10,true,textDocument/completion,, +2223,false,textDocument/didOpen,,34636 +2881,false,textDocument/didOpen,,34637 +38,true,textDocument/completion,, +584,false,textDocument/didOpen,,34632 +623,false,textDocument/didOpen,,34636 +677,false,textDocument/didOpen,,34640 +582,false,textDocument/didOpen,,34644 +3081,false,textDocument/didOpen,,34643 +5288,false,textDocument/didOpen,,34644 +3033,false,textDocument/didOpen,,34645 +2898,false,textDocument/didOpen,,34646 +629,false,textDocument/didOpen,,34645 +2892,false,textDocument/didOpen,,34646 +2864,false,textDocument/didOpen,,34648 +1111,false,textDocument/didOpen,,34647 +3270,false,textDocument/didOpen,,34648 +3668,false,textDocument/didOpen,,34649 +4920,false,textDocument/didOpen,,34650 +606,false,textDocument/didOpen,,34651 +11,true,textDocument/completion,, +583,false,textDocument/didOpen,,34650 +648,false,textDocument/didOpen,,34649 +2316,false,textDocument/didOpen,,34650 +2865,false,textDocument/didOpen,,34652 +585,false,textDocument/didOpen,,34651 +690,false,textDocument/didOpen,,34650 +1702,false,textDocument/didOpen,,34649 +588,false,textDocument/didOpen,,34648 +590,false,textDocument/didOpen,,34647 +636,false,textDocument/didOpen,,34648 +2922,false,textDocument/didOpen,,34649 +2909,false,textDocument/didOpen,,34650 +633,false,textDocument/didOpen,,34649 +2906,false,textDocument/didOpen,,34650 +2953,false,textDocument/didOpen,,34652 +609,false,textDocument/didOpen,,34651 +2902,false,textDocument/didOpen,,34647 +818,false,textDocument/didOpen,,34644 +13,true,textDocument/completion,, +2944,false,textDocument/didOpen,,34645 +603,false,textDocument/didOpen,,34644 +2407,false,textDocument/didOpen,,34645 +32,true,textDocument/completion,, +646,false,textDocument/didOpen,,34649 +2942,false,textDocument/didOpen,,34653 +2993,false,textDocument/didOpen,,34652 +2921,false,textDocument/didOpen,,34651 +661,false,textDocument/didOpen,,34648 +10,true,textDocument/completion,, +596,false,textDocument/didOpen,,34647 +2936,false,textDocument/didOpen,,34649 +2915,false,textDocument/didOpen,,34651 +645,false,textDocument/didOpen,,34648 +26,true,textDocument/completion,, +640,false,textDocument/didOpen,,34649 +637,false,textDocument/didOpen,,34648 +2924,false,textDocument/didOpen,,34647 +644,false,textDocument/didOpen,,34648 +3017,false,textDocument/didOpen,,34649 +2955,false,textDocument/didOpen,,34650 +2886,false,textDocument/didOpen,,34651 +644,false,textDocument/didOpen,,34652 +9,true,textDocument/completion,, +3035,false,textDocument/didOpen,,34651 +639,false,textDocument/didOpen,,34623 +651,false,textDocument/didOpen,,34624 +743,false,textDocument/didOpen,,34637 +2879,false,textDocument/didOpen,,34637 +2803,false,textDocument/didOpen,,34638 +38,true,textDocument/completion,, +4087,false,textDocument/didOpen,,34647 +827,false,textDocument/didOpen,,34627 +1433,false,textDocument/didOpen,,34546 +2555,false,textDocument/didOpen,,34546 +1564,false,textDocument/didOpen,,34542 +2311,false,textDocument/didOpen,,34543 +41,false,textDocument/completion,1, +7522,false,textDocument/didOpen,,34547 +6339,false,textDocument/didOpen,,34548 +4885,false,textDocument/didOpen,,34549 +86,false,textDocument/completion,1, +5580,false,textDocument/didOpen,,34551 +1549,false,textDocument/didOpen,,34552 +5654,false,textDocument/didOpen,,34553 +1509,false,textDocument/didOpen,,34554 +27,false,textDocument/completion,1, +8697,false,textDocument/didOpen,,34556 +7768,false,textDocument/didOpen,,34558 +1510,false,textDocument/didOpen,,34559 +3903,false,textDocument/didOpen,,34560 +7281,false,textDocument/didOpen,,34561 +119,false,textDocument/completion,1, +7309,false,textDocument/didOpen,,34562 +5676,false,textDocument/didOpen,,34563 +7323,false,textDocument/didOpen,,34566 +6006,false,textDocument/didOpen,,34567 +1612,false,textDocument/didOpen,,34571 +26,false,textDocument/completion,1, +2500,false,textDocument/didOpen,,34575 +43,false,textDocument/completion,1, +5702,false,textDocument/didOpen,,34577 +1546,false,textDocument/didOpen,,34585 +1878,false,textDocument/didOpen,,34586 +1743,false,textDocument/didOpen,,34587 +5862,false,textDocument/didOpen,,34588 +7302,false,textDocument/didOpen,,34590 +1802,false,textDocument/didOpen,,34591 +1512,false,textDocument/didOpen,,34585 +7375,false,textDocument/didOpen,,34583 +5883,false,textDocument/didOpen,,34585 +1602,false,textDocument/didOpen,,34584 +2138,false,textDocument/didOpen,,34579 +1764,false,textDocument/didOpen,,34581 +30,false,textDocument/completion,1, +4894,false,textDocument/didOpen,,34583 +7362,false,textDocument/didOpen,,34585 +8410,false,textDocument/didOpen,,34586 +1549,false,textDocument/didOpen,,34581 +1524,false,textDocument/didOpen,,34580 +1494,false,textDocument/didOpen,,34574 +5580,false,textDocument/didOpen,,34568 +5843,false,textDocument/didOpen,,34562 +6089,false,textDocument/didOpen,,34556 +1626,false,textDocument/didOpen,,34550 +1560,false,textDocument/didOpen,,34544 +1957,false,textDocument/didOpen,,34543 +6166,false,textDocument/didOpen,,34544 +7401,false,textDocument/didOpen,,34545 +117,false,textDocument/completion,1, +7365,false,textDocument/didOpen,,34547 +1610,false,textDocument/didOpen,,34554 +7286,false,textDocument/didOpen,,34556 +156,false,textDocument/completion,1, +2966,false,textDocument/didOpen,,34558 +7309,false,textDocument/didOpen,,34563 +147,false,textDocument/completion,1, +7367,false,textDocument/didOpen,,34573 +147,false,textDocument/completion,1, +1499,false,textDocument/didOpen,,34578 +1631,false,textDocument/didOpen,,34579 +1569,false,textDocument/didOpen,,34581 +7339,false,textDocument/didOpen,,34583 +5966,false,textDocument/didOpen,,34582 +5029,false,textDocument/didOpen,,34581 +1517,false,textDocument/didOpen,,34580 +3901,false,textDocument/didOpen,,34579 +7303,false,textDocument/didOpen,,34578 +5478,false,textDocument/didOpen,,34577 +6174,false,textDocument/didOpen,,34576 +1486,false,textDocument/didOpen,,34575 +2144,false,textDocument/didOpen,,34574 +1522,false,textDocument/didOpen,,34575 +1966,false,textDocument/didOpen,,34576 +42,false,textDocument/completion,1, +1574,false,textDocument/didOpen,,34578 +7268,false,textDocument/didOpen,,34582 +7339,false,textDocument/didOpen,,34583 +2480,false,textDocument/didOpen,,34584 +117,false,textDocument/completion,1, +8596,false,textDocument/didOpen,,34587 +150,false,textDocument/completion,1, +2127,false,textDocument/didOpen,,34594 +44,false,textDocument/completion,1, +7328,false,textDocument/didOpen,,34602 +5462,false,textDocument/didOpen,,34601 +7366,false,textDocument/didOpen,,34600 +7297,false,textDocument/didOpen,,34599 +7343,false,textDocument/didOpen,,34598 +7490,false,textDocument/didOpen,,34597 +3667,false,textDocument/didOpen,,34596 +4604,false,textDocument/didOpen,,34595 +7487,false,textDocument/didOpen,,34596 +7211,false,textDocument/didOpen,,34597 +1579,false,textDocument/didOpen,,34598 +1444,false,textDocument/didOpen,,34597 +1531,false,textDocument/didOpen,,34596 +7348,false,textDocument/didOpen,,34597 +7483,false,textDocument/didOpen,,34599 +7389,false,textDocument/didOpen,,34600 +898,false,textDocument/didOpen,,34599 +939,false,textDocument/didOpen,,34598 +1732,false,textDocument/didOpen,,34597 +1121,false,textDocument/didOpen,,34596 +1094,false,textDocument/didOpen,,34595 +5326,false,textDocument/didOpen,,34596 +1143,false,textDocument/didOpen,,34597 +5452,false,textDocument/didOpen,,34598 +5435,false,textDocument/didOpen,,34597 +5470,false,textDocument/didOpen,,34598 +6230,false,textDocument/didOpen,,34599 +2899,false,textDocument/didOpen,,34600 +1281,false,textDocument/didOpen,,34599 +6330,false,textDocument/didOpen,,34600 +5825,false,textDocument/didOpen,,34601 +1353,false,textDocument/didOpen,,34602 +1704,false,textDocument/didOpen,,34601 +1603,false,textDocument/didOpen,,34600 +2468,false,textDocument/didOpen,,34600 +1593,false,textDocument/didOpen,,34599 +3020,false,textDocument/didOpen,,34601 +3548,false,textDocument/didOpen,,34602 +1487,false,textDocument/didOpen,,34601 +6163,false,textDocument/didOpen,,34600 +6972,false,textDocument/didOpen,,34601 +4477,false,textDocument/didOpen,,34603 +3300,false,textDocument/didOpen,,34604 +2224,false,textDocument/didOpen,,34603 +2370,false,textDocument/didOpen,,34604 +6701,false,textDocument/didOpen,,34605 +10688,false,textDocument/didOpen,,34606 +4253,false,textDocument/didOpen,,34605 +4396,false,textDocument/didOpen,,34606 +2136,false,textDocument/didOpen,,34608 +6628,false,textDocument/didOpen,,34607 +2348,false,textDocument/didOpen,,34606 +2121,false,textDocument/didOpen,,34605 +5428,false,textDocument/didOpen,,34604 +2411,false,textDocument/didOpen,,34603 +2087,false,textDocument/didOpen,,34602 +2229,false,textDocument/didOpen,,34601 +2090,false,textDocument/didOpen,,34599 +2311,false,textDocument/didOpen,,34598 +2228,false,textDocument/didOpen,,34596 +2298,false,textDocument/didOpen,,34595 +1785,false,textDocument/didOpen,,34594 +2118,false,textDocument/didOpen,,34593 +2117,false,textDocument/didOpen,,34591 +10759,false,textDocument/didOpen,,34590 +2583,false,textDocument/didOpen,,34589 +10599,false,textDocument/didOpen,,34591 +6690,false,textDocument/didOpen,,34592 +10285,false,textDocument/didOpen,,34593 +2502,false,textDocument/didOpen,,34594 +2233,false,textDocument/didOpen,,34593 +2169,false,textDocument/didOpen,,34594 +8169,false,textDocument/didOpen,,34595 +6439,false,textDocument/didOpen,,34596 +2195,false,textDocument/didOpen,,34595 +6166,false,textDocument/didOpen,,34596 +2336,false,textDocument/didOpen,,34594 +2389,false,textDocument/didOpen,,34593 +2304,false,textDocument/didOpen,,34592 +2293,false,textDocument/didOpen,,34591 +6595,false,textDocument/didOpen,,34592 +10563,false,textDocument/didOpen,,34593 +10309,false,textDocument/didOpen,,34594 +2252,false,textDocument/didOpen,,34593 +11276,false,textDocument/didOpen,,34594 +6445,false,textDocument/didOpen,,34596 +2458,false,textDocument/didOpen,,34595 +10828,false,textDocument/didOpen,,34596 +11231,false,textDocument/didOpen,,34597 +2380,false,textDocument/didOpen,,34598 +2261,false,textDocument/didOpen,,34597 +10605,false,textDocument/didOpen,,34598 +11563,false,textDocument/didOpen,,34600 +2188,false,textDocument/didOpen,,34599 +2302,false,textDocument/didOpen,,34600 +11354,false,textDocument/didOpen,,34601 +11366,false,textDocument/didOpen,,34602 +3106,false,textDocument/didOpen,,34601 +11284,false,textDocument/didOpen,,34602 +2999,false,textDocument/didOpen,,34603 +3124,false,textDocument/didOpen,,34604 +2256,false,textDocument/didOpen,,34603 +4048,false,textDocument/didOpen,,34604 +2408,false,textDocument/didOpen,,34603 +2351,false,textDocument/didOpen,,34604 +11244,false,textDocument/didOpen,,34605 +7531,false,textDocument/didOpen,,34606 +6405,false,textDocument/didOpen,,34605 +11292,false,textDocument/didOpen,,34606 +3759,false,textDocument/didOpen,,34607 +7562,false,textDocument/didOpen,,34608 +5973,false,textDocument/didOpen,,34607 +2189,false,textDocument/didOpen,,34608 +11255,false,textDocument/didOpen,,34609 +10731,false,textDocument/didOpen,,34610 +2375,false,textDocument/didOpen,,34609 +3084,false,textDocument/didOpen,,34608 +2259,false,textDocument/didOpen,,34609 +2231,false,textDocument/didOpen,,34611 +6309,false,textDocument/didOpen,,34610 +2430,false,textDocument/didOpen,,34611 +6082,false,textDocument/didOpen,,34612 +10817,false,textDocument/didOpen,,34613 +2340,false,textDocument/didOpen,,34612 +2419,false,textDocument/didOpen,,34614 +2259,false,textDocument/didOpen,,34615 +2317,false,textDocument/didOpen,,34614 +10681,false,textDocument/didOpen,,34615 +10679,false,textDocument/didOpen,,34616 +11452,false,textDocument/didOpen,,34617 +2219,false,textDocument/didOpen,,34616 +2553,false,textDocument/didOpen,,34617 +10726,false,textDocument/didOpen,,34618 +2356,false,textDocument/didOpen,,34619 +2217,false,textDocument/didOpen,,34617 +2137,false,textDocument/didOpen,,34616 +2188,false,textDocument/didOpen,,34615 +2258,false,textDocument/didOpen,,34616 +6772,false,textDocument/didOpen,,34615 +10585,false,textDocument/didOpen,,34616 +11395,false,textDocument/didOpen,,34617 +11241,false,textDocument/didOpen,,34618 +2386,false,textDocument/didOpen,,34617 +7282,false,textDocument/didOpen,,34618 +11310,false,textDocument/didOpen,,34620 +2188,false,textDocument/didOpen,,34619 +9152,false,textDocument/didOpen,,34618 +6913,false,textDocument/didOpen,,34617 +2505,false,textDocument/didOpen,,34616 +6384,false,textDocument/didOpen,,34615 +2231,false,textDocument/didOpen,,34614 +6634,false,textDocument/didOpen,,34613 +2352,false,textDocument/didOpen,,34614 +6526,false,textDocument/didOpen,,34615 +10836,false,textDocument/didOpen,,34616 +3615,false,textDocument/didOpen,,34615 +6470,false,textDocument/didOpen,,34616 +11100,false,textDocument/didOpen,,34618 +2152,false,textDocument/didOpen,,34617 +10965,false,textDocument/didOpen,,34618 +11597,false,textDocument/didOpen,,34619 +10299,false,textDocument/didOpen,,34620 +5301,false,textDocument/didOpen,,34619 +2216,false,textDocument/didOpen,,34620 +11107,false,textDocument/didOpen,,34622 +2291,false,textDocument/didOpen,,34621 +14356,false,textDocument/didOpen,,34622 +10822,false,textDocument/didOpen,,34624 +6166,false,textDocument/didOpen,,34623 +10845,false,textDocument/didOpen,,34624 +2195,false,textDocument/didOpen,,34626 +2367,false,textDocument/didOpen,,34625 +19474,false,textDocument/didOpen,,34627 +11476,false,textDocument/didOpen,,34628 +2311,false,textDocument/didOpen,,34627 +10295,false,textDocument/didOpen,,34628 +10820,false,textDocument/didOpen,,34630 +6121,false,textDocument/didOpen,,34629 +10938,false,textDocument/didOpen,,34630 +6933,false,textDocument/didOpen,,34632 +3146,false,textDocument/didOpen,,34631 +2769,false,textDocument/didOpen,,34632 +10872,false,textDocument/didOpen,,34633 +11588,false,textDocument/didOpen,,34634 +2382,false,textDocument/didOpen,,34633 +11130,false,textDocument/didOpen,,34634 +19549,false,textDocument/didOpen,,34635 +10771,false,textDocument/didOpen,,34636 +6945,false,textDocument/didOpen,,34635 +11011,false,textDocument/didOpen,,34636 +11524,false,textDocument/didOpen,,34638 +9846,false,textDocument/didOpen,,34637 +6314,false,textDocument/didOpen,,34636 +2206,false,textDocument/didOpen,,34635 +10230,false,textDocument/didOpen,,34634 +6128,false,textDocument/didOpen,,34633 +6765,false,textDocument/didOpen,,34632 +6446,false,textDocument/didOpen,,34631 +10183,false,textDocument/didOpen,,34629 +10184,false,textDocument/didOpen,,34628 +2213,false,textDocument/didOpen,,34627 +6215,false,textDocument/didOpen,,34626 +2035,false,textDocument/didOpen,,34625 +10116,false,textDocument/didOpen,,34624 +2081,false,textDocument/didOpen,,34623 +2327,false,textDocument/didOpen,,34622 +2386,false,textDocument/didOpen,,34563 +6936,false,textDocument/didOpen,,34622 +2232,false,textDocument/didOpen,,34563 +2293,false,textDocument/didOpen,,34622 +2553,false,textDocument/didOpen,,34621 +2791,false,textDocument/didOpen,,34620 +2306,false,textDocument/didOpen,,34619 +6686,false,textDocument/didOpen,,34618 +10864,false,textDocument/didOpen,,34617 +2196,false,textDocument/didOpen,,34616 +2241,false,textDocument/didOpen,,34615 +2047,false,textDocument/didOpen,,34614 +2414,false,textDocument/didOpen,,34613 +6387,false,textDocument/didOpen,,34612 +2108,false,textDocument/didOpen,,34611 +6405,false,textDocument/didOpen,,34610 +2149,false,textDocument/didOpen,,34609 +2450,false,textDocument/didOpen,,34608 +6427,false,textDocument/didOpen,,34607 +6535,false,textDocument/didOpen,,34606 +6747,false,textDocument/didOpen,,34605 +2435,false,textDocument/didOpen,,34604 +6896,false,textDocument/didOpen,,34603 +2377,false,textDocument/didOpen,,34602 +2346,false,textDocument/didOpen,,34601 +11181,false,textDocument/didOpen,,34600 +2405,false,textDocument/didOpen,,34599 +2321,false,textDocument/didOpen,,34495 +2518,false,textDocument/didOpen,,34599 +2423,false,textDocument/didOpen,,34598 +2411,false,textDocument/didOpen,,34596 +6963,false,textDocument/didOpen,,34595 +6409,false,textDocument/didOpen,,34594 +2386,false,textDocument/didOpen,,34593 +2674,false,textDocument/didOpen,,34592 +6170,false,textDocument/didOpen,,34591 +2334,false,textDocument/didOpen,,34592 +1881,false,textDocument/didOpen,,34591 +10018,false,textDocument/didOpen,,34590 +2057,false,textDocument/didOpen,,34589 +2028,false,textDocument/didOpen,,34588 +5854,false,textDocument/didOpen,,34587 +5919,false,textDocument/didOpen,,34586 +2015,false,textDocument/didOpen,,34585 +9365,false,textDocument/didOpen,,34584 +2011,false,textDocument/didOpen,,34583 +2265,false,textDocument/didOpen,,34582 +3057,false,textDocument/didOpen,,34581 +6633,false,textDocument/didOpen,,34580 +9805,false,textDocument/didOpen,,34579 +3081,false,textDocument/didOpen,,34578 +2347,false,textDocument/didOpen,,34577 +6276,false,textDocument/didOpen,,34576 +2251,false,textDocument/didOpen,,34575 +2313,false,textDocument/didOpen,,34574 +6812,false,textDocument/didOpen,,34539 +2447,false,textDocument/didOpen,,34538 +2415,false,textDocument/didOpen,,34537 +2480,false,textDocument/didOpen,,34535 +2312,false,textDocument/didOpen,,34531 +504,false,textDocument/didOpen,,8263 +4349,false,textDocument/didOpen,,8241 +831,false,textDocument/didOpen,,8239 +864,false,textDocument/didOpen,,8238 +4295,false,textDocument/didOpen,,8237 +997,false,textDocument/didOpen,,8236 +922,false,textDocument/didOpen,,8235 +987,false,textDocument/didOpen,,8234 +4379,false,textDocument/didOpen,,8233 +4371,false,textDocument/didOpen,,8230 +4358,false,textDocument/didOpen,,8231 +841,false,textDocument/didOpen,,8230 +1563,false,textDocument/didOpen,,8231 +18,true,textDocument/completion,, +864,false,textDocument/didOpen,,8233 +4135,false,textDocument/didOpen,,8233 +4466,false,textDocument/didOpen,,8232 +859,false,textDocument/didOpen,,8232 +1797,false,textDocument/didOpen,,8233 +21,true,textDocument/completion,, +1076,false,textDocument/didOpen,,8232 +3665,false,textDocument/didOpen,,8231 +3540,false,textDocument/didOpen,,8230 +3693,false,textDocument/didOpen,,8231 +3596,false,textDocument/didOpen,,8230 +733,false,textDocument/didOpen,,8231 +760,false,textDocument/didOpen,,8230 +3602,false,textDocument/didOpen,,8231 +174329,false,textDocument/didOpen,,8230 +154493,false,textDocument/didOpen,,8231 +197237,false,textDocument/didOpen,,8232 +235261,false,textDocument/didOpen,,8231 +292004,false,textDocument/didOpen,,8232 +315071,false,textDocument/didOpen,,8231 +382927,false,textDocument/didOpen,,8232 +273543,false,textDocument/didOpen,,8232 +303380,false,textDocument/didOpen,,8231 +329185,false,textDocument/didOpen,,8232 +268046,false,textDocument/didOpen,,8233 +296960,false,textDocument/didOpen,,8234 +338077,false,textDocument/didOpen,,8233 +355496,false,textDocument/didOpen,,8234 +373686,false,textDocument/didOpen,,8236 +361247,false,textDocument/didOpen,,8237 +65,false,textDocument/completion,256, +365064,false,textDocument/didOpen,,8236 +335692,false,textDocument/didOpen,,8235 +376191,false,textDocument/didOpen,,8234 +382874,false,textDocument/didOpen,,8235 +842268,false,textDocument/didOpen,,8236 +151554,false,textDocument/didOpen,,1668 +66335,false,textDocument/didOpen,,1641 +74887,false,textDocument/didOpen,,1632 +502,false,textDocument/didOpen,,1633 +198,false,textDocument/completion,249, +2209,false,textDocument/didOpen,,1634 +2187,false,textDocument/didOpen,,1635 +120904,false,textDocument/didOpen,,1636 +77831,false,textDocument/didOpen,,1627 +444,false,textDocument/didOpen,,1628 +153,false,textDocument/completion,249, +86981,false,textDocument/didOpen,,1631 +142864,false,textDocument/didOpen,,4793 +56546,false,textDocument/didOpen,,4788 +82851,false,textDocument/didOpen,,4789 +188,false,textDocument/completion,133, +72355,false,textDocument/didOpen,,4793 +98,false,textDocument/completion,127, +92233,false,textDocument/didOpen,,4794 +125976,false,textDocument/didOpen,,1631 +65129,false,textDocument/didOpen,,1628 +245,false,textDocument/didOpen,,1 +6558,false,textDocument/didOpen,,78 +140358,false,textDocument/didOpen,,1628 +66525,false,textDocument/didOpen,,1627 +94661,false,textDocument/didOpen,,1628 +965,false,textDocument/completion,251, +99057,false,textDocument/didOpen,,1629 +140266,false,textDocument/didOpen,,4794 +19,false,textDocument/definition,127, +233599,false,textDocument/didOpen,,8236 +58204,false,textDocument/didOpen,,4793 +50395,false,textDocument/didOpen,,4794 +79160,false,textDocument/didOpen,,4793 +74147,false,textDocument/didOpen,,4794 +84179,false,textDocument/didOpen,,4796 +100598,false,textDocument/didOpen,,4798 +64411,false,textDocument/didOpen,,4793 +102493,false,textDocument/didOpen,,4794 +124725,false,textDocument/didOpen,,4796 +119903,false,textDocument/didOpen,,4798 +131406,false,textDocument/didOpen,,4799 +141,false,textDocument/completion,129, +103897,false,textDocument/didOpen,,4800 +155280,false,textDocument/didOpen,,4802 +126754,false,textDocument/didOpen,,4803 +164233,false,textDocument/didOpen,,4804 +130401,false,textDocument/didOpen,,4805 +414,false,textDocument/didOpen,,4806 +97,false,textDocument/completion,129, +1349,false,textDocument/didOpen,,4807 +1540,false,textDocument/didOpen,,4806 +1802,false,textDocument/didOpen,,4806 +414,false,textDocument/completion,129, +1350,false,textDocument/didOpen,,4808 +168543,false,textDocument/didOpen,,4809 +140074,false,textDocument/didOpen,,4810 +152363,false,textDocument/didOpen,,4811 +340,false,textDocument/completion,130, +170977,false,textDocument/didOpen,,4812 +190270,false,textDocument/didOpen,,4815 +143783,false,textDocument/didOpen,,4816 +97439,false,textDocument/didOpen,,4817 +114435,false,textDocument/didOpen,,4818 +134590,false,textDocument/didOpen,,4817 +144085,false,textDocument/didOpen,,4818 +142398,false,textDocument/didOpen,,4817 +141038,false,textDocument/didOpen,,4819 +117378,false,textDocument/didOpen,,4820 +94987,false,textDocument/didOpen,,4821 +111,false,textDocument/completion,99, +100848,false,textDocument/didOpen,,4830 +69,false,textDocument/completion,99, +116199,false,textDocument/didOpen,,4837 +548,false,textDocument/completion,99, +161959,false,textDocument/didOpen,,4838 +110988,false,textDocument/didOpen,,4840 +132147,false,textDocument/didOpen,,4841 +106611,false,textDocument/didOpen,,4842 +140949,false,textDocument/didOpen,,4843 +270786,false,textDocument/didOpen,,4845 +281328,false,textDocument/didOpen,,4846 +21468,false,textDocument/didOpen,,78 +406,false,textDocument/didOpen,,77 +968,false,textDocument/didOpen,,78 +6259,false,textDocument/didOpen,,77 +208154,false,textDocument/didOpen,,8236 +113234,false,textDocument/didOpen,,8235 +116764,false,textDocument/didOpen,,8236 +196562,false,textDocument/didOpen,,8235 +236549,false,textDocument/didOpen,,8235 +219634,false,textDocument/didOpen,,8234 +226250,false,textDocument/didOpen,,8233 +49,false,textDocument/definition,277, +310160,false,textDocument/didOpen,,8233 +263627,false,textDocument/didOpen,,8233 +342224,false,textDocument/didOpen,,8233 +330904,false,textDocument/didOpen,,8233 +193549,false,textDocument/didOpen,,8233 +192247,false,textDocument/didOpen,,8233 +190566,false,textDocument/didOpen,,8233 +345420,false,textDocument/didOpen,,8233 +186982,false,textDocument/didOpen,,8233 +190004,false,textDocument/didOpen,,8233 +191390,false,textDocument/didOpen,,8233 +299027,false,textDocument/didOpen,,8233 +14,false,textDocument/definition,277, +309755,false,textDocument/didOpen,,8233 +209169,false,textDocument/didOpen,,8232 +212755,false,textDocument/didOpen,,8233 +253335,false,textDocument/didOpen,,8235 +242459,false,textDocument/didOpen,,8237 +331491,false,textDocument/didOpen,,8239 +377063,false,textDocument/didOpen,,8240 +409694,false,textDocument/didOpen,,8241 +510132,false,textDocument/didOpen,,8242 +478,false,textDocument/completion,276, +477620,false,textDocument/didOpen,,8243 +574518,false,textDocument/didOpen,,8244 +2270,false,textDocument/completion,276, +647673,false,textDocument/didOpen,,8243 +624513,false,textDocument/didOpen,,8242 +195,false,textDocument/didOpen,,1 +38,false,textDocument/didOpen,,2 +16,false,textDocument/completion,1, +108,false,textDocument/didOpen,,3 +887,false,textDocument/didOpen,,7 +33,false,textDocument/completion,1, +884,false,textDocument/didOpen,,9 +881,false,textDocument/didOpen,,14 +34,false,textDocument/completion,1, +898,false,textDocument/didOpen,,15 +921,false,textDocument/didOpen,,21 +912,false,textDocument/didOpen,,19 +909,false,textDocument/didOpen,,18 +897,false,textDocument/didOpen,,17 +913,false,textDocument/didOpen,,15 +221,false,textDocument/didOpen,,16 +28,false,textDocument/completion,1, +207,false,textDocument/didOpen,,21 +948,false,textDocument/didOpen,,23 +355,false,textDocument/didOpen,,24 +1018,false,textDocument/didOpen,,28 +114,false,textDocument/completion,1, +929,false,textDocument/didOpen,,29 +40,false,textDocument/completion,1, +907,false,textDocument/didOpen,,28 +907,false,textDocument/didOpen,,28 +123,false,textDocument/completion,1, +908,false,textDocument/didOpen,,31 +198,false,textDocument/didOpen,,32 +222,false,textDocument/didOpen,,33 +37,false,textDocument/completion,1, +917,false,textDocument/didOpen,,34 +895,false,textDocument/didOpen,,37 +314,false,textDocument/didOpen,,38 +880,false,textDocument/didOpen,,39 +129,false,textDocument/completion,1, +919,false,textDocument/didOpen,,40 +894,false,textDocument/didOpen,,43 +190,false,textDocument/didOpen,,44 +59,false,textDocument/completion,1, +59,false,textDocument/completion,1, +243,false,textDocument/didOpen,,43 +48,false,textDocument/completion,1, +41,false,textDocument/completion,1, +214,false,textDocument/didOpen,,42 +29,false,textDocument/completion,1, +912,false,textDocument/didOpen,,43 +906,false,textDocument/didOpen,,42 +899,false,textDocument/didOpen,,43 +910,false,textDocument/didOpen,,44 +826,false,textDocument/didOpen,,45 +31,false,textDocument/completion,1, +943,false,textDocument/didOpen,,44 +957,false,textDocument/didOpen,,43 +944,false,textDocument/didOpen,,44 +117,false,textDocument/completion,1, +435,false,textDocument/didOpen,,45 +200,false,textDocument/didOpen,,46 +81,false,textDocument/completion,1, +894,false,textDocument/didOpen,,44 +969,false,textDocument/didOpen,,43 +907,false,textDocument/didOpen,,44 +887,false,textDocument/didOpen,,45 +114,false,textDocument/completion,1, +927,false,textDocument/didOpen,,49 +2755,false,textDocument/didOpen,,51 +142,false,textDocument/completion,3, +712,false,textDocument/didOpen,,52 +3126,false,textDocument/didOpen,,51 +2705,false,textDocument/didOpen,,52 +2763,false,textDocument/didOpen,,53 +2688,false,textDocument/didOpen,,54 +2754,false,textDocument/didOpen,,53 +3139,false,textDocument/didOpen,,54 +2695,false,textDocument/didOpen,,57 +621,false,textDocument/didOpen,,58 +12,false,textDocument/completion,3, +2679,false,textDocument/didOpen,,60 +2605,false,textDocument/didOpen,,62 +2733,false,textDocument/didOpen,,64 +2709,false,textDocument/didOpen,,65 +2939,false,textDocument/didOpen,,66 +2717,false,textDocument/didOpen,,67 +2743,false,textDocument/didOpen,,68 +618,false,textDocument/didOpen,,69 +9,false,textDocument/completion,3, +2736,false,textDocument/didOpen,,70 +3086,false,textDocument/didOpen,,72 +2627,false,textDocument/didOpen,,73 +2723,false,textDocument/didOpen,,74 +555,false,textDocument/didOpen,,75 +9,false,textDocument/completion,3, +2758,false,textDocument/didOpen,,80 +2613,false,textDocument/didOpen,,81 +611,false,textDocument/didOpen,,83 +9,false,textDocument/completion,3, +2658,false,textDocument/didOpen,,86 +2748,false,textDocument/didOpen,,87 +2676,false,textDocument/didOpen,,88 +2676,false,textDocument/didOpen,,89 +2703,false,textDocument/didOpen,,94 +2613,false,textDocument/didOpen,,95 +2602,false,textDocument/didOpen,,93 +2724,false,textDocument/didOpen,,94 +2712,false,textDocument/didOpen,,95 +2722,false,textDocument/didOpen,,94 +3251,false,textDocument/didOpen,,95 +13087,false,textDocument/didOpen,,96 +773,false,textDocument/didOpen,,95 +4469,false,textDocument/didOpen,,96 +8317,false,textDocument/didOpen,,98 +8319,false,textDocument/didOpen,,100 +2729,false,textDocument/didOpen,,101 +96,false,textDocument/completion,11, +8516,false,textDocument/didOpen,,109 +2754,false,textDocument/didOpen,,110 +629,false,textDocument/didOpen,,111 +61,false,textDocument/completion,3, +3092,false,textDocument/didOpen,,112 +2710,false,textDocument/didOpen,,114 +7161,false,textDocument/didOpen,,116 +6620,false,textDocument/didOpen,,117 +11014,false,textDocument/didOpen,,118 +6961,false,textDocument/didOpen,,120 +11794,false,textDocument/didOpen,,122 +3165,false,textDocument/didOpen,,123 +79,false,textDocument/completion,13, +13621,false,textDocument/didOpen,,124 +13229,false,textDocument/didOpen,,128 +13084,false,textDocument/didOpen,,130 +7738,false,textDocument/didOpen,,133 +13157,false,textDocument/didOpen,,134 +2779,false,textDocument/didOpen,,135 +2667,false,textDocument/didOpen,,142 +636,false,textDocument/didOpen,,143 +73,false,textDocument/completion,3, +2693,false,textDocument/didOpen,,144 +2741,false,textDocument/didOpen,,145 +2024,false,textDocument/didOpen,,149 +74,false,textDocument/completion,3, +2702,false,textDocument/didOpen,,150 +4130,false,textDocument/didOpen,,151 +2692,false,textDocument/didOpen,,152 +2707,false,textDocument/didOpen,,153 +947,false,textDocument/didOpen,,155 +49,false,textDocument/completion,3, +3166,false,textDocument/didOpen,,156 +2734,false,textDocument/didOpen,,159 +174,false,textDocument/completion,3, +3151,false,textDocument/didOpen,,160 +2760,false,textDocument/didOpen,,162 +1476,false,textDocument/didOpen,,163 +148,false,textDocument/completion,3, +687,false,textDocument/didOpen,,164 +250,false,textDocument/completion,3, +2904,false,textDocument/didOpen,,165 +2845,false,textDocument/didOpen,,166 +8735,false,textDocument/didOpen,,167 +12443,false,textDocument/didOpen,,171 +8133,false,textDocument/didOpen,,175 +8696,false,textDocument/didOpen,,179 +8983,false,textDocument/didOpen,,177 +7715,false,textDocument/didOpen,,176 +7979,false,textDocument/didOpen,,177 +171,false,textDocument/completion,17, +7688,false,textDocument/didOpen,,178 +22995,false,textDocument/didOpen,,179 +7510,false,textDocument/didOpen,,180 +22441,false,textDocument/didOpen,,182 +10361,false,textDocument/didOpen,,184 +6061,false,textDocument/didOpen,,185 +102,false,textDocument/completion,19, +23520,false,textDocument/didOpen,,190 +2731,false,textDocument/didOpen,,194 +2704,false,textDocument/didOpen,,201 +621,false,textDocument/didOpen,,202 +28,false,textDocument/completion,3, +4289,false,textDocument/didOpen,,206 +2668,false,textDocument/didOpen,,210 +566,false,textDocument/didOpen,,211 +31,false,textDocument/completion,3, +4119,false,textDocument/didOpen,,212 +2656,false,textDocument/didOpen,,213 +2809,false,textDocument/didOpen,,350 +4815,false,textDocument/didOpen,,331 +2763,false,textDocument/didOpen,,343 +24291,false,textDocument/didOpen,,344 +13545,false,textDocument/didOpen,,345 +2879,false,textDocument/didOpen,,346 +2751,false,textDocument/didOpen,,347 +2733,false,textDocument/didOpen,,349 +619,false,textDocument/didOpen,,350 +2733,false,textDocument/didOpen,,351 +2735,false,textDocument/didOpen,,353 +5339,false,textDocument/didOpen,,355 +5338,false,textDocument/didOpen,,353 +2718,false,textDocument/didOpen,,351 +2714,false,textDocument/didOpen,,350 +1420,false,textDocument/didOpen,,349 +2690,false,textDocument/didOpen,,350 +2751,false,textDocument/didOpen,,352 +39892,false,textDocument/didOpen,,353 +35743,false,textDocument/didOpen,,354 +36519,false,textDocument/didOpen,,355 +36775,false,textDocument/didOpen,,359 +543,false,textDocument/didOpen,,362 +377,false,textDocument/completion,27, +496,false,textDocument/didOpen,,363 +492,false,textDocument/didOpen,,367 +9536,false,textDocument/didOpen,,368 +4248,false,textDocument/didOpen,,370 +190,false,textDocument/completion,3, +836,false,textDocument/didOpen,,374 +1005,false,textDocument/didOpen,,375 +634,false,textDocument/didOpen,,377 +30,false,textDocument/completion,3, +2767,false,textDocument/didOpen,,381 +653,false,textDocument/didOpen,,382 +5093,false,textDocument/didOpen,,383 +130,false,textDocument/completion,3, +2753,false,textDocument/didOpen,,384 +2779,false,textDocument/didOpen,,384 +125,false,textDocument/completion,3, +3065,false,textDocument/didOpen,,385 +2728,false,textDocument/didOpen,,386 +497,false,textDocument/didOpen,,387 +514,false,textDocument/didOpen,,388 +9452,false,textDocument/didOpen,,389 +25335,false,textDocument/didOpen,,390 +13617,false,textDocument/didOpen,,391 +25046,false,textDocument/didOpen,,398 +5844,false,textDocument/didOpen,,392 +9067,false,textDocument/didOpen,,393 +83,false,textDocument/completion,19, +28746,false,textDocument/didOpen,,396 +10315,false,textDocument/didOpen,,394 +25573,false,textDocument/didOpen,,393 +22937,false,textDocument/didOpen,,392 +22963,false,textDocument/didOpen,,393 +226,false,textDocument/completion,19, +27467,false,textDocument/didOpen,,392 +9431,false,textDocument/didOpen,,394 +105,false,textDocument/completion,19, +32801,false,textDocument/didOpen,,397 +15443,false,textDocument/didOpen,,399 +29141,false,textDocument/didOpen,,401 +29054,false,textDocument/didOpen,,402 +25734,false,textDocument/didOpen,,404 +6921,false,textDocument/didOpen,,405 +74,false,textDocument/completion,19, +27370,false,textDocument/didOpen,,407 +24695,false,textDocument/didOpen,,409 +10436,false,textDocument/didOpen,,412 +10005,false,textDocument/didOpen,,413 +25079,false,textDocument/didOpen,,414 +29112,false,textDocument/didOpen,,422 +6803,false,textDocument/didOpen,,423 +100,false,textDocument/completion,19, +26157,false,textDocument/didOpen,,426 +27149,false,textDocument/didOpen,,427 +26855,false,textDocument/didOpen,,429 +10098,false,textDocument/didOpen,,438 +23260,false,textDocument/didOpen,,440 +26813,false,textDocument/didOpen,,441 +6275,false,textDocument/didOpen,,442 +129,false,textDocument/completion,19, +25988,false,textDocument/didOpen,,443 +26306,false,textDocument/didOpen,,444 +8875,false,textDocument/didOpen,,446 +21332,false,textDocument/didOpen,,448 +9389,false,textDocument/didOpen,,450 +23053,false,textDocument/didOpen,,452 +7607,false,textDocument/didOpen,,453 +106,false,textDocument/completion,21, +8749,false,textDocument/didOpen,,454 +12978,false,textDocument/didOpen,,459 +11558,false,textDocument/didOpen,,468 +9055,false,textDocument/didOpen,,472 +84,false,textDocument/completion,21, +23042,false,textDocument/didOpen,,473 +32551,false,textDocument/didOpen,,474 +26978,false,textDocument/didOpen,,476 +37016,false,textDocument/didOpen,,478 +4920,false,textDocument/didOpen,,480 +1512,false,textDocument/didOpen,,481 +1510,false,textDocument/didOpen,,482 +1147,false,textDocument/didOpen,,483 +1535,false,textDocument/didOpen,,485 +1520,false,textDocument/didOpen,,487 +1115,false,textDocument/didOpen,,489 +1256,false,textDocument/didOpen,,490 +113,false,textDocument/completion,1, +1130,false,textDocument/didOpen,,491 +1137,false,textDocument/didOpen,,498 +629,false,textDocument/didOpen,,499 +1210,false,textDocument/didOpen,,500 +113,false,textDocument/completion,1, +1157,false,textDocument/didOpen,,502 +1198,false,textDocument/didOpen,,503 +1129,false,textDocument/didOpen,,507 +1219,false,textDocument/didOpen,,509 +1313,false,textDocument/didOpen,,510 +17177,false,textDocument/didOpen,,511 +1380,false,textDocument/didOpen,,512 +48,false,textDocument/completion,3, +5568,false,textDocument/didOpen,,511 +2019,false,textDocument/didOpen,,512 +6811,false,textDocument/didOpen,,513 +2662,false,textDocument/didOpen,,517 +60,false,textDocument/completion,3, +82,false,textDocument/completion,3, +703,false,textDocument/didOpen,,518 +1520,false,textDocument/didOpen,,519 +39,false,textDocument/completion,3, +2894,false,textDocument/didOpen,,527 +2892,false,textDocument/didOpen,,528 +2959,false,textDocument/didOpen,,529 +137,false,textDocument/completion,3, +908,false,textDocument/didOpen,,531 +1518,false,textDocument/didOpen,,533 +1496,false,textDocument/didOpen,,534 +1141,false,textDocument/didOpen,,535 +1636,false,textDocument/didOpen,,537 +1151,false,textDocument/didOpen,,539 +1130,false,textDocument/didOpen,,541 +1163,false,textDocument/didOpen,,543 +118,false,textDocument/completion,1, +1156,false,textDocument/didOpen,,547 +2821,false,textDocument/didOpen,,548 +302,false,textDocument/didOpen,,549 +48,false,textDocument/completion,1, +1141,false,textDocument/didOpen,,551 +1217,false,textDocument/didOpen,,554 +2827,false,textDocument/didOpen,,555 +4148,false,textDocument/didOpen,,605 +1584,false,textDocument/didOpen,,596 +1590,false,textDocument/didOpen,,597 +1538,false,textDocument/didOpen,,598 +1149,false,textDocument/didOpen,,604 +325,false,textDocument/didOpen,,605 +25,false,textDocument/completion,1, +1149,false,textDocument/didOpen,,606 +1151,false,textDocument/didOpen,,609 +1165,false,textDocument/didOpen,,611 +1183,false,textDocument/didOpen,,612 +1168,false,textDocument/didOpen,,613 +398,false,textDocument/didOpen,,615 +1161,false,textDocument/didOpen,,617 +1164,false,textDocument/didOpen,,618 +1634,false,textDocument/didOpen,,620 +1240,false,textDocument/didOpen,,621 +41438,false,textDocument/didOpen,,622 +1319,false,textDocument/didOpen,,621 +512,false,textDocument/didOpen,,622 +1242,false,textDocument/didOpen,,623 +1318,false,textDocument/didOpen,,624 +1244,false,textDocument/didOpen,,626 +1283,false,textDocument/didOpen,,630 +875,false,textDocument/didOpen,,631 +1160,false,textDocument/didOpen,,635 +1164,false,textDocument/didOpen,,637 +510,false,textDocument/didOpen,,639 +1225,false,textDocument/didOpen,,640 +1183,false,textDocument/didOpen,,651 +304,false,textDocument/didOpen,,652 +35,false,textDocument/completion,1, +1192,false,textDocument/didOpen,,654 +1218,false,textDocument/didOpen,,655 +1231,false,textDocument/didOpen,,660 +392,false,textDocument/didOpen,,661 +1316,false,textDocument/didOpen,,662 +1216,false,textDocument/didOpen,,725 +1203,false,textDocument/didOpen,,727 +1229,false,textDocument/didOpen,,729 +1228,false,textDocument/didOpen,,731 +1205,false,textDocument/didOpen,,733 +1204,false,textDocument/didOpen,,735 +300,false,textDocument/didOpen,,736 +47,false,textDocument/completion,1, +1283,false,textDocument/didOpen,,735 +1224,false,textDocument/didOpen,,736 +193,false,textDocument/completion,1, +1286,false,textDocument/didOpen,,737 +1281,false,textDocument/didOpen,,738 +1210,false,textDocument/didOpen,,750 +295,false,textDocument/didOpen,,754 +53,false,textDocument/completion,1, +1216,false,textDocument/didOpen,,755 +1099,false,textDocument/didOpen,,757 +1225,false,textDocument/didOpen,,758 +1291,false,textDocument/didOpen,,759 +1287,false,textDocument/didOpen,,761 +1293,false,textDocument/didOpen,,769 +282,false,textDocument/didOpen,,770 +25,false,textDocument/completion,1, +1251,false,textDocument/didOpen,,776 +1230,false,textDocument/didOpen,,782 +1267,false,textDocument/didOpen,,783 +379,false,textDocument/didOpen,,784 +1302,false,textDocument/didOpen,,785 +325,false,textDocument/didOpen,,786 +13694,false,textDocument/didOpen,,787 +16679,false,textDocument/didOpen,,788 +46819,false,textDocument/didOpen,,789 +45600,false,textDocument/didOpen,,791 +45474,false,textDocument/didOpen,,799 +502,false,textDocument/didOpen,,800 +1264,false,textDocument/didOpen,,801 +1233,false,textDocument/didOpen,,803 +1257,false,textDocument/didOpen,,805 +1226,false,textDocument/didOpen,,807 +1220,false,textDocument/didOpen,,809 +1226,false,textDocument/didOpen,,813 +281,false,textDocument/didOpen,,814 +27,false,textDocument/completion,1, +399,false,textDocument/didOpen,,815 +1238,false,textDocument/didOpen,,816 +1217,false,textDocument/didOpen,,819 +1246,false,textDocument/didOpen,,823 +1239,false,textDocument/didOpen,,838 +1252,false,textDocument/didOpen,,839 +1247,false,textDocument/didOpen,,837 +1251,false,textDocument/didOpen,,835 +1284,false,textDocument/didOpen,,833 +1249,false,textDocument/didOpen,,831 +1257,false,textDocument/didOpen,,829 +1276,false,textDocument/didOpen,,827 +1244,false,textDocument/didOpen,,825 +1245,false,textDocument/didOpen,,824 +1256,false,textDocument/didOpen,,828 +1251,false,textDocument/didOpen,,832 +1265,false,textDocument/didOpen,,836 +1285,false,textDocument/didOpen,,838 +682,false,textDocument/didOpen,,1606 +457,false,textDocument/didOpen,,1702 +642,false,textDocument/didOpen,,1698 +400,false,textDocument/didOpen,,1685 +31,false,textDocument/completion,1, +1462,false,textDocument/didOpen,,1686 +113,false,textDocument/completion,1, +730,false,textDocument/didOpen,,1672 +1012,false,textDocument/didOpen,,1676 +1480,false,textDocument/didOpen,,1692 +1006,false,textDocument/didOpen,,1700 +1494,false,textDocument/didOpen,,1699 +1664,false,textDocument/didOpen,,1701 +1479,false,textDocument/didOpen,,1664 +1507,false,textDocument/didOpen,,1665 +499,false,textDocument/didOpen,,1666 +1552,false,textDocument/didOpen,,1665 +1537,false,textDocument/didOpen,,1666 +1569,false,textDocument/didOpen,,1667 +1576,false,textDocument/didOpen,,1668 +334,false,textDocument/didOpen,,1669 +1531,false,textDocument/didOpen,,1670 +1537,false,textDocument/didOpen,,1671 +1587,false,textDocument/didOpen,,1670 +667,false,textDocument/didOpen,,1671 +1439,false,textDocument/didOpen,,1670 +1616,false,textDocument/didOpen,,1671 +357,false,textDocument/didOpen,,1670 +1586,false,textDocument/didOpen,,1671 +393,false,textDocument/didOpen,,1670 +369,false,textDocument/didOpen,,1671 +423,false,textDocument/didOpen,,1670 +812,false,textDocument/didOpen,,1671 +1667,false,textDocument/didOpen,,1672 +1656,false,textDocument/didOpen,,1673 +1676,false,textDocument/didOpen,,1674 +1690,false,textDocument/didOpen,,1675 +1415,false,textDocument/didOpen,,1674 +850,false,textDocument/didOpen,,1673 +1464,false,textDocument/didOpen,,1672 +1725,false,textDocument/didOpen,,1674 +1674,false,textDocument/didOpen,,1675 +1702,false,textDocument/didOpen,,1674 +1697,false,textDocument/didOpen,,1675 +1719,false,textDocument/didOpen,,1677 +1685,false,textDocument/didOpen,,1679 +1808,false,textDocument/didOpen,,1681 +1748,false,textDocument/didOpen,,1683 +1669,false,textDocument/didOpen,,1684 +73,false,textDocument/completion,1, +1795,false,textDocument/didOpen,,1672 +32463,false,textDocument/didOpen,,1662 +19470,false,textDocument/didOpen,,1663 +19057,false,textDocument/didOpen,,1665 +51455,false,textDocument/didOpen,,1667 +49906,false,textDocument/didOpen,,1669 +54895,false,textDocument/didOpen,,1671 +46786,false,textDocument/didOpen,,1673 +20091,false,textDocument/didOpen,,1675 +1765,false,textDocument/didOpen,,1676 +23120,false,textDocument/didOpen,,1665 +45900,false,textDocument/didOpen,,1668 +20531,false,textDocument/didOpen,,1670 +55165,false,textDocument/didOpen,,1672 +49614,false,textDocument/didOpen,,1678 +50107,false,textDocument/didOpen,,1680 +45322,false,textDocument/didOpen,,1681 +49721,false,textDocument/didOpen,,1691 +29615,false,textDocument/didOpen,,1692 +19007,false,textDocument/didOpen,,1718 +66410,false,textDocument/didOpen,,1720 +51794,false,textDocument/didOpen,,1721 +53951,false,textDocument/didOpen,,1729 +51275,false,textDocument/didOpen,,1731 +49765,false,textDocument/didOpen,,1733 +45742,false,textDocument/didOpen,,1734 +20682,false,textDocument/didOpen,,1735 +48748,false,textDocument/didOpen,,1739 +49712,false,textDocument/didOpen,,1743 +54026,false,textDocument/didOpen,,1745 +1455,false,textDocument/didOpen,,1746 +326,false,textDocument/didOpen,,1747 +1404,false,textDocument/didOpen,,1751 +1412,false,textDocument/didOpen,,1755 +1423,false,textDocument/didOpen,,1756 +1403,false,textDocument/didOpen,,1757 +1399,false,textDocument/didOpen,,1761 +1432,false,textDocument/didOpen,,1762 +843,false,textDocument/didOpen,,1761 +233,false,textDocument/didOpen,,1760 +1242,false,textDocument/didOpen,,1761 +100484,false,textDocument/didOpen,,1763 +97666,false,textDocument/didOpen,,1764 +64705,false,textDocument/didOpen,,1763 +202,false,textDocument/didOpen,,1 +87,false,textDocument/didOpen,,2 +11,false,textDocument/completion,1, +76,false,textDocument/didOpen,,3 +108,false,textDocument/didOpen,,6 +837,false,textDocument/didOpen,,7 +877,false,textDocument/didOpen,,8 +858,false,textDocument/didOpen,,9 +850,false,textDocument/didOpen,,8 +895,false,textDocument/didOpen,,1 +131,false,textDocument/didOpen,,3 +32,false,textDocument/completion,1, +844,false,textDocument/didOpen,,5 +283,false,textDocument/didOpen,,6 +11,false,textDocument/completion,1, +880,false,textDocument/didOpen,,7 +847,false,textDocument/didOpen,,9 +909,false,textDocument/didOpen,,13 +873,false,textDocument/didOpen,,14 +907,false,textDocument/didOpen,,13 +820,false,textDocument/didOpen,,14 +33,false,textDocument/completion,1, +78,false,textDocument/didOpen,,19 +37,false,textDocument/completion,1, +61,false,textDocument/didOpen,,20 +24,false,textDocument/completion,1, +75,false,textDocument/didOpen,,18 +74,false,textDocument/didOpen,,17 +857,false,textDocument/didOpen,,15 +248,false,textDocument/didOpen,,16 +9,false,textDocument/completion,1, +869,false,textDocument/didOpen,,18 +874,false,textDocument/didOpen,,20 +875,false,textDocument/didOpen,,21 +876,false,textDocument/didOpen,,22 +865,false,textDocument/didOpen,,23 +250,false,textDocument/didOpen,,27 +32,false,textDocument/completion,1, +262,false,textDocument/didOpen,,28 +263,false,textDocument/didOpen,,29 +9110,false,textDocument/didOpen,,30 +321,false,textDocument/completion,3, +59,false,textDocument/didOpen,,31 +10,false,textDocument/completion,3, +5603,false,textDocument/didOpen,,30 +1684,false,textDocument/didOpen,,31 +3892,false,textDocument/didOpen,,34 +5755,false,textDocument/didOpen,,35 +3942,false,textDocument/didOpen,,34 +2233,false,textDocument/didOpen,,35 +33,false,textDocument/completion,3, +3920,false,textDocument/didOpen,,39 +3910,false,textDocument/didOpen,,41 +1095,false,textDocument/didOpen,,44 +3941,false,textDocument/didOpen,,45 +6907,false,textDocument/didOpen,,46 +3892,false,textDocument/didOpen,,51 +3156,false,textDocument/didOpen,,47 +372,false,textDocument/didOpen,,858 +380,false,textDocument/didOpen,,857 +384,false,textDocument/didOpen,,859 +385,false,textDocument/didOpen,,858 +386,false,textDocument/didOpen,,859 +383,false,textDocument/didOpen,,860 +116,false,textDocument/didOpen,,854 +381,false,textDocument/didOpen,,855 +115,false,textDocument/didOpen,,856 +11,false,textDocument/completion,3, +383,false,textDocument/didOpen,,859 +449,false,textDocument/didOpen,,858 +457,false,textDocument/didOpen,,859 +463,false,textDocument/didOpen,,860 +235,false,textDocument/didOpen,,859 +430,false,textDocument/didOpen,,860 +479,false,textDocument/didOpen,,861 +461,false,textDocument/didOpen,,855 +115,false,textDocument/didOpen,,848 +535,false,textDocument/didOpen,,849 +47,false,textDocument/completion,3, +495,false,textDocument/didOpen,,850 +453,false,textDocument/didOpen,,851 +457,false,textDocument/didOpen,,852 +454,false,textDocument/didOpen,,854 +117,false,textDocument/didOpen,,866 +456,false,textDocument/didOpen,,864 +485,false,textDocument/didOpen,,865 +201,false,textDocument/didOpen,,864 +406,false,textDocument/didOpen,,865 +43,false,textDocument/completion,3, +157,false,textDocument/didOpen,,869 +17,false,textDocument/completion,3, +156,false,textDocument/didOpen,,871 +16,false,textDocument/completion,3, +430,false,textDocument/didOpen,,874 +433,false,textDocument/didOpen,,875 +424,false,textDocument/didOpen,,875 +423,false,textDocument/didOpen,,878 +166,false,textDocument/didOpen,,877 +424,false,textDocument/didOpen,,879 +452,false,textDocument/didOpen,,880 +456,false,textDocument/didOpen,,894 +166,false,textDocument/didOpen,,893 +469,false,textDocument/didOpen,,895 +415,false,textDocument/didOpen,,896 +168,false,textDocument/didOpen,,895 +428,false,textDocument/didOpen,,897 +422,false,textDocument/didOpen,,898 +126,false,textDocument/didOpen,,897 +420,false,textDocument/didOpen,,899 +421,false,textDocument/didOpen,,900 +426,false,textDocument/didOpen,,914 +316,false,textDocument/didOpen,,913 +465,false,textDocument/didOpen,,915 +309,false,textDocument/didOpen,,914 +107,false,textDocument/didOpen,,916 +421,false,textDocument/didOpen,,913 +420,false,textDocument/didOpen,,914 +174,false,textDocument/didOpen,,913 +421,false,textDocument/didOpen,,915 +240,false,textDocument/didOpen,,916 +411,false,textDocument/didOpen,,917 +414,false,textDocument/didOpen,,935 +406,false,textDocument/didOpen,,934 +409,false,textDocument/didOpen,,936 +415,false,textDocument/didOpen,,935 +329,false,textDocument/didOpen,,936 +109,false,textDocument/didOpen,,935 +435,false,textDocument/didOpen,,936 +417,false,textDocument/didOpen,,935 +297,false,textDocument/didOpen,,936 +235,false,textDocument/didOpen,,935 +473,false,textDocument/didOpen,,937 +410,false,textDocument/didOpen,,938 +426,false,textDocument/didOpen,,937 +407,false,textDocument/didOpen,,939 +409,false,textDocument/didOpen,,940 +404,false,textDocument/didOpen,,941 +416,false,textDocument/didOpen,,940 +407,false,textDocument/didOpen,,942 +419,false,textDocument/didOpen,,1008 +147,false,textDocument/didOpen,,1005 +408,false,textDocument/didOpen,,1006 +111,false,textDocument/didOpen,,1005 +399,false,textDocument/didOpen,,1007 +456,false,textDocument/didOpen,,1008 +452,false,textDocument/didOpen,,1004 +132,false,textDocument/didOpen,,1005 +12,false,textDocument/completion,3, +357,false,textDocument/didOpen,,1006 +2224,false,textDocument/didOpen,,1007 +5099,false,textDocument/didOpen,,1006 +6128,false,textDocument/didOpen,,1007 +3551,false,textDocument/didOpen,,1006 +1004,false,textDocument/didOpen,,1007 +34,false,textDocument/completion,3, +8927,false,textDocument/didOpen,,1033 +62896,false,textDocument/didOpen,,1763 +1427,false,textDocument/didOpen,,1033 +37,false,textDocument/didOpen,,1028 +119,false,textDocument/didOpen,,1029 +123,false,textDocument/didOpen,,1030 +91,false,textDocument/didOpen,,1031 +121,false,textDocument/didOpen,,1032 +37,false,textDocument/didOpen,,1034 +122,false,textDocument/didOpen,,1038 +37,false,textDocument/didOpen,,1039 +36,false,textDocument/didOpen,,1041 +120,false,textDocument/didOpen,,1044 +51,false,textDocument/didOpen,,1045 +132,false,textDocument/didOpen,,1047 +123,false,textDocument/didOpen,,1054 +2981,false,textDocument/didOpen,,1055 +3002,false,textDocument/didOpen,,1056 +3056,false,textDocument/didOpen,,1058 +2981,false,textDocument/didOpen,,1059 +1360,false,textDocument/didOpen,,1058 +2921,false,textDocument/didOpen,,1059 +22958,false,textDocument/didOpen,,1060 +17466,false,textDocument/didOpen,,1059 +19866,false,textDocument/didOpen,,1058 +28493,false,textDocument/didOpen,,1060 +77807,false,textDocument/didOpen,,1763 +74,false,textDocument/didOpen,,1761 +135,false,textDocument/didOpen,,1748 +29831,false,textDocument/didOpen,,1746 +29659,false,textDocument/didOpen,,1658 +66872,false,textDocument/didOpen,,1060 +67,false,textDocument/didOpen,,1058 +1052,false,textDocument/didOpen,,1056 +310,false,textDocument/didOpen,,984 +994,false,textDocument/didOpen,,983 +989,false,textDocument/didOpen,,984 +16624,false,textDocument/didOpen,,973 +291345,false,textDocument/didOpen,,8242 +202332,false,textDocument/didOpen,,8243 +202961,false,textDocument/didOpen,,8242 +259329,false,textDocument/didOpen,,8243 +288274,false,textDocument/didOpen,,8245 +237,false,textDocument/completion,275, +332448,false,textDocument/didOpen,,8248 +105,false,textDocument/completion,275, +391776,false,textDocument/didOpen,,8251 +2989,false,textDocument/didOpen,,8254 +439007,false,textDocument/didOpen,,8253 +465609,false,textDocument/didOpen,,8247 +534089,false,textDocument/didOpen,,8246 +576734,false,textDocument/didOpen,,8247 +665180,false,textDocument/didOpen,,8248 +99,false,textDocument/completion,275, +653094,false,textDocument/didOpen,,8250 +705395,false,textDocument/didOpen,,8251 +766788,false,textDocument/didOpen,,8255 +3684,false,textDocument/didOpen,,8258 +816509,false,textDocument/didOpen,,8259 +80,false,textDocument/completion,277, +744867,false,textDocument/didOpen,,8260 +794376,false,textDocument/didOpen,,8263 +2283,false,textDocument/didOpen,,8266 +3498,false,textDocument/didOpen,,8267 +2224,false,textDocument/didOpen,,8268 +2599,false,textDocument/didOpen,,8269 +2256,false,textDocument/didOpen,,8271 +2311,false,textDocument/didOpen,,8274 +1358,false,textDocument/didOpen,,8275 +3087,false,textDocument/didOpen,,8277 +98,false,textDocument/completion,3, +71,false,textDocument/completion,3, +1930,false,textDocument/didOpen,,8283 +6657,false,textDocument/didOpen,,8284 +3445,false,textDocument/didOpen,,8285 +57,false,textDocument/completion,3, +901182,false,textDocument/didOpen,,8291 +14,false,textDocument/completion,279, +885706,false,textDocument/didOpen,,8292 +997156,false,textDocument/didOpen,,8293 +84,false,textDocument/completion,277, +999861,false,textDocument/didOpen,,8296 +1002889,false,textDocument/didOpen,,8297 +109,false,textDocument/completion,277, +1054714,false,textDocument/didOpen,,8300 +1031861,false,textDocument/didOpen,,8304 +1042167,false,textDocument/didOpen,,8308 +92,false,textDocument/completion,279, +1162821,false,textDocument/didOpen,,8309 +6407,false,textDocument/didOpen,,8315 +6380,false,textDocument/didOpen,,8318 +7760,false,textDocument/didOpen,,8321 +5523,false,textDocument/didOpen,,8323 +5125,false,textDocument/didOpen,,8324 +6653,false,textDocument/didOpen,,8336 +4420,false,textDocument/didOpen,,8336 +1106872,false,textDocument/didOpen,,8337 +1128837,false,textDocument/didOpen,,8339 +84,false,textDocument/completion,279, +1209598,false,textDocument/didOpen,,8340 +1272275,false,textDocument/didOpen,,8335 +1366005,false,textDocument/didOpen,,8329 +335995,false,textDocument/didOpen,,8329 +202051,false,textDocument/didOpen,,8329 +160634,false,textDocument/didOpen,,1629 +56878,false,textDocument/didOpen,,1622 +82311,false,textDocument/didOpen,,1624 +164,false,textDocument/completion,251, +104212,false,textDocument/didOpen,,1625 +107653,false,textDocument/didOpen,,1626 +70514,false,textDocument/didOpen,,1627 +85412,false,textDocument/didOpen,,1622 +113415,false,textDocument/didOpen,,1623 +190,false,textDocument/completion,251, +127227,false,textDocument/didOpen,,1624 +182480,false,textDocument/didOpen,,1625 +141641,false,textDocument/didOpen,,1626 +122262,false,textDocument/didOpen,,1658 +503537,false,textDocument/didOpen,,8329 +959,false,textDocument/didOpen,,8328 +514273,false,textDocument/didOpen,,8329 +355,false,textDocument/didOpen,,8330 +512638,false,textDocument/didOpen,,8329 +874,false,textDocument/didOpen,,8329 +605726,false,textDocument/didOpen,,8329 +309685,false,textDocument/didOpen,,1626 +103402,false,textDocument/didOpen,,1658 +619530,false,textDocument/didOpen,,8329 +216417,false,textDocument/didOpen,,1626 +91213,false,textDocument/didOpen,,1658 +664498,false,textDocument/didOpen,,8329 +272227,false,textDocument/didOpen,,1626 +106285,false,textDocument/didOpen,,1658 +707038,false,textDocument/didOpen,,8329 +232926,false,textDocument/didOpen,,1626 +47370,false,textDocument/didOpen,,1658 +267349,false,textDocument/didOpen,,8464 +66326,false,textDocument/didOpen,,1626 +27188,false,textDocument/didOpen,,1658 +207783,false,textDocument/didOpen,,8464 +73371,false,textDocument/didOpen,,1626 +38524,false,textDocument/didOpen,,1658 +335375,false,textDocument/didOpen,,8464 +122028,false,textDocument/didOpen,,1626 +53548,false,textDocument/didOpen,,1658 +411953,false,textDocument/didOpen,,8464 +80336,false,textDocument/didOpen,,1626 +63842,false,textDocument/didOpen,,1658 +97042,false,textDocument/didOpen,,1626 +34834,false,textDocument/didOpen,,1658 +65338,false,textDocument/didOpen,,1626 +56084,false,textDocument/didOpen,,1658 +73323,false,textDocument/didOpen,,1626 +26521,false,textDocument/didOpen,,1658 +164773,false,textDocument/didOpen,,5676 +99338,false,textDocument/didOpen,,5667 +64968,false,textDocument/didOpen,,983 +100811,false,textDocument/didOpen,,984 +98850,false,textDocument/didOpen,,985 +1368,false,textDocument/didOpen,,1013 +107676,false,textDocument/didOpen,,984 +95918,false,textDocument/didOpen,,985 +1460,false,textDocument/didOpen,,1014 +2036,false,textDocument/didOpen,,1210 +1907,false,textDocument/didOpen,,1239 +1984,false,textDocument/didOpen,,1365 +2034,false,textDocument/didOpen,,1367 +1955,false,textDocument/didOpen,,1368 +155,false,textDocument/completion,1, +1984,false,textDocument/didOpen,,1369 +2003,false,textDocument/didOpen,,1370 +153,false,textDocument/completion,1, +1919,false,textDocument/didOpen,,1376 +1922,false,textDocument/didOpen,,1379 +1970,false,textDocument/didOpen,,1381 +108,false,textDocument/completion,1, +1948,false,textDocument/didOpen,,1382 +1995,false,textDocument/didOpen,,1390 +128,false,textDocument/completion,1, +1954,false,textDocument/didOpen,,1395 +1986,false,textDocument/didOpen,,1396 +2332,false,textDocument/didOpen,,1395 +1943,false,textDocument/didOpen,,1396 +111,false,textDocument/completion,1, +1946,false,textDocument/didOpen,,1397 +2322,false,textDocument/didOpen,,1398 +2357,false,textDocument/didOpen,,1399 +157,false,textDocument/completion,1, +2289,false,textDocument/didOpen,,1400 +2310,false,textDocument/didOpen,,1401 +2334,false,textDocument/didOpen,,1443 +1960,false,textDocument/didOpen,,1444 +1910,false,textDocument/didOpen,,1445 +852,false,textDocument/didOpen,,1477 +832,false,textDocument/didOpen,,1479 +831,false,textDocument/didOpen,,1477 +2318,false,textDocument/didOpen,,1476 +125866,false,textDocument/didOpen,,1096 +109940,false,textDocument/didOpen,,1097 +111259,false,textDocument/didOpen,,1098 +134239,false,textDocument/didOpen,,1099 +109464,false,textDocument/didOpen,,1100 +104798,false,textDocument/didOpen,,1103 +152511,false,textDocument/didOpen,,1104 +148407,false,textDocument/didOpen,,1106 +177617,false,textDocument/didOpen,,1134 +122936,false,textDocument/didOpen,,1135 +149963,false,textDocument/didOpen,,1136 +64619,false,textDocument/didOpen,,1137 +117885,false,textDocument/didOpen,,1138 +16691,false,textDocument/didOpen,,1143 +176349,false,textDocument/didOpen,,1144 +120985,false,textDocument/didOpen,,1145 +208966,false,textDocument/didOpen,,1144 +145725,false,textDocument/didOpen,,1143 +134040,false,textDocument/didOpen,,1144 +120,false,textDocument/completion,107, +153248,false,textDocument/didOpen,,1145 +428,false,textDocument/completion,107, +46394,false,textDocument/didOpen,,1144 +189126,false,textDocument/didOpen,,1143 +50593,false,textDocument/didOpen,,1142 +161255,false,textDocument/didOpen,,1143 +156,false,textDocument/completion,107, +188826,false,textDocument/didOpen,,1144 +81793,false,textDocument/didOpen,,1145 +104,false,textDocument/completion,107, +190272,false,textDocument/didOpen,,1147 +223841,false,textDocument/didOpen,,1148 +189995,false,textDocument/didOpen,,1149 +138,false,textDocument/completion,107, +194942,false,textDocument/didOpen,,1150 +110,false,textDocument/completion,107, +167885,false,textDocument/didOpen,,1151 +339759,false,textDocument/didOpen,,1152 +157884,false,textDocument/didOpen,,1154 +468,false,textDocument/completion,107, +134152,false,textDocument/didOpen,,1626 +443,false,textDocument/didOpen,,1629 +1652,false,textDocument/didOpen,,1630 +389,false,textDocument/didOpen,,1631 +44,false,textDocument/completion,1, +396,false,textDocument/didOpen,,1632 +26,false,textDocument/completion,1, +1553,false,textDocument/didOpen,,1633 +113,false,textDocument/completion,1, +1640,false,textDocument/didOpen,,1630 +516,false,textDocument/didOpen,,1631 +26,false,textDocument/completion,1, +1609,false,textDocument/didOpen,,1632 +1898,false,textDocument/didOpen,,1633 +1250,false,textDocument/didOpen,,1635 +1641,false,textDocument/didOpen,,1637 +423,false,textDocument/didOpen,,1638 +40,false,textDocument/completion,1, +637,false,textDocument/didOpen,,1640 +71,false,textDocument/completion,1, +2313,false,textDocument/didOpen,,1641 +1646,false,textDocument/didOpen,,1640 +458,false,textDocument/didOpen,,1641 +43,false,textDocument/completion,1, +1660,false,textDocument/didOpen,,1642 +1646,false,textDocument/didOpen,,1641 +822,false,textDocument/didOpen,,1642 +59,false,textDocument/completion,1, +2352,false,textDocument/didOpen,,1643 +462,false,textDocument/didOpen,,1644 +1624,false,textDocument/didOpen,,1645 +1671,false,textDocument/didOpen,,1646 +495,false,textDocument/didOpen,,1647 +407,false,textDocument/didOpen,,1648 +35,false,textDocument/completion,1, +1688,false,textDocument/didOpen,,1650 +1736,false,textDocument/didOpen,,1651 +1614,false,textDocument/didOpen,,1652 +1699,false,textDocument/didOpen,,1652 +540,false,textDocument/didOpen,,1653 +439,false,textDocument/didOpen,,1654 +400,false,textDocument/didOpen,,1655 +42,false,textDocument/completion,1, +1734,false,textDocument/didOpen,,1656 +1713,false,textDocument/didOpen,,1657 +536,false,textDocument/didOpen,,1658 +549,false,textDocument/didOpen,,1659 +1654,false,textDocument/didOpen,,1660 +386,false,textDocument/didOpen,,1661 +423,false,textDocument/didOpen,,1662 +25,false,textDocument/completion,1, +2391,false,textDocument/didOpen,,1663 +1745,false,textDocument/didOpen,,1664 +1747,false,textDocument/didOpen,,1665 +433,false,textDocument/didOpen,,1666 +437,false,textDocument/didOpen,,1667 +453,false,textDocument/didOpen,,1668 +26,false,textDocument/completion,1, +386,false,textDocument/didOpen,,1670 +25,false,textDocument/completion,1, +1726,false,textDocument/didOpen,,1671 +127,false,textDocument/completion,1, +575,false,textDocument/didOpen,,1673 +38,false,textDocument/completion,1, +537,false,textDocument/didOpen,,1674 +35,false,textDocument/completion,1, +1642,false,textDocument/didOpen,,1676 +451,false,textDocument/didOpen,,1677 +1612,false,textDocument/didOpen,,1678 +111,false,textDocument/completion,1, +416,false,textDocument/didOpen,,1679 +1747,false,textDocument/didOpen,,1680 +1902,false,textDocument/didOpen,,1681 +1276,false,textDocument/didOpen,,1682 +1676,false,textDocument/didOpen,,1683 +413,false,textDocument/didOpen,,1684 +426,false,textDocument/didOpen,,1685 +30,false,textDocument/completion,1, +401,false,textDocument/didOpen,,1686 +1763,false,textDocument/didOpen,,1687 +406,false,textDocument/didOpen,,1688 +1685,false,textDocument/didOpen,,1688 +1709,false,textDocument/didOpen,,1689 +651,false,textDocument/didOpen,,1691 +39,false,textDocument/completion,1, +1767,false,textDocument/didOpen,,1692 +1733,false,textDocument/didOpen,,1693 +1765,false,textDocument/didOpen,,1694 +2073,false,textDocument/didOpen,,1695 +1311,false,textDocument/didOpen,,1696 +77666,false,textDocument/didOpen,,1696 +91045,false,textDocument/didOpen,,1697 +2053,false,textDocument/didOpen,,1698 +1690,false,textDocument/didOpen,,1699 +443,false,textDocument/didOpen,,1700 +75,false,textDocument/completion,1, +425,false,textDocument/didOpen,,1704 +27,false,textDocument/completion,1, +1668,false,textDocument/didOpen,,1705 +2123,false,textDocument/didOpen,,1706 +1683,false,textDocument/didOpen,,1707 +122,false,textDocument/completion,1, +1694,false,textDocument/didOpen,,1708 +1740,false,textDocument/didOpen,,1711 +1750,false,textDocument/didOpen,,1712 +490,false,textDocument/didOpen,,1713 +416,false,textDocument/didOpen,,1714 +26,false,textDocument/completion,1, +1676,false,textDocument/didOpen,,1715 +1724,false,textDocument/didOpen,,1716 +1686,false,textDocument/didOpen,,1717 +1869,false,textDocument/didOpen,,1718 +1655,false,textDocument/didOpen,,1719 +1789,false,textDocument/didOpen,,1720 +1703,false,textDocument/didOpen,,1721 +1713,false,textDocument/didOpen,,1722 +521,false,textDocument/didOpen,,1723 +57,false,textDocument/completion,1, +1829,false,textDocument/didOpen,,1724 +2770,false,textDocument/didOpen,,1725 +96835,false,textDocument/didOpen,,1726 +97344,false,textDocument/didOpen,,1727 +80612,false,textDocument/didOpen,,1726 +2251,false,textDocument/didOpen,,1727 +2795,false,textDocument/didOpen,,1728 +112029,false,textDocument/didOpen,,1726 +143522,false,textDocument/didOpen,,1727 +135212,false,textDocument/didOpen,,1728 +167776,false,textDocument/didOpen,,1729 +156307,false,textDocument/didOpen,,1730 +37,false,textDocument/completion,237, +151491,false,textDocument/didOpen,,1731 +167305,false,textDocument/didOpen,,1732 +178733,false,textDocument/didOpen,,1733 +242664,false,textDocument/didOpen,,1734 +479,false,textDocument/didOpen,,1735 +438,false,textDocument/didOpen,,1736 +291699,false,textDocument/didOpen,,1737 +1945,false,textDocument/didOpen,,1736 +1724,false,textDocument/didOpen,,1735 +307447,false,textDocument/didOpen,,1734 +246216,false,textDocument/didOpen,,1732 +268598,false,textDocument/didOpen,,1733 +55,false,textDocument/completion,251, +315128,false,textDocument/didOpen,,1732 +280002,false,textDocument/didOpen,,1733 +36,false,textDocument/completion,251, +301810,false,textDocument/didOpen,,1732 +302530,false,textDocument/didOpen,,1732 +49,false,textDocument/completion,251, +364352,false,textDocument/didOpen,,1733 +303980,false,textDocument/didOpen,,8576 +14,false,textDocument/definition,305, +301725,false,textDocument/didOpen,,8576 +236477,false,textDocument/didOpen,,8575 +217796,false,textDocument/didOpen,,8574 +277597,false,textDocument/didOpen,,8575 +315540,false,textDocument/didOpen,,8574 +374889,false,textDocument/didOpen,,8573 +428053,false,textDocument/didOpen,,8574 +515850,false,textDocument/didOpen,,8573 +541127,false,textDocument/didOpen,,8572 +585639,false,textDocument/didOpen,,8573 +689768,false,textDocument/didOpen,,8572 +722702,false,textDocument/didOpen,,8571 +738536,false,textDocument/didOpen,,8570 +751487,false,textDocument/didOpen,,8571 +787232,false,textDocument/didOpen,,8572 +861860,false,textDocument/didOpen,,8571 +851818,false,textDocument/didOpen,,8570 +937941,false,textDocument/didOpen,,8571 +931916,false,textDocument/didOpen,,8570 +1010408,false,textDocument/didOpen,,8569 +1042037,false,textDocument/didOpen,,8570 +1030538,false,textDocument/didOpen,,8569 +1136335,false,textDocument/didOpen,,8568 +1111348,false,textDocument/didOpen,,8569 +1201278,false,textDocument/didOpen,,8568 +1278810,false,textDocument/didOpen,,8567 +45478,false,textDocument/didOpen,,979 +17031,false,textDocument/didOpen,,980 +18605,false,textDocument/didOpen,,979 +17588,false,textDocument/didOpen,,978 +25455,false,textDocument/didOpen,,77 +63544,false,textDocument/didOpen,,1658 +66323,false,textDocument/didOpen,,978 +300,false,textDocument/didOpen,,977 +40839,false,textDocument/didOpen,,979 +302566,false,textDocument/didOpen,,8567 +235903,false,textDocument/didOpen,,8568 +231227,false,textDocument/didOpen,,8569 +231025,false,textDocument/didOpen,,8569 +269546,false,textDocument/didOpen,,8560 +57120,false,textDocument/didOpen,,979 +44684,false,textDocument/didOpen,,980 +75,false,textDocument/completion,37, +235839,false,textDocument/didOpen,,8560 +231862,false,textDocument/didOpen,,8558 +179502,false,textDocument/didOpen,,1733 +230913,false,textDocument/didOpen,,8558 +246972,false,textDocument/didOpen,,8555 +81,false,textDocument/hover,306, +55,false,textDocument/hover,306, +74,false,textDocument/hover,306, +254348,false,textDocument/didOpen,,8544 +288777,false,textDocument/didOpen,,8542 +403656,false,textDocument/didOpen,,8544 +409133,false,textDocument/didOpen,,8555 +460803,false,textDocument/didOpen,,8558 +27,false,textDocument/definition,306, +14,false,textDocument/definition,306, +36,false,textDocument/definition,306, +850,false,textDocument/didOpen,,1720 +1674,false,textDocument/didOpen,,1721 +495,false,textDocument/didOpen,,1722 +54,false,textDocument/completion,1, +1627,false,textDocument/didOpen,,1723 +362,false,textDocument/didOpen,,1724 +779,false,textDocument/didOpen,,1726 +1716,false,textDocument/didOpen,,1727 +695,false,textDocument/didOpen,,1728 +73,false,textDocument/completion,1, +1797,false,textDocument/didOpen,,1729 +404,false,textDocument/didOpen,,1730 +1810,false,textDocument/didOpen,,1731 +1729,false,textDocument/didOpen,,1732 +1831,false,textDocument/didOpen,,1733 +449,false,textDocument/didOpen,,1735 +49,false,textDocument/completion,1, +1824,false,textDocument/didOpen,,1737 +1853,false,textDocument/didOpen,,1738 +1650,false,textDocument/didOpen,,1739 +487,false,textDocument/didOpen,,1740 +646,false,textDocument/didOpen,,1741 +38,false,textDocument/completion,1, +1916,false,textDocument/didOpen,,1744 +1652,false,textDocument/didOpen,,1746 +373,false,textDocument/didOpen,,1747 +1722,false,textDocument/didOpen,,1749 +1797,false,textDocument/didOpen,,1750 +475,false,textDocument/didOpen,,1751 +25,false,textDocument/completion,1, +1857,false,textDocument/didOpen,,1752 +1839,false,textDocument/didOpen,,1753 +1907,false,textDocument/didOpen,,1754 +409,false,textDocument/didOpen,,1755 +1744,false,textDocument/didOpen,,1756 +1866,false,textDocument/didOpen,,1758 +35,false,textDocument/completion,1, +1818,false,textDocument/didOpen,,1759 +778,false,textDocument/didOpen,,1760 +258263,false,textDocument/didOpen,,1761 +267657,false,textDocument/didOpen,,1760 +301028,false,textDocument/didOpen,,1761 +310704,false,textDocument/didOpen,,1760 +276779,false,textDocument/didOpen,,1759 +704,false,textDocument/didOpen,,1758 +295,false,textDocument/didOpen,,1757 +1569,false,textDocument/didOpen,,1756 +348722,false,textDocument/didOpen,,1755 +332413,false,textDocument/didOpen,,1754 +2291,false,textDocument/didOpen,,1740 +2068,false,textDocument/didOpen,,1739 +1302,false,textDocument/didOpen,,1738 +2501,false,textDocument/didOpen,,1739 +1524,false,textDocument/didOpen,,1738 +762,false,textDocument/didOpen,,1739 +2336,false,textDocument/didOpen,,1740 +390195,false,textDocument/didOpen,,1754 +2181,false,textDocument/didOpen,,1741 +3075,false,textDocument/didOpen,,1740 +1418,false,textDocument/didOpen,,1741 +2096,false,textDocument/didOpen,,1742 +2074,false,textDocument/didOpen,,1743 +2252,false,textDocument/didOpen,,1745 +126,false,textDocument/completion,1, +3044,false,textDocument/didOpen,,1746 +2376,false,textDocument/didOpen,,1748 +1845,false,textDocument/didOpen,,1748 +609,false,textDocument/didOpen,,1751 +30,false,textDocument/completion,1, +660,false,textDocument/didOpen,,1752 +1782,false,textDocument/didOpen,,1751 +380,false,textDocument/didOpen,,1752 +36,false,textDocument/completion,1, +406392,false,textDocument/didOpen,,1753 +393484,false,textDocument/didOpen,,1754 +290448,false,textDocument/didOpen,,8558 +309718,false,textDocument/didOpen,,8558 +63153,false,textDocument/didOpen,,1658 +26189,false,textDocument/didOpen,,1659 +30274,false,textDocument/didOpen,,1660 +116,false,textDocument/completion,81, +30332,false,textDocument/didOpen,,1659 +125,false,textDocument/didOpen,,1658 +25729,false,textDocument/didOpen,,1657 +43790,false,textDocument/didOpen,,980 +380,false,textDocument/didOpen,,979 +364,false,textDocument/didOpen,,980 +20237,false,textDocument/didOpen,,979 +163244,false,textDocument/didOpen,,5676 +308737,false,textDocument/didOpen,,8558 +121922,false,textDocument/didOpen,,8557 +123721,false,textDocument/didOpen,,8558 +210344,false,textDocument/didOpen,,8557 +145778,false,textDocument/didOpen,,8556 +128036,false,textDocument/didOpen,,8557 +117110,false,textDocument/didOpen,,8556 +288100,false,textDocument/didOpen,,8555 +351613,false,textDocument/didOpen,,8556 +1616,false,textDocument/completion,306, +231851,false,textDocument/didOpen,,8555 +267965,false,textDocument/didOpen,,8556 +445616,false,textDocument/didOpen,,8555 +3077,false,textDocument/didOpen,,8554 +2799,false,textDocument/didOpen,,8555 +553339,false,textDocument/didOpen,,8554 +593988,false,textDocument/didOpen,,8555 +617253,false,textDocument/didOpen,,8554 +305109,false,textDocument/didOpen,,8554 +222103,false,textDocument/didOpen,,8553 +258086,false,textDocument/didOpen,,8554 +163537,false,textDocument/didOpen,,1754 +228948,false,textDocument/didOpen,,8554 +120137,false,textDocument/didOpen,,8544 +238895,false,textDocument/didOpen,,8545 +168,false,textDocument/completion,306, +268104,false,textDocument/didOpen,,8546 +357441,false,textDocument/didOpen,,8549 +400315,false,textDocument/didOpen,,8550 +463050,false,textDocument/didOpen,,8549 +515694,false,textDocument/didOpen,,8550 +455,false,textDocument/completion,306, +521094,false,textDocument/didOpen,,8553 +305549,false,textDocument/didOpen,,1572 +64895,false,textDocument/didOpen,,1657 +277,false,textDocument/didOpen,,1659 +54,false,textDocument/completion,79, +184,false,textDocument/didOpen,,1661 +243,false,textDocument/completion,79, +1015,false,textDocument/didOpen,,1663 +759,false,textDocument/completion,79, +52030,false,textDocument/didOpen,,1664 +180,false,textDocument/completion,81, +331,false,textDocument/didOpen,,1665 +58952,false,textDocument/didOpen,,1666 +177,false,textDocument/completion,82, +25270,false,textDocument/didOpen,,1673 +170,false,textDocument/completion,82, +58277,false,textDocument/didOpen,,1674 +178,false,textDocument/completion,82, +67680,false,textDocument/didOpen,,1675 +301,false,textDocument/didOpen,,1676 +56586,false,textDocument/didOpen,,1677 +215,false,textDocument/completion,84, +31883,false,textDocument/didOpen,,1678 +170,false,textDocument/completion,84, +70190,false,textDocument/didOpen,,1679 +168,false,textDocument/completion,84, +63637,false,textDocument/didOpen,,1680 +173,false,textDocument/completion,84, +78639,false,textDocument/didOpen,,1681 +91929,false,textDocument/didOpen,,1681 +29607,false,textDocument/didOpen,,1681 +49049,false,textDocument/didOpen,,1681 +156540,false,textDocument/didOpen,,5676 +236904,false,textDocument/didOpen,,8576 +357,false,textDocument/didOpen,,8577 +198,false,textDocument/completion,306, +125792,false,textDocument/didOpen,,8589 +99476,false,textDocument/didOpen,,8590 +113719,false,textDocument/didOpen,,8592 +109429,false,textDocument/didOpen,,8596 +152256,false,textDocument/didOpen,,8604 +229443,false,textDocument/didOpen,,8605 +211159,false,textDocument/didOpen,,8606 +225902,false,textDocument/didOpen,,8607 +335550,false,textDocument/didOpen,,8608 +279000,false,textDocument/didOpen,,8609 +442952,false,textDocument/didOpen,,8608 +315549,false,textDocument/didOpen,,8609 +450950,false,textDocument/didOpen,,8610 +220,false,textDocument/didOpen,,100 +838,false,textDocument/didOpen,,101 +3094,false,textDocument/didOpen,,100 +129493,false,textDocument/didOpen,,4846 +60031,false,textDocument/didOpen,,4849 +61253,false,textDocument/didOpen,,4848 +89042,false,textDocument/didOpen,,4847 +92352,false,textDocument/didOpen,,4844 +107,false,textDocument/completion,127, +191,false,textDocument/didOpen,,1 +904,false,textDocument/didOpen,,2 +921,false,textDocument/didOpen,,1 +162,false,textDocument/didOpen,,3 +35,false,textDocument/completion,1, +108,false,textDocument/didOpen,,4 +109,false,textDocument/didOpen,,3 +927,false,textDocument/didOpen,,1 +33,false,textDocument/didOpen,,2 +13,false,textDocument/completion,1, +122,false,textDocument/didOpen,,3 +882,false,textDocument/didOpen,,4 +894,false,textDocument/didOpen,,5 +277,false,textDocument/didOpen,,6 +8,false,textDocument/completion,1, +464,false,textDocument/didOpen,,9 +17,false,textDocument/completion,1, +915,false,textDocument/didOpen,,11 +33,false,textDocument/completion,1, +888,false,textDocument/didOpen,,12 +32,false,textDocument/completion,1, +891,false,textDocument/didOpen,,13 +31,false,textDocument/completion,1, +257,false,textDocument/didOpen,,14 +8,false,textDocument/completion,1, +374,false,textDocument/didOpen,,16 +60,false,textDocument/completion,1, +1204,false,textDocument/didOpen,,17 +46,false,textDocument/completion,1, +255,false,textDocument/didOpen,,18 +13,false,textDocument/completion,1, +214,false,textDocument/didOpen,,19 +10,false,textDocument/completion,1, +880,false,textDocument/didOpen,,18 +839,false,textDocument/didOpen,,18 +43,false,textDocument/completion,1, +888,false,textDocument/didOpen,,20 +34,false,textDocument/completion,1, +906,false,textDocument/didOpen,,21 +883,false,textDocument/didOpen,,22 +912,false,textDocument/didOpen,,21 +941,false,textDocument/didOpen,,22 +954,false,textDocument/didOpen,,23 +971,false,textDocument/didOpen,,22 +1000,false,textDocument/didOpen,,24 +990,false,textDocument/didOpen,,25 +452,false,textDocument/didOpen,,26 +12,false,textDocument/completion,1, +898,false,textDocument/didOpen,,29 +961,false,textDocument/didOpen,,30 +227,false,textDocument/didOpen,,32 +9,false,textDocument/completion,1, +921,false,textDocument/didOpen,,35 +31,false,textDocument/completion,1, +933,false,textDocument/didOpen,,36 +32,false,textDocument/completion,1, +919,false,textDocument/didOpen,,43 +999,false,textDocument/didOpen,,45 +283,false,textDocument/didOpen,,46 +8,false,textDocument/completion,1, +106,false,textDocument/didOpen,,48 +102,false,textDocument/didOpen,,49 +104,false,textDocument/didOpen,,50 +33,false,textDocument/didOpen,,51 +30,false,textDocument/completion,1, +104,false,textDocument/didOpen,,52 +104,false,textDocument/didOpen,,53 +33,false,textDocument/didOpen,,54 +23,false,textDocument/completion,1, +120,false,textDocument/didOpen,,57 +116,false,textDocument/didOpen,,58 +34,false,textDocument/completion,1, +103,false,textDocument/didOpen,,59 +120,false,textDocument/didOpen,,60 +106,false,textDocument/didOpen,,61 +46,false,textDocument/completion,1, +34,false,textDocument/didOpen,,62 +8,false,textDocument/completion,1, +60,false,textDocument/didOpen,,63 +68,false,textDocument/completion,1, +104,false,textDocument/didOpen,,64 +109,false,textDocument/didOpen,,65 +51,false,textDocument/completion,1, +105,false,textDocument/didOpen,,58 +103,false,textDocument/didOpen,,59 +32,false,textDocument/completion,1, +105,false,textDocument/didOpen,,58 +46,false,textDocument/didOpen,,61 +20,false,textDocument/completion,1, +108,false,textDocument/didOpen,,63 +40,false,textDocument/completion,1, +132,false,textDocument/didOpen,,64 +43,false,textDocument/completion,1, +106,false,textDocument/didOpen,,63 +120,false,textDocument/didOpen,,59 +106,false,textDocument/didOpen,,58 +132,false,textDocument/didOpen,,57 +105,false,textDocument/didOpen,,56 +106,false,textDocument/didOpen,,55 +106,false,textDocument/didOpen,,54 +106,false,textDocument/didOpen,,53 +34,false,textDocument/didOpen,,54 +12,false,textDocument/completion,1, +105,false,textDocument/didOpen,,57 +105,false,textDocument/didOpen,,58 +104,false,textDocument/didOpen,,59 +105,false,textDocument/didOpen,,60 +109,false,textDocument/didOpen,,61 +122,false,textDocument/didOpen,,62 +45,false,textDocument/didOpen,,63 +55,false,textDocument/completion,1, +102,false,textDocument/didOpen,,65 +127,false,textDocument/didOpen,,66 +114,false,textDocument/didOpen,,67 +122,false,textDocument/didOpen,,68 +127,false,textDocument/didOpen,,69 +126,false,textDocument/didOpen,,68 +11958,false,textDocument/didOpen,,66 +11125,false,textDocument/didOpen,,67 +7948,false,textDocument/didOpen,,68 +14,false,textDocument/completion,4, +32453,false,textDocument/didOpen,,70 +32876,false,textDocument/didOpen,,71 +11274,false,textDocument/didOpen,,70 +11260,false,textDocument/didOpen,,71 +32084,false,textDocument/didOpen,,72 +205,false,textDocument/didOpen,,74 +170,false,textDocument/didOpen,,76 +217,false,textDocument/didOpen,,77 +146,false,textDocument/didOpen,,78 +191,false,textDocument/didOpen,,79 +157,false,textDocument/completion,4, +182,false,textDocument/didOpen,,80 +55,false,textDocument/didOpen,,81 +181,false,textDocument/didOpen,,87 +177,false,textDocument/didOpen,,90 +216,false,textDocument/didOpen,,91 +181,false,textDocument/didOpen,,92 +53,false,textDocument/didOpen,,94 +8,false,textDocument/completion,4, +199,false,textDocument/didOpen,,95 +179,false,textDocument/didOpen,,96 +186,false,textDocument/didOpen,,97 +32,false,textDocument/completion,4, +184,false,textDocument/didOpen,,98 +182,false,textDocument/didOpen,,101 +182,false,textDocument/didOpen,,102 +182,false,textDocument/didOpen,,103 +11231,false,textDocument/didOpen,,93 +35224,false,textDocument/didOpen,,94 +114,false,textDocument/completion,9, +39641,false,textDocument/didOpen,,95 +39986,false,textDocument/didOpen,,96 +40826,false,textDocument/didOpen,,97 +40042,false,textDocument/didOpen,,98 +17616,false,textDocument/didOpen,,97 +40789,false,textDocument/didOpen,,96 +40124,false,textDocument/didOpen,,95 +40757,false,textDocument/didOpen,,94 +22946,false,textDocument/didOpen,,93 +39490,false,textDocument/didOpen,,92 +14589,false,textDocument/didOpen,,91 +292,false,textDocument/didOpen,,90 +14538,false,textDocument/didOpen,,91 +40056,false,textDocument/didOpen,,92 +38603,false,textDocument/didOpen,,93 +11265,false,textDocument/didOpen,,95 +38,false,textDocument/completion,7, +20736,false,textDocument/didOpen,,98 +13923,false,textDocument/didOpen,,99 +12644,false,textDocument/didOpen,,100 +37915,false,textDocument/didOpen,,101 +28,false,textDocument/completion,7, +14087,false,textDocument/didOpen,,106 +32811,false,textDocument/didOpen,,107 +26,false,textDocument/completion,7, +18021,false,textDocument/didOpen,,108 +12517,false,textDocument/didOpen,,109 +45123,false,textDocument/didOpen,,111 +107,false,textDocument/completion,8, +16605,false,textDocument/didOpen,,114 +6943,false,textDocument/didOpen,,115 +11881,false,textDocument/didOpen,,116 +25563,false,textDocument/didOpen,,117 +105,false,textDocument/completion,8, +47671,false,textDocument/didOpen,,118 +90,false,textDocument/completion,8, +42591,false,textDocument/didOpen,,119 +102,false,textDocument/completion,7, +345,false,textDocument/didOpen,,120 +124,false,textDocument/didOpen,,119 +356,false,textDocument/didOpen,,120 +52,false,textDocument/completion,7, +21074,false,textDocument/didOpen,,121 +23228,false,textDocument/didOpen,,78 +9998,false,textDocument/didOpen,,79 +6953,false,textDocument/didOpen,,81 +12684,false,textDocument/didOpen,,124 +11479,false,textDocument/didOpen,,109 +61865,false,textDocument/didOpen,,108 +55474,false,textDocument/didOpen,,107 +355,false,textDocument/didOpen,,106 +53052,false,textDocument/didOpen,,105 +368,false,textDocument/didOpen,,101 +20228,false,textDocument/didOpen,,83 +25257,false,textDocument/didOpen,,82 +16947,false,textDocument/didOpen,,67 +209,false,textDocument/didOpen,,66 +17626,false,textDocument/didOpen,,65 +16812,false,textDocument/didOpen,,64 +42289,false,textDocument/didOpen,,65 +200,false,textDocument/didOpen,,66 +48225,false,textDocument/didOpen,,67 +13474,false,textDocument/didOpen,,68 +45,false,textDocument/completion,8, +50014,false,textDocument/didOpen,,69 +62422,false,textDocument/didOpen,,70 +46873,false,textDocument/didOpen,,72 +44870,false,textDocument/didOpen,,73 +16262,false,textDocument/didOpen,,74 +14207,false,textDocument/didOpen,,75 +90,false,textDocument/completion,4, +40464,false,textDocument/didOpen,,76 +45068,false,textDocument/didOpen,,77 +46492,false,textDocument/didOpen,,78 +50347,false,textDocument/didOpen,,79 +17324,false,textDocument/didOpen,,79 +49704,false,textDocument/didOpen,,80 +14745,false,textDocument/didOpen,,81 +47,false,textDocument/completion,4, +18299,false,textDocument/didOpen,,82 +51029,false,textDocument/didOpen,,82 +3036,false,textDocument/didOpen,,81 +21551,false,textDocument/didOpen,,82 +6856,false,textDocument/didOpen,,81 +16091,false,textDocument/didOpen,,82 +54453,false,textDocument/didOpen,,82 +11747,false,textDocument/didOpen,,83 +6875,false,textDocument/didOpen,,84 +6123,false,textDocument/didOpen,,85 +47017,false,textDocument/didOpen,,86 +77,false,textDocument/completion,11, +19276,false,textDocument/didOpen,,90 +54549,false,textDocument/didOpen,,95 +53932,false,textDocument/didOpen,,97 +12410,false,textDocument/didOpen,,96 +23828,false,textDocument/didOpen,,97 +59762,false,textDocument/didOpen,,97 +35733,false,textDocument/didOpen,,77 +56192,false,textDocument/didOpen,,77 +26029,false,textDocument/didOpen,,78 +85,false,textDocument/completion,7, +19652,false,textDocument/didOpen,,84 +94,false,textDocument/completion,7, +56043,false,textDocument/didOpen,,84 +11520,false,textDocument/didOpen,,62 +15375,false,textDocument/didOpen,,63 +17244,false,textDocument/didOpen,,64 +15480,false,textDocument/didOpen,,62 +269,false,textDocument/didOpen,,61 +262,false,textDocument/didOpen,,60 +43273,false,textDocument/didOpen,,58 +269,false,textDocument/didOpen,,59 +32,false,textDocument/completion,4, +263,false,textDocument/didOpen,,60 +30297,false,textDocument/didOpen,,61 +41701,false,textDocument/didOpen,,62 +10798,false,textDocument/didOpen,,63 +15,false,textDocument/completion,4, +15472,false,textDocument/didOpen,,68 +16045,false,textDocument/didOpen,,69 +15899,false,textDocument/didOpen,,71 +15,false,textDocument/completion,4, +16063,false,textDocument/didOpen,,73 +41349,false,textDocument/didOpen,,75 +15800,false,textDocument/didOpen,,76 +11316,false,textDocument/didOpen,,77 +15,false,textDocument/completion,4, +25291,false,textDocument/didOpen,,83 +16,false,textDocument/completion,4, +43944,false,textDocument/didOpen,,84 +15369,false,textDocument/didOpen,,83 +11496,false,textDocument/didOpen,,82 +42551,false,textDocument/didOpen,,81 +43843,false,textDocument/didOpen,,80 +12331,false,textDocument/didOpen,,79 +44244,false,textDocument/didOpen,,78 +43008,false,textDocument/didOpen,,77 +44483,false,textDocument/didOpen,,76 +12385,false,textDocument/didOpen,,77 +35,false,textDocument/completion,4, +19086,false,textDocument/didOpen,,82 +34456,false,textDocument/didOpen,,83 +21,false,textDocument/completion,4, +17489,false,textDocument/didOpen,,84 +49538,false,textDocument/didOpen,,85 +17013,false,textDocument/didOpen,,86 +10664,false,textDocument/didOpen,,87 +21,false,textDocument/completion,4, +54812,false,textDocument/didOpen,,88 +18543,false,textDocument/didOpen,,89 +108,false,textDocument/didOpen,,90 +15,false,textDocument/completion,10, +18198,false,textDocument/didOpen,,89 +333,false,textDocument/didOpen,,91 +42,false,textDocument/completion,10, +324,false,textDocument/didOpen,,92 +55762,false,textDocument/didOpen,,94 +20162,false,textDocument/didOpen,,95 +382,false,textDocument/didOpen,,96 +45,false,textDocument/completion,10, +19008,false,textDocument/didOpen,,95 +46491,false,textDocument/didOpen,,94 +48105,false,textDocument/didOpen,,95 +114,false,textDocument/didOpen,,97 +11,false,textDocument/completion,10, +15579,false,textDocument/didOpen,,99 +51637,false,textDocument/didOpen,,99 +2351,false,textDocument/didOpen,,100 +7361,false,textDocument/didOpen,,101 +54,false,textDocument/completion,11, +6518,false,textDocument/didOpen,,103 +4087,false,textDocument/didOpen,,104 +7280,false,textDocument/didOpen,,105 +16405,false,textDocument/didOpen,,106 +4748,false,textDocument/didOpen,,94 +16223,false,textDocument/didOpen,,95 +39415,false,textDocument/didOpen,,96 +38633,false,textDocument/didOpen,,89 +65196,false,textDocument/didOpen,,89 +62334,false,textDocument/didOpen,,90 +590,false,textDocument/completion,13, +43408,false,textDocument/didOpen,,94 +50983,false,textDocument/didOpen,,98 +6157,false,textDocument/didOpen,,97 +43408,false,textDocument/didOpen,,90 +32464,false,textDocument/didOpen,,89 +7249,false,textDocument/didOpen,,88 +16786,false,textDocument/didOpen,,89 +5637,false,textDocument/didOpen,,88 +32371,false,textDocument/didOpen,,89 +64647,false,textDocument/didOpen,,91 +89,false,textDocument/completion,13, +39156,false,textDocument/didOpen,,95 +8653,false,textDocument/didOpen,,97 +19214,false,textDocument/didOpen,,99 +52604,false,textDocument/didOpen,,99 +13852,false,textDocument/didOpen,,65 +41377,false,textDocument/didOpen,,99 +9029,false,textDocument/didOpen,,100 +14545,false,textDocument/didOpen,,101 +116,false,textDocument/completion,9, +9455,false,textDocument/didOpen,,102 +9380,false,textDocument/didOpen,,103 +12181,false,textDocument/didOpen,,86 +6463,false,textDocument/didOpen,,85 +33168,false,textDocument/didOpen,,86 +12686,false,textDocument/didOpen,,87 +9290,false,textDocument/didOpen,,88 +33,false,textDocument/completion,4, +29146,false,textDocument/didOpen,,88 +98,false,textDocument/completion,12, +32011,false,textDocument/didOpen,,90 +101,false,textDocument/completion,12, +41917,false,textDocument/didOpen,,93 +15461,false,textDocument/didOpen,,95 +115,false,textDocument/didOpen,,91 +335,false,textDocument/didOpen,,92 +181,false,textDocument/completion,12, +332,false,textDocument/didOpen,,93 +359,false,textDocument/didOpen,,94 +33,false,textDocument/completion,12, +337,false,textDocument/didOpen,,95 +35256,false,textDocument/didOpen,,92 +105,false,textDocument/didOpen,,94 +12,false,textDocument/completion,10, +162,false,textDocument/didOpen,,95 +40582,false,textDocument/didOpen,,96 +50088,false,textDocument/didOpen,,96 +8605,false,textDocument/didOpen,,92 +31433,false,textDocument/didOpen,,91 +39656,false,textDocument/didOpen,,92 +87,false,textDocument/completion,12, +2679,false,textDocument/didOpen,,35173 +3220,false,textDocument/didOpen,,35174 +45,false,textDocument/completion,1, +2413,false,textDocument/didOpen,,35176 +2831,false,textDocument/didOpen,,35178 +39,false,textDocument/completion,1, +2212,false,textDocument/didOpen,,35180 +9828,false,textDocument/didOpen,,35182 +9908,false,textDocument/didOpen,,35183 +9861,false,textDocument/didOpen,,35184 +10022,false,textDocument/didOpen,,35183 +9989,false,textDocument/didOpen,,35182 +6441,false,textDocument/didOpen,,35181 +2202,false,textDocument/didOpen,,35181 +35,false,textDocument/completion,1, +9909,false,textDocument/didOpen,,35183 +5046,false,textDocument/didOpen,,35184 +10165,false,textDocument/didOpen,,35187 +6620,false,textDocument/didOpen,,35188 +82,false,textDocument/completion,1, +8120,false,textDocument/didOpen,,35189 +9841,false,textDocument/didOpen,,35192 +10183,false,textDocument/didOpen,,35196 +2023,false,textDocument/didOpen,,35199 +25,false,textDocument/completion,1, +5083,false,textDocument/didOpen,,35200 +2125,false,textDocument/didOpen,,35202 +59,false,textDocument/completion,1, +2075,false,textDocument/didOpen,,35206 +1989,false,textDocument/didOpen,,35207 +9752,false,textDocument/didOpen,,35208 +2157,false,textDocument/didOpen,,35209 +10092,false,textDocument/didOpen,,35210 +6020,false,textDocument/didOpen,,35211 +81,false,textDocument/completion,1, +10015,false,textDocument/didOpen,,35212 +6485,false,textDocument/didOpen,,35215 +10132,false,textDocument/didOpen,,35219 +2027,false,textDocument/didOpen,,35222 +107,false,textDocument/completion,1, +9824,false,textDocument/didOpen,,35223 +2194,false,textDocument/didOpen,,35226 +34,false,textDocument/completion,1, +10377,false,textDocument/didOpen,,35229 +10466,false,textDocument/didOpen,,35230 +3721,false,textDocument/didOpen,,35231 +9856,false,textDocument/didOpen,,35232 +2033,false,textDocument/didOpen,,35233 +5296,false,textDocument/didOpen,,35234 +68,false,textDocument/completion,1, +9802,false,textDocument/didOpen,,35235 +14745,false,textDocument/didOpen,,35237 +6280,false,textDocument/didOpen,,35236 +6443,false,textDocument/didOpen,,35222 +10998,false,textDocument/didOpen,,35221 +10505,false,textDocument/didOpen,,35220 +2236,false,textDocument/didOpen,,35219 +2080,false,textDocument/didOpen,,35215 +2052,false,textDocument/didOpen,,35217 +125151,false,textDocument/didOpen,,8610 +2549,false,textDocument/didOpen,,35217 +197669,false,textDocument/didOpen,,8610 +2437,false,textDocument/didOpen,,35217 +2320,false,textDocument/didOpen,,35218 +151012,false,textDocument/didOpen,,8610 +153101,false,textDocument/didOpen,,8610 +137601,false,textDocument/didOpen,,8610 +107462,false,textDocument/didOpen,,929 +39864,false,textDocument/didOpen,,930 +80184,false,textDocument/didOpen,,931 +89282,false,textDocument/didOpen,,933 +67052,false,textDocument/didOpen,,934 +94,false,textDocument/completion,170, +89051,false,textDocument/didOpen,,935 +52,false,textDocument/completion,170, +48298,false,textDocument/didOpen,,934 +61981,false,textDocument/didOpen,,935 +48851,false,textDocument/didOpen,,936 +55368,false,textDocument/didOpen,,1026 +69244,false,textDocument/didOpen,,1032 +112642,false,textDocument/didOpen,,1033 +115181,false,textDocument/didOpen,,1034 +95576,false,textDocument/didOpen,,1035 +91918,false,textDocument/didOpen,,1036 +140984,false,textDocument/didOpen,,1037 +83,false,textDocument/completion,180, +151057,false,textDocument/didOpen,,1040 +145182,false,textDocument/didOpen,,1044 +121355,false,textDocument/didOpen,,1045 +119046,false,textDocument/didOpen,,1046 +156530,false,textDocument/didOpen,,1047 +178586,false,textDocument/didOpen,,1048 +131820,false,textDocument/didOpen,,1049 +73,false,textDocument/completion,180, +170464,false,textDocument/didOpen,,1051 +141821,false,textDocument/didOpen,,1052 +187138,false,textDocument/didOpen,,1053 +156422,false,textDocument/didOpen,,1054 +225781,false,textDocument/didOpen,,1055 +204696,false,textDocument/didOpen,,1054 +210323,false,textDocument/didOpen,,1055 +214177,false,textDocument/didOpen,,1057 +242399,false,textDocument/didOpen,,1058 +226543,false,textDocument/didOpen,,1060 +249831,false,textDocument/didOpen,,1061 +73,false,textDocument/completion,180, +217631,false,textDocument/didOpen,,1062 +212153,false,textDocument/didOpen,,1063 +200782,false,textDocument/didOpen,,1065 +242802,false,textDocument/didOpen,,1066 +233872,false,textDocument/didOpen,,1067 +263691,false,textDocument/didOpen,,1069 +258737,false,textDocument/didOpen,,1070 +229749,false,textDocument/didOpen,,1071 +105,false,textDocument/completion,180, +226540,false,textDocument/didOpen,,1073 +252236,false,textDocument/didOpen,,1074 +1897,false,textDocument/didOpen,,1062 +1874,false,textDocument/didOpen,,1054 +1857,false,textDocument/didOpen,,1055 +1889,false,textDocument/didOpen,,1049 +1833,false,textDocument/didOpen,,1048 +1911,false,textDocument/didOpen,,1049 +317070,false,textDocument/didOpen,,1048 +305985,false,textDocument/didOpen,,1049 +99,false,textDocument/completion,184, +251022,false,textDocument/didOpen,,1053 +52,false,textDocument/completion,184, +283652,false,textDocument/didOpen,,1054 +242462,false,textDocument/didOpen,,1055 +295461,false,textDocument/didOpen,,1053 +230870,false,textDocument/didOpen,,1052 +267437,false,textDocument/didOpen,,1051 +231408,false,textDocument/didOpen,,1050 +290553,false,textDocument/didOpen,,1049 +235536,false,textDocument/didOpen,,1048 +347775,false,textDocument/didOpen,,1049 +48,false,textDocument/completion,184, +255063,false,textDocument/didOpen,,1051 +307561,false,textDocument/didOpen,,1053 +50,false,textDocument/completion,184, +300835,false,textDocument/didOpen,,1055 +302031,false,textDocument/didOpen,,1056 +51,false,textDocument/completion,184, +334442,false,textDocument/didOpen,,1060 +51,false,textDocument/completion,184, +366344,false,textDocument/didOpen,,1066 +1411,false,textDocument/completion,184, +288481,false,textDocument/didOpen,,1068 +355255,false,textDocument/didOpen,,1069 +93,false,textDocument/completion,184, +345452,false,textDocument/didOpen,,1072 +48,false,textDocument/completion,184, +327438,false,textDocument/didOpen,,1074 +311472,false,textDocument/didOpen,,1075 +51,false,textDocument/completion,184, +406996,false,textDocument/didOpen,,1076 +79,false,textDocument/completion,184, +372823,false,textDocument/didOpen,,1077 +334606,false,textDocument/didOpen,,1078 +314242,false,textDocument/didOpen,,1079 +391028,false,textDocument/didOpen,,1078 +333151,false,textDocument/didOpen,,1079 +54,false,textDocument/completion,184, +369350,false,textDocument/didOpen,,1077 +385873,false,textDocument/didOpen,,1078 +51,false,textDocument/completion,184, +358193,false,textDocument/didOpen,,1080 +410218,false,textDocument/didOpen,,1122 +425603,false,textDocument/didOpen,,1123 +122863,false,textDocument/didOpen,,1123 +39217,false,textDocument/didOpen,,255 +72221,false,textDocument/didOpen,,637 +56370,false,textDocument/didOpen,,255 +385684,false,textDocument/didOpen,,8099 +50895,false,textDocument/didOpen,,463 +59723,false,textDocument/didOpen,,464 +59246,false,textDocument/didOpen,,464 +174343,false,textDocument/didOpen,,5793 +171692,false,textDocument/didOpen,,5794 +124,false,textDocument/completion,208, +236394,false,textDocument/didOpen,,5795 +44738,false,textDocument/didOpen,,464 +46712,false,textDocument/didOpen,,295 +213,false,textDocument/didOpen,,296 +49136,false,textDocument/didOpen,,297 +59404,false,textDocument/didOpen,,297 diff --git a/log_analysis/survey.csv b/log_analysis/survey.csv new file mode 100644 index 00000000..1da9da83 --- /dev/null +++ b/log_analysis/survey.csv @@ -0,0 +1,5 @@ +Timestamp,Email Address,Diagnostic-Experience,Diagnostic-Performance,Diagnostic-Stability,Diagnostic-Expectations,Diagnostic-Satisfaction,Diagnostic-Comments,Definition-Experience,Definition-Expectations,Definition-Satisfaction,Definition-Comments,Reference-Experience,Reference-Expectations,Reference-Satisfaction,Reference-Comments,Hover-Experience,Performance,Stability,Hover-Expectations,Hover-Satisfaction,Hover-Comments,Completion-Experience,Performance,Stability,Completion-Expectations,Completion-Satisfaction,Completion-Comments,Performance,Performance Comments,Additional remarks +1/12/2022 17:41:17,avi.dessauer@tweag.io,"1: The feature behaved unexpectedly",6,0,3: Most to all expectations were met,5,"NLS worked, but Nickel it's self produces a few obtuse errors",1: The feature behaved unexpectedly,1: Little of my expectation was met,2,Go to Def was very inconsistent. Cross file goto def is an important feature.,1: The feature behaved unexpectedly,"2: Some expectations were met, enough to keep using NLS for this feature",3,It mostly works.,1: The feature behaved unexpectedly,6,0,3: Most to all expectations were met,4,"Hover does not always produce useful information, but it usually does.",1: The feature behaved unexpectedly,4,2,1: Little of my expectation was met,2,Completions don't seem to add much value relative to the word based completion built into my editor. This may be due to my neovim lsp setup. Ideally completions would show type info and docs like rust-analyzer.,5,Performance was good even on the large file., +3/8/2022 17:12:48,yann.hamdaoui@tweag.io,3: The feature worked without an issue,2,3,"2: Some expectations were met, enough to keep using NLS for this feature",3,"The feature works well on static files, is quick, gives the right answers. However it's not always usable when editing the file in neovim + coc.nvim. Maybe it's due to how events are sent to the LSP, but it seems the LSP queues a lot of work and doesn't respond for sometimes tenth of seconds, as if it was processing with a delay all of the atomic changes I made.",3: The feature worked without an issue,3: Most to all expectations were met,4,"The features works well, is quick. One missing thing is cross-document navigation, though.",3: The feature worked without an issue,3: Most to all expectations were met,4,"Same as goto definitions: globally good and quick, but cross-document usages are missing.",3: The feature worked without an issue,6,1,3: Most to all expectations were met,5,,2: The feature did not work in all cases,5,0,"2: Some expectations were met, enough to keep using NLS for this feature",4,"Completion is nice but basic. It is missing record field completion, which is arguably more difficult to do, but important in a record-based language like Nickel.",3,"It's hard to assess, because there are two dimensions. When the document is not modified, the response time was instantaneous for any operation from my user's point of view. However, when modifying a document, it was slow to very slow on neovim, and we could see the modification stacking (you do a modification, and then for the following seconds, see several delayed ghost diagnostics for your intermediate invalid code until it reaches a new state of no error). I don't know if it is experienced the same on VSCode. Sometimes it even pumped almost all of CPU and didn't respond anymore.", +3/22/2022 12:23:45,timothee.cercueil@tweag.io,2: The feature did not work in all cases,5,2,"2: Some expectations were met, enough to keep using NLS for this feature",4,Would be very useful to know if a value breaks a contract or not,3: The feature worked without an issue,3: Most to all expectations were met,4,,3: The feature worked without an issue,4: NLS surpassed the expectations,5,,1: The feature behaved unexpectedly,4,0,1: Little of my expectation was met,3,"Showing only ""builtins types"", not the name of the contract (and if that is a contract), got a Rust term printed in debug also. Not the most needed feature, but in this state this is not informative at all / useless",0: The feature didn't work at all,3,2,0: The feature did not work,2,"Only the autocompletion with source from inside the buffer was working, not NLS adding whatsoever. (Maybe a misconfiguration ?)",4,"Show documentation was a bit slow, but not annoyingly, generally very fast", +3/22/2022 12:54:37,anthony.caccia@tweag.io,1: The feature behaved unexpectedly,5,3,"2: Some expectations were met, enough to keep using NLS for this feature",4,"The underline was great and gave a direct feedback to the error location, but the message was sometimes unclear",0: The feature didn't work at all,0: The feature did not work,0,"well, it doesn't seem to work",0: The feature didn't work at all,0: The feature did not work,0,"keep getting ""no reference"" feedback, whatever I'm selecting",1: The feature behaved unexpectedly,5,4,1: Little of my expectation was met,2,"All I get while hovering something is a ""_a"" that is placed on the top left part of the editor",3: The feature worked without an issue,5,4,3: Most to all expectations were met,6,very cool,3,"no issue with performances, but I'm not sure this is the main concern when most parts don't seem to work", From 70558f6a7f90699d020ea81c507a835114dea397 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 15 May 2022 19:18:49 +0200 Subject: [PATCH 30/51] Add figures --- log_analysis/figures/boxplot-latencies.svg | 3602 ++ .../figures/correlation-completions.svg | 9360 ++++ .../figures/correlation-definitions.svg | 1770 + log_analysis/figures/correlation-hovers.svg | 42732 ++++++++++++++++ log_analysis/figures/correlation-opens.svg | 42732 ++++++++++++++++ .../figures/correlation-references.svg | 1677 + .../figures/distribution-by-file-size.svg | 1422 + .../figures/distribution-by-lin-size.svg | 2004 + .../figures/results-comp-expectations.svg | 1652 + .../figures/results-comp-experience.svg | 1493 + .../figures/results-comp-satisfaction.svg | 1469 + 11 files changed, 109913 insertions(+) create mode 100644 log_analysis/figures/boxplot-latencies.svg create mode 100644 log_analysis/figures/correlation-completions.svg create mode 100644 log_analysis/figures/correlation-definitions.svg create mode 100644 log_analysis/figures/correlation-hovers.svg create mode 100644 log_analysis/figures/correlation-opens.svg create mode 100644 log_analysis/figures/correlation-references.svg create mode 100644 log_analysis/figures/distribution-by-file-size.svg create mode 100644 log_analysis/figures/distribution-by-lin-size.svg create mode 100644 log_analysis/figures/results-comp-expectations.svg create mode 100644 log_analysis/figures/results-comp-experience.svg create mode 100644 log_analysis/figures/results-comp-satisfaction.svg diff --git a/log_analysis/figures/boxplot-latencies.svg b/log_analysis/figures/boxplot-latencies.svg new file mode 100644 index 00000000..6c014768 --- /dev/null +++ b/log_analysis/figures/boxplot-latencies.svg @@ -0,0 +1,3602 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/correlation-completions.svg b/log_analysis/figures/correlation-completions.svg new file mode 100644 index 00000000..f7a2c180 --- /dev/null +++ b/log_analysis/figures/correlation-completions.svg @@ -0,0 +1,9360 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/correlation-definitions.svg b/log_analysis/figures/correlation-definitions.svg new file mode 100644 index 00000000..bc76de05 --- /dev/null +++ b/log_analysis/figures/correlation-definitions.svg @@ -0,0 +1,1770 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/correlation-hovers.svg b/log_analysis/figures/correlation-hovers.svg new file mode 100644 index 00000000..46633c61 --- /dev/null +++ b/log_analysis/figures/correlation-hovers.svg @@ -0,0 +1,42732 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/correlation-opens.svg b/log_analysis/figures/correlation-opens.svg new file mode 100644 index 00000000..3129941b --- /dev/null +++ b/log_analysis/figures/correlation-opens.svg @@ -0,0 +1,42732 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/correlation-references.svg b/log_analysis/figures/correlation-references.svg new file mode 100644 index 00000000..a810a930 --- /dev/null +++ b/log_analysis/figures/correlation-references.svg @@ -0,0 +1,1677 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/distribution-by-file-size.svg b/log_analysis/figures/distribution-by-file-size.svg new file mode 100644 index 00000000..e67b7fef --- /dev/null +++ b/log_analysis/figures/distribution-by-file-size.svg @@ -0,0 +1,1422 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/distribution-by-lin-size.svg b/log_analysis/figures/distribution-by-lin-size.svg new file mode 100644 index 00000000..467db518 --- /dev/null +++ b/log_analysis/figures/distribution-by-lin-size.svg @@ -0,0 +1,2004 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/results-comp-expectations.svg b/log_analysis/figures/results-comp-expectations.svg new file mode 100644 index 00000000..e440e3d4 --- /dev/null +++ b/log_analysis/figures/results-comp-expectations.svg @@ -0,0 +1,1652 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/results-comp-experience.svg b/log_analysis/figures/results-comp-experience.svg new file mode 100644 index 00000000..023e68f9 --- /dev/null +++ b/log_analysis/figures/results-comp-experience.svg @@ -0,0 +1,1493 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/results-comp-satisfaction.svg b/log_analysis/figures/results-comp-satisfaction.svg new file mode 100644 index 00000000..4fe99513 --- /dev/null +++ b/log_analysis/figures/results-comp-satisfaction.svg @@ -0,0 +1,1469 @@ + + + + + + + + 1980-01-01T00:00:00+00:00 + image/svg+xml + + + Matplotlib v3.4.3, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 1bc11056ca4601083fbda8ace3b12842b89810cf Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 15 May 2022 19:19:16 +0200 Subject: [PATCH 31/51] Add Experience survey result figures --- chapter/evaluation.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 61711dbd..21d39994 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -208,6 +208,15 @@ Error tolerance was detailed as the capability of the language server to continu #### Experience Survey +:::{#fig:expe-survey-results} + +![Number of votes for each experience category and feature](log_analysis/figures/results-comp-experience.svg){#fig:results-comp-experience width=50%} +![Number of votes for each satisfaction category and feature](log_analysis/figures/results-comp-satisfaction.svg){#fig:results-comp-satisfaction width=50%} + +![Number of votes for each expectations category and feature](log_analysis/figures/results-comp-expectations.svg){#fig:results-comp-expectations width=75%} + +User responses regarding general experience, fulfillment of expectations and general satisfaction. +::: The above figures show the turnout of three items from the survey for each of the relevant features. Neither of them shows clear trends with positive and negative reults distributed almost evenly between positive and negative sentiments. From 9c5e7d25da698b2ecc6df4ffc2578f6dfc155302 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sat, 21 May 2022 19:29:14 +0200 Subject: [PATCH 32/51] Fix header levels and add unique ids --- chapter/evaluation.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 21d39994..8b4a2281 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -238,33 +238,33 @@ The clearest result was achieved by the Diagnostics feature, which received a sl Asking about the general satisfaction with each feature, results in the same mixed answers as seen in [@fig:results-comp-satisfaction]. While a slight majority of responses falls into the upper half of the possible spectrum, two features (of the three that have previously been reported without function) were given the lowest possible rating. -#### Hover +##### Hover {#sec:hover@res} As apparent in ([@fig:results-comp-experience]), most participants experienced unexpected behavior by the LSP when using the hover functionality. In the comments, extraneous debug output and incorrect displaying of the output by the IDE are pointed out as concrete examples. However one answer suggests that the feature was working with "usually useful" output. -#### Diagnostics +##### Diagnostics {#sec:diagnostics@res} While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], all participants marked that those did not deter from keep using NLS for it as displayed in [@fig:results-comp-expectations]. In the comments some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues while others mentioned "unclear messages". However, it was pointed out that it contracts were not checked by the Language Server. Moreover, a performance issue was brought up noting that in some situations NLS "queues a lot of work and does not respond". -#### Code Completion +##### Code Completion {#sec:code-completion@res} Comments about the Code Completion feature were unanimously critical. Some participants noted the little gained "value over the token based completion built into the editor" while others specifically pointed at "missing type information and docs". Additionally record field completion was found to be missing, yet highly valued. -#### Document Navigation +##### Document Navigation {#sec:document-navigation@res} Results and comments about the Go-To-Definition and Find-Referneces were polarized. -On the one hand users reported no issues while others experienced unexpected behavior or were unabke to use the feature at all (cf. [@fig:results-comp-experience]). +On the one hand users reported no issues while others experienced unexpected behavior or were unable to use the feature at all (cf. [@fig:results-comp-experience]). Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailabilty. More practically, cross file navigation was named an important missing feature. -#### General Performance +##### General Performance {#sec:general-performance@res} The responses to this item suggest that NLS' perfomance is largely dependent on its usage. On unmodified files queries were reported to evaluate "instantaniously". From 557a401d202cdf245240b5a5c5292e4afb13cded Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sun, 22 May 2022 15:34:56 +0200 Subject: [PATCH 33/51] Add total number of trace recordings --- chapter/evaluation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 8b4a2281..e062e388 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -290,6 +290,8 @@ The final distrubution of methods traced is: | `textDocument/hover` | 227 | yes | | `textDocument/definition` | 68 | yes | | `textDocument/references` | 49 | yes | +| ------------------------- | ----- | ------------------- | +| total | 16761 | | : Number of traces per LSP method From 255cb55600d5f72f878e9150fa7fe1af561eafd8 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 22 May 2022 18:39:02 +0200 Subject: [PATCH 34/51] Reference opens correlation plot --- chapter/evaluation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index e062e388..f550fb83 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -340,6 +340,6 @@ The height of these colums varies from one to five orders of magnitude. Considering the item density shows that especially high columns form whenever the server receives a higher load of requests. Additionally color coding the individual requests by time reveils that the trace points of each column were recorded at a short time interval. Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. -In case of the `didOpen` method columns are clearly visible too. +In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. From e8d7ae76036d610d162e9803b3a95ef50636b532 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sun, 22 May 2022 18:47:39 +0200 Subject: [PATCH 35/51] Apply suggestions from code review Fixes many typos Co-authored-by: Yann Hamdaoui --- chapter/evaluation.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index f550fb83..48cd5357 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -172,7 +172,7 @@ Responding to the first point (c.f. [#sec:expected-features]), the participants Type-information on hover ~ was named almost uniformly. The participants showed a special interest in this feature describing specific behaviours. - The desired information exposed by this feature are value types including applied contracts and documentation as well as function signatures. + The desired information exposed by this feature are types (including applied contracts) and documentation as well as function signatures. ~ When asked about the hover LSP method in particular, participants name additional function documentation, default values and the visualization of scopes as an additional features. Diagnostics @@ -181,10 +181,10 @@ Diagnostics In either case the diagnostic should be produced "On-the-fly" while typing or upon saving the document. ~ When asked about the diagnostics feature of language servers directly, the answers corroborated these initial opinions. In addition some participants named code linting, i.e. warnings about code style, unused variables, deprecated code and undocumented elements, as well as structural analysis hints as possible features. - Structural analysis was imagined to go that far as being able to "suggest how to fix" mistakes in the code. + Structural analysis was imagined to go as far as being able to "suggest how to fix" mistakes in the code. Code Completion - ~ was equally name in all but one response. + ~ was equally named in all but one response. It was described as a way to chose from possible completion candidates of options. The answers included aspirational vague descriptions of such a feature including the a way to automatically prioritize specific items. @@ -193,7 +193,7 @@ Code Completion Jump-to-Definition ~ was included in three fourth of responses. - ~ The specific feature survey revealed the exoected behaviour in more detail; + ~ In general, the participants expect the feature to work with any kind of reference, i.e., variable usages, function calls, function arguments and type annotations. Record fields ale equally desired although the ability to define self referencing records was pointed out as a challenge. However, subjects expect statically defined nested fields to point to the correct respective definition. @@ -232,10 +232,10 @@ For the second item of each feature, the survey asked the subjects to rate the q [Figure @fig:results-comp-expectations] summarizes the results. Apart from the same three occasions in which a feature did not work for one participant, the majority of responses show that NLS met its user's expectations at least partially. The results are however highly polarized as the Jump-to-Definition and Hover features demonstrate; Each received equally many votes for being inapt and fully able to hold up to the participants expectations at the same time. -Other features were left with with a nuniformly distributed assessment (e.g. Completion and Find-References). +Other features were left with with an uniformly distributed assessment (e.g. Completion and Find-References). The clearest result was achieved by the Diagnostics feature, which received a slight but uncontended positive sentiment. -Asking about the general satisfaction with each feature, results in the same mixed answers as seen in [@fig:results-comp-satisfaction]. +Asking about the general satisfaction with each feature results in the same mixed answers as seen in [@fig:results-comp-satisfaction]. While a slight majority of responses falls into the upper half of the possible spectrum, two features (of the three that have previously been reported without function) were given the lowest possible rating. ##### Hover {#sec:hover@res} @@ -302,7 +302,7 @@ The final distrubution of methods traced is: [Figures @fig:distribution-by-lin-size, @fig:distribution-by-file-size] break up these numbers by method and linearization size or file size respectively. The first figure shows a peak number of traces for completion events between $0$ to $1$ linearization items as well as local maxima around a linearization size of $20$ to $30$ and sustained usage of completion requests in files of $90-400$ items. -Similar to the completion requests (but well outnumbered in total counts), other other methods were used mainly in the range between $200$ and $400$ linearization items. +Similar to the completion requests (but well outnumbered in total counts), other methods were used mainly in the range between $200$ and $400$ linearization items. A visualization of the Empirical Cumulative Distribution Function (ECFD) ([@fig:ecdf-distribution-by-lin-size] corroborates these findings. Moreover, it shows an additional hike of Jump-to-Definition and Find-References calls at on files with around 1500 linearization items. The findings for linearization based methods line up with those depicting linearization events (identified as `textDocument/didOpen`). @@ -333,11 +333,11 @@ Runtime latencies of different linearization based methods ![Runtime latencies of file update handlings at different file sizes](log_analysis/figures/correlation-opens.svg){#fig:correlation-opens width=50%} -Setting the runtime of completion requests in relation to the linearization size on which the command was performed, shows no clear correlation between the dimensions. +Setting the runtime of completion requests in relation to the linearization size on which the command was performed shows no clear correlation between the dimensions. In fact the correlation coefficient between both variables measures $0.01617$ on a linear scale and $0.26$ on a $\log_{10}\log_{10}$ scale. Instead, vertical colums stand out in the correlation graph [@fig:correlation-completions]. The height of these colums varies from one to five orders of magnitude. -Considering the item density shows that especially high columns form whenever the server receives a higher load of requests. +The item density shows that especially high columns form whenever the server receives a higher load of requests. Additionally color coding the individual requests by time reveils that the trace points of each column were recorded at a short time interval. Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. From 7cd9278983a7ec46034d338a9f3f079a446c39e7 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sun, 22 May 2022 18:48:09 +0200 Subject: [PATCH 36/51] Reference linearization section --- chapter/evaluation.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 48cd5357..1c33fa63 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -301,6 +301,8 @@ The final distrubution of methods traced is: [Figures @fig:distribution-by-lin-size, @fig:distribution-by-file-size] break up these numbers by method and linearization size or file size respectively. +The linearization is the linear representation of an enriched AST. +It is explained in great detail in [@sec:linearization]. The first figure shows a peak number of traces for completion events between $0$ to $1$ linearization items as well as local maxima around a linearization size of $20$ to $30$ and sustained usage of completion requests in files of $90-400$ items. Similar to the completion requests (but well outnumbered in total counts), other methods were used mainly in the range between $200$ and $400$ linearization items. A visualization of the Empirical Cumulative Distribution Function (ECFD) ([@fig:ecdf-distribution-by-lin-size] corroborates these findings. From ce44f0b70dd32d2f891a4550949fc680159c7233 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 15:26:53 +0200 Subject: [PATCH 37/51] Rephrase pre-eval results --- chapter/evaluation.md | 78 +++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 1c33fa63..034e407b 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -158,7 +158,6 @@ For instance, the LSP does not specify the frequency at which file changes are d ## Results -### Process ### Qualitative @@ -167,44 +166,46 @@ The pre-evaluation aimed to catch the users's expected features and behaviours, #### Pre-Evaluation -Responding to the first point (c.f. [#sec:expected-features]), the participants unanimously identified four of the six foundational language server capabilities that guided the implementation of the project (c.f. [@sec:commands-and-notifications, @langserverorg] ); - -Type-information on hover - ~ was named almost uniformly. - The participants showed a special interest in this feature describing specific behaviours. - The desired information exposed by this feature are types (including applied contracts) and documentation as well as function signatures. - ~ When asked about the hover LSP method in particular, participants name additional function documentation, default values and the visualization of scopes as an additional features. - -Diagnostics - ~ are widely understood as an important feature. - Participant had very particular opinions about the behavior and detail of diagnostics including error message at the correct location in the code signaling syntax errors or possibly evaluation errors and contract breaches. - In either case the diagnostic should be produced "On-the-fly" while typing or upon saving the document. - ~ When asked about the diagnostics feature of language servers directly, the answers corroborated these initial opinions. - In addition some participants named code linting, i.e. warnings about code style, unused variables, deprecated code and undocumented elements, as well as structural analysis hints as possible features. - Structural analysis was imagined to go as far as being able to "suggest how to fix" mistakes in the code. - -Code Completion - ~ was equally named in all but one response. - It was described as a way to chose from possible completion candidates - of options. - The answers included aspirational vague descriptions of such a feature including the a way to automatically prioritize specific items. - ~ Responding about the concrete LSP feature, participants listed variables, record fields, types, functions and function argument candiates as possible completion candidates. - Moreover, some suggested the inclusion of the completion context to guide priorization as well as auto-generated contract and function skeletons. - -Jump-to-Definition - ~ was included in three fourth of responses. - ~ - In general, the participants expect the feature to work with any kind of reference, i.e., variable usages, function calls, function arguments and type annotations. - Record fields ale equally desired although the ability to define self referencing records was pointed out as a challenge. - However, subjects expect statically defined nested fields to point to the correct respective definition. - -The other two features Find-References and Workspace/Document Symbols on the contrary were sparingly commented. -Participands noted that they did not use these capabilities. -The features were however well understood, as shown by some responsess naming very particular distinctions of symbol types. - -Beyond features that were explicitly targeted by this work, syntax highlighting and code formatting as well as error tolerance were named as further desireable features of a language server. -Error tolerance was detailed as the capability of the language server to continue processing and delivering analysis of invalid sources restricting the computation to the correct parts of the program. +In the initial free assessment of expected features (c.f. [#sec:expected-features]) the participants unanimously identified four of the six language server capabilities that guided the implementation of the project (c.f. [@sec:commands-and-notifications, @langserverorg]): Type-information on hover, automactic diagnostics, Code Completion and Jump-to-Definition. +The other two features, Find-References and Workspace/Document Symbols on the contrary were sparingly commented. +Some participands noted that they did not use these capabilities. + +##### Type-information on hover + +Hovering is expected to work on values as well as functions. +For values it is desired to show types including applied contracts, documentation and defautl values. +On functions it should display the function's signature and documentation. +Additionally hovering an item desireably visualizes the scope of the item, i.e. where it is available. + + +##### Diagnostics + +Diagnostics are expected to include error messages signalling syntax and type errors as well as possibly evaluation errors and contract breaches. +The diagnostics should show up at the correct positions in the code and "suggest how to fix" mistakes. +Code linting was named as a possible extension to error reporting. +This would include warnings about bad code style -- formatting, casing conventions -- unused variables, deprecated code and undocumented elements. +Moreover structural analysis was conceived to allow finding structural issues and help fixing them +In either case the diagnostic should be produced "On-the-fly" while typing or upon saving the document. + +##### Code Completion + +Code Completion was described as a way to chose from possible completion candidates of options. +Completable items can be variable names, record fields, types or functions. +Besides, Participants conceived filtereing or prioritizing of candidates by type if applied as function arguments. +Finally, the completion context could guide priorization as well as auto-generation of contract and function skeletons. + +##### Jump-to-Definition + +Users expect Jump-to-Definition to work with any kind of reference i.e., variable usages, function calls, function arguments and type annotations. +On records and references to records, users expect statically defined nested fields to point to the correct respective definition. +The ability to define self referencing records was however conceded to be a challenge. + +##### Other features + +Syntax highlighting and code formatting as well as error tolerance were named as further desireable features of a language server beyond the explicitly targeted features. +Error tolerance was detailed as the capability of the language server to continue processing and delivering analysis of invalid sources. +For invalid files a language server should still be able to provide its functionality for the correct parts of the program. #### Experience Survey @@ -344,4 +345,3 @@ Additionally color coding the individual requests by time reveils that the trace Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. - From 4f9e424a2f25e8ac7c1447e8d0737b2967a62300 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 15:32:43 +0200 Subject: [PATCH 38/51] Intro experience Survey --- chapter/evaluation.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 034e407b..e1992a4d 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -209,6 +209,9 @@ For invalid files a language server should still be able to provide its function #### Experience Survey +This sub-section describes the results from the filled after the Nickel workshop inwhich participants were asked to install the LSP to support their experience. +It first looks at a summary of the data, before diving into the comments for each directly addressed feature. + :::{#fig:expe-survey-results} ![Number of votes for each experience category and feature](log_analysis/figures/results-comp-experience.svg){#fig:results-comp-experience width=50%} From 40e7b9282e0448241a620ae439699c06b8af6759 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 16:55:53 +0200 Subject: [PATCH 39/51] Some rephrasing of the post evaluation --- chapter/evaluation.md | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index e1992a4d..1f329c99 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -223,24 +223,26 @@ User responses regarding general experience, fulfillment of expectations and gen ::: The above figures show the turnout of three items from the survey for each of the relevant features. -Neither of them shows clear trends with positive and negative reults distributed almost evenly between positive and negative sentiments. +Neither of them shows clear trends with positive and negative results distributed almost evenly between positive and negative sentiment. The first graph ([@fig:results-comp-experience]) represents the participants' general experience with the relevant features. It shows that each feature worked without issue in at least one instance. -Yet, three features were reported to not work at all and no feature left the users unsurprised. -Participant found the hover and diagnostic features to behave particularly unexpectedly. +Yet, three features were reported to not work at all and no feature left the users unsurprised. +Users found the hover and diagnostic features to behave particularly unexpectedly. -For the second item of each feature, the survey asked the subjects to rate the quality of the language server based on their expectations. +In the second item of each feature, the survey asked the subjects to rate the quality of the language server based on their expectations. [Figure @fig:results-comp-expectations] summarizes the results. -Apart from the same three occasions in which a feature did not work for one participant, the majority of responses show that NLS met its user's expectations at least partially. +In agreement with the first graph, one user was unable to use at least three features entirely. +The majority of responses show that NLS met its user's expectations at least partially. The results are however highly polarized as the Jump-to-Definition and Hover features demonstrate; Each received equally many votes for being inapt and fully able to hold up to the participants expectations at the same time. Other features were left with with an uniformly distributed assessment (e.g. Completion and Find-References). The clearest result was achieved by the Diagnostics feature, which received a slight but uncontended positive sentiment. -Asking about the general satisfaction with each feature results in the same mixed answers as seen in [@fig:results-comp-satisfaction]. -While a slight majority of responses falls into the upper half of the possible spectrum, two features (of the three that have previously been reported without function) were given the lowest possible rating. +The general satisfaction with each feature was answered in the same polarized manner as seen in [@fig:results-comp-satisfaction]. +A slight majority of responses falls into the upper half of the possible spectrum. +Two of the features reported without function in the preceding questions were given the lowest possible rating. ##### Hover {#sec:hover@res} @@ -250,30 +252,30 @@ However one answer suggests that the feature was working with "usually useful" o ##### Diagnostics {#sec:diagnostics@res} -While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], all participants marked that those did not deter from keep using NLS for it as displayed in [@fig:results-comp-expectations]. -In the comments some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues while others mentioned "unclear messages". -However, it was pointed out that it contracts were not checked by the Language Server. +While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], no user felt detered from keep using NLS for it as displayed in [@fig:results-comp-expectations]. +Some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues. +On the contrary, others mentioned "unclear messages" and pointed out that contracts were not checked by the Language Server. Moreover, a performance issue was brought up noting that in some situations NLS "queues a lot of work and does not respond". ##### Code Completion {#sec:code-completion@res} Comments about the Code Completion feature were unanimously critical. Some participants noted the little gained "value over the token based completion built into the editor" while others specifically pointed at "missing type information and docs". -Additionally record field completion was found to be missing, yet highly valued. +Additionally, record field completion was found to be missing, albeit highly valued. ##### Document Navigation {#sec:document-navigation@res} -Results and comments about the Go-To-Definition and Find-Referneces were polarized. -On the one hand users reported no issues while others experienced unexpected behavior or were unable to use the feature at all (cf. [@fig:results-comp-experience]). +Results and comments about the Go-To-Definition and Find-References were polarized. +Some users experienced unexpected behavior or were unable to use the feature at all (cf. [@fig:results-comp-experience]). Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailabilty. -More practically, cross file navigation was named an important missing feature. +More soecifically, cross file navigation was named an important missing feature. ##### General Performance {#sec:general-performance@res} -The responses to this item suggest that NLS' perfomance is largely dependent on its usage. +The responses to the general performance suggest that NLS' perfomance is largely dependent on its usage. On unmodified files queries were reported to evaluate "instantaniously". -However modifying files caused that "modifications stack up" causing high CPU usage and generally "very slow" responses. -Others pointed out that documentation was slow to resolve while the server itself was "generally fast". +However, modifying files caused that "modifications stack up" causing high CPU usage and generally "very slow" responses. +Besides, documentation was reported as slow to resolve while the server itself was "generally fast". ### Quantitative From 8ffa8a8d21ad0b1917f6557baa29b69e193b0c37 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 17:25:16 +0200 Subject: [PATCH 40/51] Fix typos --- chapter/evaluation.md | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 1f329c99..db0960fa 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -29,7 +29,7 @@ Performance Answering the questions above, this chapter consists of two main sections. The first section [@sec:methods] introduces methods employed for the evaluation. In particular, it details the survey ([@sec:qualitative]) which was conducted with the intent to gain qualitative opinions by users, as well as the tracing mechanism ([@sec:quantitative]) for factual quantitative insights. -[Section @sec:results] summarises the results of these methods. +[Section @sec:results] summarizes the results of these methods. ## Evaluation Considerations @@ -162,7 +162,7 @@ For instance, the LSP does not specify the frequency at which file changes are d As outlined in [#sec:qualitative-study-outline], the qualitative study consists of two parts conducted before and after an introductory workshop. -The pre-evaluation aimed to catch the users's expected features and behaviours, while the main survey asked users about their concrete experiences with the NLS. +The pre-evaluation aimed to catch the users' expected features and behaviors, while the main survey asked users about their concrete experiences with the NLS. #### Pre-Evaluation @@ -209,7 +209,7 @@ For invalid files a language server should still be able to provide its function #### Experience Survey -This sub-section describes the results from the filled after the Nickel workshop inwhich participants were asked to install the LSP to support their experience. +This subsection describes the results from the filled after the Nickel workshop in which participants were asked to install the LSP to support their experience. It first looks at a summary of the data, before diving into the comments for each directly addressed feature. :::{#fig:expe-survey-results} @@ -217,7 +217,7 @@ It first looks at a summary of the data, before diving into the comments for eac ![Number of votes for each experience category and feature](log_analysis/figures/results-comp-experience.svg){#fig:results-comp-experience width=50%} ![Number of votes for each satisfaction category and feature](log_analysis/figures/results-comp-satisfaction.svg){#fig:results-comp-satisfaction width=50%} -![Number of votes for each expectations category and feature](log_analysis/figures/results-comp-expectations.svg){#fig:results-comp-expectations width=75%} +![Number of votes for each expectation category and feature](log_analysis/figures/results-comp-expectations.svg){#fig:results-comp-expectations width=75%} User responses regarding general experience, fulfillment of expectations and general satisfaction. ::: @@ -237,8 +237,8 @@ In the second item of each feature, the survey asked the subjects to rate the qu In agreement with the first graph, one user was unable to use at least three features entirely. The majority of responses show that NLS met its user's expectations at least partially. The results are however highly polarized as the Jump-to-Definition and Hover features demonstrate; Each received equally many votes for being inapt and fully able to hold up to the participants expectations at the same time. -Other features were left with with an uniformly distributed assessment (e.g. Completion and Find-References). -The clearest result was achieved by the Diagnostics feature, which received a slight but uncontended positive sentiment. +Other features were left with a uniformly distributed assessment (e.g. Completion and Find-References). +The clearest result was achieved by the Diagnostics feature, which received a slight but uncontested positive sentiment. The general satisfaction with each feature was answered in the same polarized manner as seen in [@fig:results-comp-satisfaction]. A slight majority of responses falls into the upper half of the possible spectrum. @@ -248,11 +248,11 @@ Two of the features reported without function in the preceding questions were gi As apparent in ([@fig:results-comp-experience]), most participants experienced unexpected behavior by the LSP when using the hover functionality. In the comments, extraneous debug output and incorrect displaying of the output by the IDE are pointed out as concrete examples. -However one answer suggests that the feature was working with "usually useful" output. +However, one answer suggests that the feature was working with "usually useful" output. ##### Diagnostics {#sec:diagnostics@res} -While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], no user felt detered from keep using NLS for it as displayed in [@fig:results-comp-expectations]. +While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], no user felt deterred from keep using NLS for it as displayed in [@fig:results-comp-expectations]. Some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues. On the contrary, others mentioned "unclear messages" and pointed out that contracts were not checked by the Language Server. Moreover, a performance issue was brought up noting that in some situations NLS "queues a lot of work and does not respond". @@ -267,13 +267,13 @@ Additionally, record field completion was found to be missing, albeit highly val Results and comments about the Go-To-Definition and Find-References were polarized. Some users experienced unexpected behavior or were unable to use the feature at all (cf. [@fig:results-comp-experience]). -Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailabilty. -More soecifically, cross file navigation was named an important missing feature. +Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailability. +More specifically, cross file navigation was named an important missing feature. ##### General Performance {#sec:general-performance@res} -The responses to the general performance suggest that NLS' perfomance is largely dependent on its usage. -On unmodified files queries were reported to evaluate "instantaniously". +The responses to the general performance suggest that NLS' performance is largely dependent on its usage. +On unmodified files queries were reported to evaluate "instantaneously". However, modifying files caused that "modifications stack up" causing high CPU usage and generally "very slow" responses. Besides, documentation was reported as slow to resolve while the server itself was "generally fast". @@ -282,12 +282,13 @@ Besides, documentation was reported as slow to resolve while the server itself w The quantitative evaluation focuses on the performance characteristics of NLS. As described in [@sec:eval-methods-quantitative] a tracing module was embedded into the NLS binary which recorded the runtime together with the size of the analyzed data, i.e., the number of linearization items [@sec:linearization] or size of the analyzed file. +This section will first introduce the dataset before looking at the general performance and finally looking into particular cases. #### Dataset The underlying data set consists of 16760 unique trace records. Since the `textDocument/didOpen` method is executed on every update of the source, it greatly outnumbers the other events. -The final distrubution of methods traced is: +The final distribution of methods traced is: | Method | count | linearization based | | ------------------------- | ----- | ------------------- | @@ -311,19 +312,19 @@ The linearization is the linear representation of an enriched AST. It is explained in great detail in [@sec:linearization]. The first figure shows a peak number of traces for completion events between $0$ to $1$ linearization items as well as local maxima around a linearization size of $20$ to $30$ and sustained usage of completion requests in files of $90-400$ items. Similar to the completion requests (but well outnumbered in total counts), other methods were used mainly in the range between $200$ and $400$ linearization items. -A visualization of the Empirical Cumulative Distribution Function (ECFD) ([@fig:ecdf-distribution-by-lin-size] corroborates these findings. +A visualization of the Empirical Cumulative Distribution Function (ECFD) [@fig:ecdf-distribution-by-lin-size] corroborates these findings. Moreover, it shows an additional hike of Jump-to-Definition and Find-References calls at on files with around 1500 linearization items. The findings for linearization based methods line up with those depicting linearization events (identified as `textDocument/didOpen`). -An initial peak referring to rather small input files between $300$ and $400$ bytes in size is followed by a sustained usage of the NLS on files with $2$ to $6$ kiloBytes of content topped with a final application on $35$ kiloByte large data. +An initial peak referring to rather small input files between $300$ and $400$ bytes in size is followed by a sustained usage of the NLS on files with $2$ to $6$ kilobytes of content topped with a final application on $35$ kilobyte large data. #### Big Picture Latencies ![Statistical runtime of different LSP methods](log_analysis/figures/boxplot-latencies.svg){#fig:boxplot-latencies width=\textwidth} Comparing the runtime of the individual methods alone in [@fig:boxplot-latencies], reveals three key findings. -First, all linearization based methods exhibit a sub-millisecond latency in at least $95%$ of all invocations and median response times fo less than $100µs$ +First, all linearization based methods exhibit a sub-millisecond latency in at least $95%$ of all invocations and median response times of less than $100µs$ However, maximum latencies of completion invocations reached tens of milliseconds and in one recorded case about $300ms$. -Finally, document linearization as associated with the `textDocument/didOpen` method shows a great range with maxima of $1.5 * 10^5µs$ (about $2.5$ minutes) and a generally greater inter quartile range spanning more than tow orders of magnitude. +Finally, document linearization as associated with the `textDocument/didOpen` method shows a great range with maxima of $1.5 * 10^5µs$ (about $2.5$ minutes) and a generally greater interquartile range spanning more than two orders of magnitude. #### Special cases @@ -343,10 +344,10 @@ Runtime latencies of different linearization based methods Setting the runtime of completion requests in relation to the linearization size on which the command was performed shows no clear correlation between the dimensions. In fact the correlation coefficient between both variables measures $0.01617$ on a linear scale and $0.26$ on a $\log_{10}\log_{10}$ scale. -Instead, vertical colums stand out in the correlation graph [@fig:correlation-completions]. -The height of these colums varies from one to five orders of magnitude. +Instead, vertical columns stand out in the correlation graph [@fig:correlation-completions]. +The height of these columns varies from one to five orders of magnitude. The item density shows that especially high columns form whenever the server receives a higher load of requests. -Additionally color coding the individual requests by time reveils that the trace points of each column were recorded at a short time interval. +Additionally, color coding the individual requests by time reveals that the trace points of each column were recorded at a short time interval. Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. From 0a3369e04052041ab59d5101bf434db9e0bc25ce Mon Sep 17 00:00:00 2001 From: ysndr Date: Sat, 21 May 2022 19:36:32 +0200 Subject: [PATCH 41/51] First points of discussion --- chapter/evaluation.md | 70 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index db0960fa..77e08ba6 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -351,3 +351,73 @@ Additionally, color coding the individual requests by time reveals that the trac Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. +## Discussion + +This section discusses the issues raised during the survey and uncovered through the performance tracing. +In the first part the individual findings are summarized and if possible grouped by their common cause. +The second part addresses each cause and connects it to the relevant architecture decisions, while explaining the reason for it and discussing possible alternatives. + +### Discovered issues + +During the qualitative evaluation several features did not meet the expectations of the users. +The survey also hinted performance issues that were solidified by the results of the quantitative analysis. + +#### Diagnostics + +First, participants criticized [@sec:diagnostics@res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. +While Contracts are a central element of Nickel and relied upon to validate data, the language server does not actually warn about contract breaches. +Yet, while contracts and their application looks similar to types, contracts are a dynamic language element which are dynamically applied during evaluation. +Therefore it is not possible to determine whether a value conforms to a contract without evaluation of the contract. +NLS's is integrated with Nickel's type-checking mechanism which precedes evaluation and provides only a static representation of the source code. +In order to support diagnostics for contracts NLS would need to locally evaluate arbitrary code that makes up contracts. +However, contracts can not be evaluated entirely locally as they may transitively depend on other contracts. +This is particularly true for a file's output value. +Additionally, Contracts can implement any sort of complex computation including unbound recursion. +Due to these caveats, evaluating contracts as part of NLS's analysis implies the evaluation of the entire code which was considered a possibly significant impact to the performance. +As layed out above evaluating contracts locally is no option either. +It is not only challenging to collect the minimal context of the Contract, the context may in fact be the entire program. +An alternative option is to provide the ability to apply contracts manually using an LSP feature called "Code Lenses". +Code Lenses are displayed by editors as annotations allowing the user to manually execute an associated action. + + + +#### Cross File Navigation + +In both cases `Jump-To-Definition` and `Find-References` surveyed users requested support for cross file navigation. +In particular, finding the definition of a record field of an imported record should navigate the editor to the respective file as symbolized in [@lst:imported-record-access]. + +```{.nickel #lst:imported-record-access caption="Minimal example of cross file referencing"} +// file_a.ncl + +let b = import "./b.ncl" in b.field + | + +------+ + | +----------------------------------- | + | +// file_b.ncl | + | +{ | + field = "field value"; | +} ^ | + +---------------------------------+ +``` + +The resolution of imported values is done at evaluation time, the AST therefore only contains nodes representing the concept of an import but no not reference elements of that file. +NLS does ingest the the AST without resolving these imports manually. +The type checking module underlying NLS still recurses into imported files to check their formal correctness. +As a result it would be possible for a NLS to resolve these links as an additional step in the post processing by either inserting atificial linearization items [@sec:linearization] or merging both files linearization entirely. + +#### Autocompletion + +Another criticized element of NLS was the autocompletion feature. +In the survey, participants mentioned the lack of additional information and distinction of elements as well as NLS inability to provide completion for record fields. +In Nickel, record access is declared by a period. +An LSP client can to configured to ask for completions when such an access character is entered additionally to manual requests by the user. +The language server is then responsible to provide a list of completion candidates depending on the context, i.e. the position. +[Section #sec:completion] describes how NLS resolves this kind of request. +NLS just lists all identifiers of declarations that are in scope at the given position. +Notably, it does not take the preceding element into account as additional context. +To support completing records, the server must first be aware of separating tokens such as the period symbol, check whether the current position is part of a token that is preceded by a separator and finally resolve the parent element to a record. + +#### Performance From 37db8d3b24a7a230ffd743615efe14204b7455d0 Mon Sep 17 00:00:00 2001 From: ysndr Date: Sun, 22 May 2022 18:36:18 +0200 Subject: [PATCH 42/51] Add performance discussion --- chapter/evaluation.md | 45 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 77e08ba6..4c50862c 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -421,3 +421,48 @@ Notably, it does not take the preceding element into account as additional conte To support completing records, the server must first be aware of separating tokens such as the period symbol, check whether the current position is part of a token that is preceded by a separator and finally resolve the parent element to a record. #### Performance + +In the experience survey performance was pointed out as a potential issue. +Especially in connection with the diagnostics and hover feature. +NLS was described to "queue a lot of work and not respond" and show different performance signatures depending on its usage. +While comands resolved "instantaniously" on unmodified files, editing a file causes high CPU usage and generally "very slow" responses. +An analysis of the measured runtime of $16761$ requests confirmed that observation. +Both Hover and Update requests showed a wide range of latencies with some reaching more than two minutes. +However, the data distribution also confirmed that latencies for most requests except `didOpen` are distributed well below one millisecond. +The `didOpen` requests which are associated with the linearization process [@sec:linearization] peak around $1ms$ but longer latencies remain frequent [@fig:latency-distribution]. +Lookig deeper into the individual features, reveals signs of the aforementioned "stacking". +As discussed in [@sec:special-cases] subsequent requests exhibit increasing processing times especially during peak usage. + +This behavior is caused by the architecture of the LSP and NLS' processing method. +The Language Server Protocol is a synchronous protocol which requires the processing of all requests FIFO order. +In effect, every request is delayed until previous requests are handled. +This effect is particularly strong as the server is faced with a high volume. +In the case of the trace for `didOpen` events the delay effect is greater than for other methods as `didOpen` is associated with a full analysis of the entire file. +NLS architecture is heaviliy influenced by the desire to reuse as many elements of the Nickel runtime as possible to maintain feature parity with the evolving language core. +Consequently file updates invoke a complete eager analysis of the contents; +The entire document is parsed, typechecked and recorded to a linearization everytime. +In contrast, all other methods rely on the linearization of a document which allows them to use a binary search to efficiently lookup elements in logarithmic time. +Additionally, all requests regardless of their type are subject to the same queue. +Given that `didOpen` requests make up $>80%$ of the recorded events, suggests that other events are heavily slowed down colaterally. + +Multiple ways exists to address this issue by reducing the average queue size. +The most approachable way to reduce queue sizes is to reduce the number of requests the server needs to handle. +The `didOpen` trace elements actually represents the joint processing path of initial file openings, and changes. +NLS configures clients to signal changes both on save as well as following editor defined "change". +The fact that it is the editor's responsibility to define what constitutes a changes means that some editors send invoke the server on every key press. +In [@fig:correlation-opens] signs for such a behavior can be seen as local increases of processing time as the document grows. +Hence, restricting analysis to happen only as the user saves the document could potentially reduce the load of requests substatially. +Yet, many users prefered automatic processing to happen while they type. +To server this pattern, NLS could implement a debouncing mechanism for the processing of document changes. +The messages associated to document changes and openings are technically no requests but notifications. +The specification of JSON-RPC which the LSP is based on defines that notifications are not allowing a server response. +Clients can not rely on the execution of associated procedures. +In effect, a language server like NLS, where each change notification contains the entire latest document, may skip the processing of changes. +In practice, NLS could skip such queue items if a more recent version of the file is notified later in the queue. +The queue size can also be influenced by reducing the processing time. +Other language servers such as the rust-analyzer [@rust-analyzer] chose to process documents lazily. +Update requests incrementally change an internal model which other requests use as a basis to invoke targeted analysis, resolve elements and more. +The entire model is based on in incremental computation model which automates memoization of requests. +This method however requires rust-analyzer to reimplement core components of rust to support incrementality. +Therefore if one accepts to implement an incremental model of Nickel (including parsing and type checking) to enable incremental analysis in NLS, switching to a lazy model is a viable method to reduce the processing time of change notifications and shorten the queue. + From 2a8068cd875227bdc616453bcd6a857528a116cb Mon Sep 17 00:00:00 2001 From: ysndr Date: Thu, 26 May 2022 01:35:44 +0200 Subject: [PATCH 43/51] Flatten discussion structure --- chapter/evaluation.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 4c50862c..b85c1281 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -357,12 +357,10 @@ This section discusses the issues raised during the survey and uncovered through In the first part the individual findings are summarized and if possible grouped by their common cause. The second part addresses each cause and connects it to the relevant architecture decisions, while explaining the reason for it and discussing possible alternatives. -### Discovered issues - During the qualitative evaluation several features did not meet the expectations of the users. The survey also hinted performance issues that were solidified by the results of the quantitative analysis. -#### Diagnostics +### Diagnostics First, participants criticized [@sec:diagnostics@res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. While Contracts are a central element of Nickel and relied upon to validate data, the language server does not actually warn about contract breaches. @@ -381,7 +379,7 @@ Code Lenses are displayed by editors as annotations allowing the user to manuall -#### Cross File Navigation +### Cross File Navigation In both cases `Jump-To-Definition` and `Find-References` surveyed users requested support for cross file navigation. In particular, finding the definition of a record field of an imported record should navigate the editor to the respective file as symbolized in [@lst:imported-record-access]. @@ -408,7 +406,7 @@ NLS does ingest the the AST without resolving these imports manually. The type checking module underlying NLS still recurses into imported files to check their formal correctness. As a result it would be possible for a NLS to resolve these links as an additional step in the post processing by either inserting atificial linearization items [@sec:linearization] or merging both files linearization entirely. -#### Autocompletion +### Autocompletion Another criticized element of NLS was the autocompletion feature. In the survey, participants mentioned the lack of additional information and distinction of elements as well as NLS inability to provide completion for record fields. @@ -420,7 +418,7 @@ NLS just lists all identifiers of declarations that are in scope at the given po Notably, it does not take the preceding element into account as additional context. To support completing records, the server must first be aware of separating tokens such as the period symbol, check whether the current position is part of a token that is preceded by a separator and finally resolve the parent element to a record. -#### Performance +### Performance In the experience survey performance was pointed out as a potential issue. Especially in connection with the diagnostics and hover feature. @@ -465,4 +463,3 @@ Update requests incrementally change an internal model which other requests use The entire model is based on in incremental computation model which automates memoization of requests. This method however requires rust-analyzer to reimplement core components of rust to support incrementality. Therefore if one accepts to implement an incremental model of Nickel (including parsing and type checking) to enable incremental analysis in NLS, switching to a lazy model is a viable method to reduce the processing time of change notifications and shorten the queue. - From 609a335889cbd6bb1736c8cdb7fbba9dc411d495 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 17:59:01 +0200 Subject: [PATCH 44/51] Fix Discussion Headline --- chapter/evaluation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index b85c1281..cad472b5 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -351,6 +351,7 @@ Additionally, color coding the individual requests by time reveals that the trac Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig:correlation-references; @fig:correlation-definitions] returns similar findings, although the columns remain more compact in comparison to the Completions method. In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. + ## Discussion This section discusses the issues raised during the survey and uncovered through the performance tracing. From 140693bf13471b33302d02e6508471f5823a3836 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 18:01:56 +0200 Subject: [PATCH 45/51] Address typos in discussion --- chapter/evaluation.md | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index cad472b5..af0b8d57 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -366,14 +366,14 @@ The survey also hinted performance issues that were solidified by the results of First, participants criticized [@sec:diagnostics@res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. While Contracts are a central element of Nickel and relied upon to validate data, the language server does not actually warn about contract breaches. Yet, while contracts and their application looks similar to types, contracts are a dynamic language element which are dynamically applied during evaluation. -Therefore it is not possible to determine whether a value conforms to a contract without evaluation of the contract. +Therefore, it is not possible to determine whether a value conforms to a contract without evaluation of the contract. NLS's is integrated with Nickel's type-checking mechanism which precedes evaluation and provides only a static representation of the source code. In order to support diagnostics for contracts NLS would need to locally evaluate arbitrary code that makes up contracts. However, contracts can not be evaluated entirely locally as they may transitively depend on other contracts. This is particularly true for a file's output value. Additionally, Contracts can implement any sort of complex computation including unbound recursion. Due to these caveats, evaluating contracts as part of NLS's analysis implies the evaluation of the entire code which was considered a possibly significant impact to the performance. -As layed out above evaluating contracts locally is no option either. +As laid out above evaluating contracts locally is no option either. It is not only challenging to collect the minimal context of the Contract, the context may in fact be the entire program. An alternative option is to provide the ability to apply contracts manually using an LSP feature called "Code Lenses". Code Lenses are displayed by editors as annotations allowing the user to manually execute an associated action. @@ -403,9 +403,9 @@ let b = import "./b.ncl" in b.field ``` The resolution of imported values is done at evaluation time, the AST therefore only contains nodes representing the concept of an import but no not reference elements of that file. -NLS does ingest the the AST without resolving these imports manually. +NLS does ingest the AST without resolving these imports manually. The type checking module underlying NLS still recurses into imported files to check their formal correctness. -As a result it would be possible for a NLS to resolve these links as an additional step in the post processing by either inserting atificial linearization items [@sec:linearization] or merging both files linearization entirely. +As a result it would be possible for a NLS to resolve these links as an additional step in the post-processing by either inserting artificial linearization items [@sec:linearization] or merging both files' linearization entirely. ### Autocompletion @@ -424,12 +424,12 @@ To support completing records, the server must first be aware of separating toke In the experience survey performance was pointed out as a potential issue. Especially in connection with the diagnostics and hover feature. NLS was described to "queue a lot of work and not respond" and show different performance signatures depending on its usage. -While comands resolved "instantaniously" on unmodified files, editing a file causes high CPU usage and generally "very slow" responses. +While commands resolved "instantaneously" on unmodified files, editing a file causes high CPU usage and generally "very slow" responses. An analysis of the measured runtime of $16761$ requests confirmed that observation. Both Hover and Update requests showed a wide range of latencies with some reaching more than two minutes. However, the data distribution also confirmed that latencies for most requests except `didOpen` are distributed well below one millisecond. The `didOpen` requests which are associated with the linearization process [@sec:linearization] peak around $1ms$ but longer latencies remain frequent [@fig:latency-distribution]. -Lookig deeper into the individual features, reveals signs of the aforementioned "stacking". +Looking deeper into the individual features, reveals signs of the aforementioned "stacking". As discussed in [@sec:special-cases] subsequent requests exhibit increasing processing times especially during peak usage. This behavior is caused by the architecture of the LSP and NLS' processing method. @@ -437,21 +437,21 @@ The Language Server Protocol is a synchronous protocol which requires the proces In effect, every request is delayed until previous requests are handled. This effect is particularly strong as the server is faced with a high volume. In the case of the trace for `didOpen` events the delay effect is greater than for other methods as `didOpen` is associated with a full analysis of the entire file. -NLS architecture is heaviliy influenced by the desire to reuse as many elements of the Nickel runtime as possible to maintain feature parity with the evolving language core. -Consequently file updates invoke a complete eager analysis of the contents; -The entire document is parsed, typechecked and recorded to a linearization everytime. +NLS architecture is heavily influenced by the desire to reuse as many elements of the Nickel runtime as possible to maintain feature parity with the evolving language core. +Consequently, file updates invoke a complete eager analysis of the contents; +The entire document is parsed, type checked and recorded to a linearization every time. In contrast, all other methods rely on the linearization of a document which allows them to use a binary search to efficiently lookup elements in logarithmic time. Additionally, all requests regardless of their type are subject to the same queue. -Given that `didOpen` requests make up $>80%$ of the recorded events, suggests that other events are heavily slowed down colaterally. +Given that `didOpen` requests make up $>80%$ of the recorded events, suggests that other events are heavily slowed down collaterally. -Multiple ways exists to address this issue by reducing the average queue size. +Multiple ways exist to address this issue by reducing the average queue size. The most approachable way to reduce queue sizes is to reduce the number of requests the server needs to handle. The `didOpen` trace elements actually represents the joint processing path of initial file openings, and changes. -NLS configures clients to signal changes both on save as well as following editor defined "change". -The fact that it is the editor's responsibility to define what constitutes a changes means that some editors send invoke the server on every key press. +NLS configures clients to signal changes both on save and following editor defined "change". +The fact that it is the editor's responsibility to define what constitutes a change means that some editors send invoke the server on every key press. In [@fig:correlation-opens] signs for such a behavior can be seen as local increases of processing time as the document grows. -Hence, restricting analysis to happen only as the user saves the document could potentially reduce the load of requests substatially. -Yet, many users prefered automatic processing to happen while they type. +Hence, restricting analysis to happen only as the user saves the document could potentially reduce the load of requests substantially. +Yet, many users preferred automatic processing to happen while they type. To server this pattern, NLS could implement a debouncing mechanism for the processing of document changes. The messages associated to document changes and openings are technically no requests but notifications. The specification of JSON-RPC which the LSP is based on defines that notifications are not allowing a server response. @@ -461,6 +461,6 @@ In practice, NLS could skip such queue items if a more recent version of the fil The queue size can also be influenced by reducing the processing time. Other language servers such as the rust-analyzer [@rust-analyzer] chose to process documents lazily. Update requests incrementally change an internal model which other requests use as a basis to invoke targeted analysis, resolve elements and more. -The entire model is based on in incremental computation model which automates memoization of requests. -This method however requires rust-analyzer to reimplement core components of rust to support incrementality. -Therefore if one accepts to implement an incremental model of Nickel (including parsing and type checking) to enable incremental analysis in NLS, switching to a lazy model is a viable method to reduce the processing time of change notifications and shorten the queue. +The entire model is based on in incremental computation model which automates memorization of requests. +This method however requires rust-analyzer to reimplement core components of rust to support incrementally. +Therefore, if one accepts to implement an incremental model of Nickel (including parsing and type checking) to enable incremental analysis in NLS, switching to a lazy model is a viable method to reduce the processing time of change notifications and shorten the queue. From 0545d294b39e4420cf9d03c83e5753340e9cef09 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 18:18:15 +0200 Subject: [PATCH 46/51] Resolving typos across the whole document --- chapter/evaluation.md | 45 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index af0b8d57..6ed90b73 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -44,11 +44,11 @@ In fact, runtime behavior was a central assumption underlying the server archite As discussed in [@sec:considerations] NLS follows an eager, non-incremental processing model. While incremental implementations are more efficient, as they do not require entire files to be updated, they require explicit language support, i.e., an incremental parser and analysis. Implementing these functions exceeds the scope of this work. -Choosing a non-incremental model on the other hand allowed to reuse entire modules of the Nickel language. +Choosing a non-incremental model on the other hand allowed reusing entire modules of the Nickel language. The analysis itself can be implemented both in a lazy or eager fashion. Lazy analysis implies that the majority of information is resolved only upon request instead of ahead of time. That is, an LSP request is delayed by the analysis before a response is made. -Some lazy models also support memoizing requests, avoiding to recompute previously requested values. +Some lazy models also support memorizing requests, avoiding recomputing previously requested values. However, eager approaches preprocess the file ahead of time and store the analysis results such that requests can be handled mostly through value lookups. To fit Nickels' type-checking model and considering that in a typical Nickel workflow, the analysis should still be reasonably efficient, the eager processing model was chosen over a lazy one. @@ -61,7 +61,7 @@ Usability proves hard to quantify, as it is tightly connected to subjective perc The structure of the survey is guided by two additional objectives, endorsing the separation of individual features. On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. This data is important for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) and a generic basis for other projects. -On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:implementation), the implementation of this central structure is an essential consideration. +On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:implementation]), the implementation of this central structure is an essential consideration. The survey should therefore also uncover apparent problems with this architecture. This entails the use of language abstractions (cf. [@sec:linearization]) and the integration of Nickel core functions such as the type checking procedure. @@ -69,7 +69,7 @@ The quantitative study in contrast focuses on measurable performance. Similarly to the survey-based evaluation, the quantitative study should reveal insight for different features and tasks separately. The focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. -### Qualitative Evaluation Setup +### Qualitative Evaluation Setup {#sec:qualitative@methods} Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. In order to get a clear picture of the users' needs and expectations independently of the experience, the survey consists of two parts -- a pre-evaluation and final survey. @@ -82,7 +82,7 @@ In order to get a clear picture of the users' needs and expectations independent The pre-evaluation introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability], namely: -##### Expected behaviour +##### Expected behavior 1. Code completion Suggest identifiers, methods or values at the cursor position. @@ -128,7 +128,7 @@ The second category asked participants to explicitly reflect on their expectatio > ◯ The feature did not work at all\ > ◯ Little of my expectation was met\ -> ◯ Some expectations were mete, enough to keep using NLS for this feature\ +> ◯ Some expectations were met, enough to keep using NLS for this feature\ > ◯ Most to all expectations were met > ◯ NLS surpassed the expectations > ◯ Other @@ -139,14 +139,14 @@ In the final part participants could elaborate on their answers. > What is missing, what did they not expect? -### Quantitative +### Quantitative {#sec:quantitative@methods} To address the performance metrics introduced in [@sec:metrics], a quantitative study was conducted, that analyzes latencies in the LSP-Server-Client communication. The study complements the subjective reports collected through the survey (cf. [@sec:experience-survey]). The evaluation is possible due to the inclusion of a custom tracing module in NLS. The tracing module is used to create a report for every request, containing the processing time and a measure of the size of the analyzed document. If enabled, NLS records an incoming request with an identifier and time stamp. -While processing the request, it adds additional data to the record, i.e., the type of request, the size of the linearization (cf. [@sec:linearization]) or processed file and possible errors that occured during the process. +While processing the request, it adds additional data to the record, i.e., the type of request, the size of the linearization (cf. [@sec:linearization]) or processed file and possible errors that occurred during the process. Once the server replies to a request, it records the total response time and writes the entire record to an external file. The tracing approach narrows the focus of the performance evaluation to the time spent by NLS. @@ -166,17 +166,17 @@ The pre-evaluation aimed to catch the users' expected features and behaviors, wh #### Pre-Evaluation -In the initial free assessment of expected features (c.f. [#sec:expected-features]) the participants unanimously identified four of the six language server capabilities that guided the implementation of the project (c.f. [@sec:commands-and-notifications, @langserverorg]): Type-information on hover, automactic diagnostics, Code Completion and Jump-to-Definition. +In the initial free assessment of expected features (c.f. [#sec:expected-features]) the participants unanimously identified four of the six language server capabilities that guided the implementation of the project (c.f. [@sec:commands-and-notifications, @langserverorg]): Type-information on hover, automatic diagnostics, Code Completion and Jump-to-Definition. The other two features, Find-References and Workspace/Document Symbols on the contrary were sparingly commented. -Some participands noted that they did not use these capabilities. +Some participants noted that they did not use these capabilities. ##### Type-information on hover Hovering is expected to work on values as well as functions. -For values it is desired to show types including applied contracts, documentation and defautl values. -On functions it should display the function's signature and documentation. -Additionally hovering an item desireably visualizes the scope of the item, i.e. where it is available. +For values, it is desired to show types including applied contracts, documentation and default values. +On functions, it should display the function's signature and documentation. +Additionally, hovering an item desirably visualizes the scope of the item, i.e. where it is available. ##### Diagnostics @@ -185,15 +185,15 @@ Diagnostics are expected to include error messages signalling syntax and type er The diagnostics should show up at the correct positions in the code and "suggest how to fix" mistakes. Code linting was named as a possible extension to error reporting. This would include warnings about bad code style -- formatting, casing conventions -- unused variables, deprecated code and undocumented elements. -Moreover structural analysis was conceived to allow finding structural issues and help fixing them +Moreover, structural analysis was conceived to allow finding structural issues and help to fix them In either case the diagnostic should be produced "On-the-fly" while typing or upon saving the document. ##### Code Completion Code Completion was described as a way to chose from possible completion candidates of options. Completable items can be variable names, record fields, types or functions. -Besides, Participants conceived filtereing or prioritizing of candidates by type if applied as function arguments. -Finally, the completion context could guide priorization as well as auto-generation of contract and function skeletons. +Besides, Participants conceived filtering or prioritizing of candidates by type if applied as function arguments. +Finally, the completion context could guide prioritization as well as auto-generation of contract and function skeletons. ##### Jump-to-Definition @@ -203,7 +203,7 @@ The ability to define self referencing records was however conceded to be a chal ##### Other features -Syntax highlighting and code formatting as well as error tolerance were named as further desireable features of a language server beyond the explicitly targeted features. +Syntax highlighting and code formatting as well as error tolerance were named as further desirable features of a language server beyond the explicitly targeted features. Error tolerance was detailed as the capability of the language server to continue processing and delivering analysis of invalid sources. For invalid files a language server should still be able to provide its functionality for the correct parts of the program. @@ -329,17 +329,18 @@ Finally, document linearization as associated with the `textDocument/didOpen` me #### Special cases
-![Runtime latencies of completion requests at differnet linearization sizes](log_analysis/figures/correlation-completions.svg){#fig:correlation-completions width=50%} -![Runtime latencies of hover requests at differnet linearization sizes](log_analysis/figures/correlation-hovers.svg){#fig:correlation-hovers width=50%} -![Runtime latencies of find-references requests at differnet linearization sizes](log_analysis/figures/correlation-references.svg){#fig:correlation-references width=50%} -![Runtime latencies of jump-to-definition requests at differnet linearization sizes](log_analysis/figures/correlation-definitions.svg){#fig:correlation-definition width=50%} +![Runtime latencies of completion requests at different linearization sizes](log_analysis/figures/correlation-completions.svg){#fig:correlation-completions width=50%} +![Runtime latencies of hover requests at different linearization sizes](log_analysis/figures/correlation-hovers.svg){#fig:correlation-hovers width=50%} + +![Runtime latencies of find-references requests at different linearization sizes](log_analysis/figures/correlation-references.svg){#fig:correlation-references width=50%} +![Runtime latencies of jump-to-definition requests at different linearization sizes](log_analysis/figures/correlation-definitions.svg){#fig:correlation-definition width=50%} Runtime latencies of different linearization based methods
-![Runtime latencies of file update handlings at different file sizes](log_analysis/figures/correlation-opens.svg){#fig:correlation-opens width=50%} +![Runtime latencies of file update handling at different file sizes](log_analysis/figures/correlation-opens.svg){#fig:correlation-opens width=50%} Setting the runtime of completion requests in relation to the linearization size on which the command was performed shows no clear correlation between the dimensions. From aeaa5d230f1e65e9fe4b86b42484ac283b6a3009 Mon Sep 17 00:00:00 2001 From: ysndr Date: Fri, 27 May 2022 18:19:06 +0200 Subject: [PATCH 47/51] Remove empty process section --- chapter/evaluation.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 6ed90b73..e4fb3031 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -154,8 +154,6 @@ Consequently, the performance evaluation is independent of the LSP client (edito Unlike differences in hardware which affects all operations similarly, LSP clients may implement different behaviors that may cause editor-specific biases. For instance, the LSP does not specify the frequency at which file changes are detected, which in turn can lead to request queuing depending on the editor used. -## Process - ## Results ### Qualitative From cb5af04d2562451c9f33e6088b31cd57a7c7cb46 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Mon, 30 May 2022 01:13:25 +0200 Subject: [PATCH 48/51] Fix header ids --- chapter/evaluation.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index e4fb3031..590e79db 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -69,7 +69,7 @@ The quantitative study in contrast focuses on measurable performance. Similarly to the survey-based evaluation, the quantitative study should reveal insight for different features and tasks separately. The focus lies on uncovering potential spikes in latencies, and making empirical observations about the influence of Nickel file sizes. -### Qualitative Evaluation Setup {#sec:qualitative@methods} +### Qualitative Evaluation Setup {#sec:qualitative-methods} Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. In order to get a clear picture of the users' needs and expectations independently of the experience, the survey consists of two parts -- a pre-evaluation and final survey. @@ -139,7 +139,7 @@ In the final part participants could elaborate on their answers. > What is missing, what did they not expect? -### Quantitative {#sec:quantitative@methods} +### Quantitative {#sec:quantitative-methods} To address the performance metrics introduced in [@sec:metrics], a quantitative study was conducted, that analyzes latencies in the LSP-Server-Client communication. The study complements the subjective reports collected through the survey (cf. [@sec:experience-survey]). @@ -242,33 +242,33 @@ The general satisfaction with each feature was answered in the same polarized ma A slight majority of responses falls into the upper half of the possible spectrum. Two of the features reported without function in the preceding questions were given the lowest possible rating. -##### Hover {#sec:hover@res} +##### Hover {#sec:hover-res} As apparent in ([@fig:results-comp-experience]), most participants experienced unexpected behavior by the LSP when using the hover functionality. In the comments, extraneous debug output and incorrect displaying of the output by the IDE are pointed out as concrete examples. However, one answer suggests that the feature was working with "usually useful" output. -##### Diagnostics {#sec:diagnostics@res} +##### Diagnostics {#sec:diagnostics-res} While the diagnostics shown by NLS appear to behave unexpectedly for some users in [@fig:results-comp-experience], no user felt deterred from keep using NLS for it as displayed in [@fig:results-comp-expectations]. Some respondents praised the "quick" and "direct feedback" as well as the visual error markers pointing to the exact locations of possible issues. On the contrary, others mentioned "unclear messages" and pointed out that contracts were not checked by the Language Server. Moreover, a performance issue was brought up noting that in some situations NLS "queues a lot of work and does not respond". -##### Code Completion {#sec:code-completion@res} +##### Code Completion {#sec:code-completion-res} Comments about the Code Completion feature were unanimously critical. Some participants noted the little gained "value over the token based completion built into the editor" while others specifically pointed at "missing type information and docs". Additionally, record field completion was found to be missing, albeit highly valued. -##### Document Navigation {#sec:document-navigation@res} +##### Document Navigation {#sec:document-navigation-res} Results and comments about the Go-To-Definition and Find-References were polarized. Some users experienced unexpected behavior or were unable to use the feature at all (cf. [@fig:results-comp-experience]). Similarly, the comments on one hand suggest that "the feature works well and is quick" while on the other mention inconsistencies and unavailability. More specifically, cross file navigation was named an important missing feature. -##### General Performance {#sec:general-performance@res} +##### General Performance {#sec:general-performance-res} The responses to the general performance suggest that NLS' performance is largely dependent on its usage. On unmodified files queries were reported to evaluate "instantaneously". @@ -362,7 +362,7 @@ The survey also hinted performance issues that were solidified by the results of ### Diagnostics -First, participants criticized [@sec:diagnostics@res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. +First, participants criticized [@sec:diagnostics-res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. While Contracts are a central element of Nickel and relied upon to validate data, the language server does not actually warn about contract breaches. Yet, while contracts and their application looks similar to types, contracts are a dynamic language element which are dynamically applied during evaluation. Therefore, it is not possible to determine whether a value conforms to a contract without evaluation of the contract. From 7091da4b8ef0ac5e9809f6aedf1b4e81034a6e0c Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Mon, 30 May 2022 01:14:16 +0200 Subject: [PATCH 49/51] Fix refs --- chapter/evaluation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 590e79db..f1c5fa98 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -71,7 +71,7 @@ The focus lies on uncovering potential spikes in latencies, and making empirical ### Qualitative Evaluation Setup {#sec:qualitative-methods} -Inspired by the work of Leimeister in [@leimeister], a survey aims to provide practical insights into the experience of future users. +Inspired by the work of Leimeister in [@leimeisterLanguageServerIDE2020], a survey aims to provide practical insights into the experience of future users. In order to get a clear picture of the users' needs and expectations independently of the experience, the survey consists of two parts -- a pre-evaluation and final survey. #### Pre-Evaluation @@ -458,7 +458,7 @@ Clients can not rely on the execution of associated procedures. In effect, a language server like NLS, where each change notification contains the entire latest document, may skip the processing of changes. In practice, NLS could skip such queue items if a more recent version of the file is notified later in the queue. The queue size can also be influenced by reducing the processing time. -Other language servers such as the rust-analyzer [@rust-analyzer] chose to process documents lazily. +Other language servers such as the rust-analyzer [@therustprogramminglanguageBringingGreatIDE] chose to process documents lazily. Update requests incrementally change an internal model which other requests use as a basis to invoke targeted analysis, resolve elements and more. The entire model is based on in incremental computation model which automates memorization of requests. This method however requires rust-analyzer to reimplement core components of rust to support incrementally. From bb8c396fd51ef48e2af4665fbd3f5ab91b0b45a4 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Sun, 5 Jun 2022 22:56:47 +0200 Subject: [PATCH 50/51] Evaluation: Address Martin's Review Comments (cherry picked from commit 377c9e0d7d6663ed0a073e256162e8ee54608908) --- chapter/evaluation.md | 261 +-- log_analysis/figures/ecdf-by-file-size.svg | 2155 ++++++++++++++++++++ log_analysis/figures/ecdf-by-lin-size.svg | 1702 ++++++++++++++++ 3 files changed, 3999 insertions(+), 119 deletions(-) create mode 100644 log_analysis/figures/ecdf-by-file-size.svg create mode 100644 log_analysis/figures/ecdf-by-lin-size.svg diff --git a/chapter/evaluation.md b/chapter/evaluation.md index f1c5fa98..9d753ceb 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -1,6 +1,6 @@ # Evaluation -[Section @sec:implementation] described the implementation of the Nickel Language Server addressing the first research question stated in [@sec:research-questions]. +[Section @sec:design-and-implementation] described the implementation of the Nickel Language Server addressing the first research question stated in [@sec:research-questions]. Proving the viability of the result and answering the second research question demands an evaluation of different factors. Earlier, the most important metrics of interest were identified as: @@ -33,24 +33,26 @@ In particular, it details the survey ([@sec:qualitative]) which was conducted wi ## Evaluation Considerations -Different methods to evaluate the abovementioned metrics were considered. +The evaluation considers different methods to assess the abovementioned metrics. While quantifying user experience yields statistically sound insights about the studied subject, it fails to point out specific user needs. Therefore, this work employs a more subjective evaluation based on a standardized experience report focusing on individual features. Contrasting the expectations highlights well executed, immature or missing features. This allows more actionable planning of the future development to meet user expectations. -On the other hand it is more approachable to track runtime performance objectively through time measurements. -In fact, runtime behavior was a central assumption underlying the server architecture. -As discussed in [@sec:considerations] NLS follows an eager, non-incremental processing model. -While incremental implementations are more efficient, as they do not require entire files to be updated, they require explicit language support, i.e., an incremental parser and analysis. +Runtime performance on the other hand is a quantifiable metric that is tracked objectively through time measurements. +Runtime behavior was a central assumption during the conception of the underlying server architecture. +As discussed in [@sec:code-analysis] NLS follows an eager, non-incremental processing model. + +Measuring the latency under realistic use, allows drawing conclusions about the implementation of this model. + + ## Methods @@ -61,7 +63,7 @@ Usability proves hard to quantify, as it is tightly connected to subjective perc The structure of the survey is guided by two additional objectives, endorsing the separation of individual features. On one hand, the survey should inform the future development of NLS; which feature has to be improved, which bugs exist, what do users expect. This data is important for NLS both as an LSP implementation for Nickel (affecting the perceived maturity of Nickel) and a generic basis for other projects. -On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:implementation]), the implementation of this central structure is an essential consideration. +On the other hand, since all features are essentially queries to the common linearization data structure (cf. [@sec:lsp-server-implementation]), the implementation of this central structure is an essential consideration. The survey should therefore also uncover apparent problems with this architecture. This entails the use of language abstractions (cf. [@sec:linearization]) and the integration of Nickel core functions such as the type checking procedure. @@ -72,30 +74,36 @@ The focus lies on uncovering potential spikes in latencies, and making empirical ### Qualitative Evaluation Setup {#sec:qualitative-methods} Inspired by the work of Leimeister in [@leimeisterLanguageServerIDE2020], a survey aims to provide practical insights into the experience of future users. -In order to get a clear picture of the users' needs and expectations independently of the experience, the survey consists of two parts -- a pre-evaluation and final survey. - -#### Pre-Evaluation +In order to get a clear picture of the users' needs and expectations independently of the experience, the evaluation consists of three parts. +The center of the evaluation is a two-hour-long online workshop during which participants are introduced to the Nickel language. +As part of the workshop participants solve small exercises with the NLS installed. +The workshop is framed by two surveys. +Prior to the practical experience a survey assesses the general expectations to the Language Server. +After the workshop the participants document their experience with the NLS. +Both surveys are available to Tweag employees through Google Forms. -##### Expected features +#### Pre-Workshop Evaluation -The pre-evaluation introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. +The Pre-Workshop Survey introduced participants in brief to the concept of language servers and asked them to write down their understanding of several LSP features. In total, six features were surveyed corresponding to the implementation as outlined in [@sec:capability], namely: -##### Expected behavior -1. Code completion +1. Code completion\ Suggest identifiers, methods or values at the cursor position. -2. Hover information +2. Hover information\ Present additional information about an item under the cursor, i.e., types, contracts and documentation. -3. Jump to definition +3. Jump to definition\ Find and jump to the definition of a local variable or identifier. -4. Find references +4. Find references\ List all usages of a defined variable. -5. Workspace symbols +5. Workspace symbols\ List all variables in a workspace or document. -6. Diagnostics +6. Diagnostics\ Analyze source code, i.e., parse and type check and notify the LSP Client if errors arise. + + +Items first introduce a feature on a high level followed by asking the participant to describe their ideal implementation of the feature. The item for the "Hover" feature for instance reads as follows: > Editors can show some additional information about code under the cursor. @@ -103,18 +111,23 @@ The item for the "Hover" feature for instance reads as follows: > > What kind of information do you expect to see when hovering code? Does the position or kind of element matter? If so, how? -Items first introduce a feature on a high level followed by asking the participant to describe their ideal implementation of the feature. +In total the survey was filled in by eight individuals working at Tweag. +Out of these, five were part of the team developing the Nickel Language. #### Experience Survey -For the final survey, interested participants at Tweag were invited to a workshop introducing Nickel. - -The workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS in a more natural setting. -Following the workshop, participants filled in a second survey which focused on three main aspects: +Interested participants at Tweag were invited to a workshop introducing Nickel which was attended by four. +During this remote workshop participants were asked to solve simple coding exercises supported by the Language Server and the moderator. +The two-hour-long workshop allowed participants unfamiliar with the Nickel language to use the language and experience NLS in a more natural setting. +Following the workshop, participants filled in a second survey. +In this survey participants described their perception of NLS' performance and stability. +Both items were represented by linear scales that span from "Very slow response" to "Very quick response" and "Never Crashed" to "Always Crashed" respectively. +Additionally, for every single surveyed feature the survey focuses on three main aspects: -First, the general experience of every individual feature. -Without weighing their in expectations, the participants were asked to give a short statement of their experience. -The item consists of a loose list of statements with the aim to achieve a rough quality classification: +##### General Experience + +Without weighing their in expectations, the participants were asked to give a short statement about their experience of the individual features. +The item consists of a list of statements representing distinct quality classifications: > - [ ] The feature did not work at all > - [ ] The feature behaved unexpectedly @@ -122,26 +135,29 @@ The item consists of a loose list of statements with the aim to achieve a rough > - [ ] The feature worked without an issue > - [ ] Other -The following items survey the perceived performance and stability. -The items were implemented as linear scales that span from "Very slow response" to "Very quick response" and "Never Crashed" to "Always Crashed" respectively. +##### Satisfaction of Expectations + The second category asked participants to explicitly reflect on their expectations: -> ◯ The feature did not work at all\ -> ◯ Little of my expectation was met\ -> ◯ Some expectations were met, enough to keep using NLS for this feature\ -> ◯ Most to all expectations were met -> ◯ NLS surpassed the expectations -> ◯ Other +> - [ ] The feature did not work at all +> - [ ] Little of my expectation was met +> - [ ] Some expectations were met, enough to keep using NLS for this feature +> - [ ] Most to all expectations were met +> - [ ] NLS surpassed the expectations +> - [ ] Other -In the final part participants could elaborate on their answers. -> Why were they (not) satisfied?\ -> What is missing, what did they not expect? +##### Comments +In the final part participants could elaborate on the answers given in the preceding items. + +> Why were they (not) satisfied? +> +> What is missing, what did they not expect? ### Quantitative {#sec:quantitative-methods} -To address the performance metrics introduced in [@sec:metrics], a quantitative study was conducted, that analyzes latencies in the LSP-Server-Client communication. +To address the performance metrics introduced in [@sec:evaluation-considerations], a quantitative study was conducted, that analyzes latencies in the LSP-Server-Client communication. The study complements the subjective reports collected through the survey (cf. [@sec:experience-survey]). The evaluation is possible due to the inclusion of a custom tracing module in NLS. The tracing module is used to create a report for every request, containing the processing time and a measure of the size of the analyzed document. @@ -154,11 +170,14 @@ Consequently, the performance evaluation is independent of the LSP client (edito Unlike differences in hardware which affects all operations similarly, LSP clients may implement different behaviors that may cause editor-specific biases. For instance, the LSP does not specify the frequency at which file changes are detected, which in turn can lead to request queuing depending on the editor used. +All participants of the Workshop were asked to enable tracing during the session and submit the recorded trace file. +However, not a single trace file was submitted. +Therefore, the study is based on a trace file recorded individually by the lead developer of Nickel who used the Language server while to author a number of small and more extensive Nickel files. + ## Results ### Qualitative - As outlined in [#sec:qualitative-study-outline], the qualitative study consists of two parts conducted before and after an introductory workshop. The pre-evaluation aimed to catch the users' expected features and behaviors, while the main survey asked users about their concrete experiences with the NLS. @@ -167,7 +186,8 @@ The pre-evaluation aimed to catch the users' expected features and behaviors, wh In the initial free assessment of expected features (c.f. [#sec:expected-features]) the participants unanimously identified four of the six language server capabilities that guided the implementation of the project (c.f. [@sec:commands-and-notifications, @langserverorg]): Type-information on hover, automatic diagnostics, Code Completion and Jump-to-Definition. The other two features, Find-References and Workspace/Document Symbols on the contrary were sparingly commented. -Some participants noted that they did not use these capabilities. +No participant mentioned Find-References. +The Symbols feature had one response distinguishing different symbol types to be shown while another noted that they did not use this capability. ##### Type-information on hover @@ -220,8 +240,8 @@ It first looks at a summary of the data, before diving into the comments for eac User responses regarding general experience, fulfillment of expectations and general satisfaction. ::: -The above figures show the turnout of three items from the survey for each of the relevant features. -Neither of them shows clear trends with positive and negative results distributed almost evenly between positive and negative sentiment. +[Figures @fig:results-comp-experience;-@fig:results-comp-satisfaction,;-@fig:results-comp-expectations] show the turnout of three items from the survey for each of the relevant features. +Neither of them exhibits clear trends with positive and negative results distributed almost evenly between positive and negative sentiment. The first graph ([@fig:results-comp-experience]) represents the participants' general experience with the relevant features. @@ -258,7 +278,7 @@ Moreover, a performance issue was brought up noting that in some situations NLS ##### Code Completion {#sec:code-completion-res} Comments about the Code Completion feature were unanimously critical. -Some participants noted the little gained "value over the token based completion built into the editor" while others specifically pointed at "missing type information and docs". +One participant noted the little gained "value over the token based completion built into the editor" while two others specifically pointed at "missing type information and docs". Additionally, record field completion was found to be missing, albeit highly valued. ##### Document Navigation {#sec:document-navigation-res} @@ -275,6 +295,66 @@ On unmodified files queries were reported to evaluate "instantaneously". However, modifying files caused that "modifications stack up" causing high CPU usage and generally "very slow" responses. Besides, documentation was reported as slow to resolve while the server itself was "generally fast". +#### Discussion + +##### Diagnostics + +First, participants criticized [@sec:diagnostics-res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. +While Contracts are a central element of Nickel and relied upon to validate data, the language server does not actually warn about contract breaches. +Yet, while contracts and their application looks similar to types, contracts are a dynamic language element which are dynamically applied during evaluation. +Therefore, it is not possible to determine whether a value conforms to a contract without evaluation of the contract. +NLS's is integrated with Nickel's type-checking mechanism which precedes evaluation and provides only a static representation of the source code. +In order to support diagnostics for contracts NLS would need to locally evaluate arbitrary code that makes up contracts. +However, contracts can not be evaluated entirely locally as they may transitively depend on other contracts. +This is particularly true for a file's output value. +Additionally, Contracts can implement any sort of complex computation including unbound recursion. +Due to these caveats, evaluating contracts as part of NLS's analysis implies the evaluation of the entire code which was considered a possibly significant impact to the performance. +As laid out above evaluating contracts locally is no option either. +It is not only challenging to collect the minimal context of the Contract, the context may in fact be the entire program. +An alternative option is to provide the ability to apply contracts manually using an LSP feature called "Code Lenses". +Code Lenses are displayed by editors as annotations allowing the user to manually execute an associated action. + + + +##### Cross File Navigation + +In both cases `Jump-To-Definition` and `Find-References` surveyed users requested support for cross file navigation. +In particular, finding the definition of a record field of an imported record should navigate the editor to the respective file as symbolized in [@lst:imported-record-access]. + +```{.nickel #lst:imported-record-access caption="Minimal example of cross file referencing"} +// file_a.ncl + +let b = import "./b.ncl" in b.field + | + +------+ + | +----------------------------------- | + | +// file_b.ncl | + | +{ | + field = "field value"; | +} ^ | + +---------------------------------+ +``` + +The resolution of imported values is done at evaluation time, the AST therefore only contains nodes representing the concept of an import but no not reference elements of that file. +NLS does ingest the AST without resolving these imports manually. +The type checking module underlying NLS still recurses into imported files to check their formal correctness. +As a result it would be possible for a NLS to resolve these links as an additional step in the post-processing by either inserting artificial linearization items [@sec:linearization] or merging both files' linearization entirely. + +##### Autocompletion + +Another criticized element of NLS was the autocompletion feature. +In the survey, participants mentioned the lack of additional information and distinction of elements as well as NLS inability to provide completion for record fields. +In Nickel, record access is declared by a period. +An LSP client can be configured to ask for completions when such an access character is entered additionally to manual requests by the user. +The language server is then responsible to provide a list of completion candidates depending on the context, i.e. the position. +[Section #sec:completion] describes how NLS resolves this kind of request. +NLS just lists all identifiers of declarations that are in scope at the given position. +Notably, it does not take the preceding element into account as additional context. +To support completing records, the server must first be aware of separating tokens such as the period symbol, check whether the current position is part of a token that is preceded by a separator and finally resolve the parent element to a record. + ### Quantitative @@ -284,7 +364,10 @@ This section will first introduce the dataset before looking at the general perf #### Dataset -The underlying data set consists of 16760 unique trace records. +The underlying data set consists of 16761 unique trace records, contributed by the lead developer of Nickel. +The traces were generated during the work on different Nickel files of varying size during the course of one day. +It is a record of both the development of entire new files and work on a bigger Nickel based project. + Since the `textDocument/didOpen` method is executed on every update of the source, it greatly outnumbers the other events. The final distribution of methods traced is: @@ -295,14 +378,21 @@ The final distribution of methods traced is: | `textDocument/hover` | 227 | yes | | `textDocument/definition` | 68 | yes | | `textDocument/references` | 49 | yes | -| ------------------------- | ----- | ------------------- | +|
|
|
| | total | 16761 | | : Number of traces per LSP method -![Distribution of linearization based LSP requests](log_analysis/figures/distribution-by-lin-size.svg){#fig:distribution-by-lin-size} +:::{#fig:distributions} + +![Distribution of linearization based LSP requests](log_analysis/figures/distribution-by-lin-size.svg){#fig:distribution-by-lin-size width=50%} +![Distribution of file analysis requests](log_analysis/figures/distribution-by-file-size.svg){#fig:distribution-by-file-size width=50%} -![Distribution of file analysis requests](log_analysis/figures/distribution-by-file-size.svg){#fig:distribution-by-file-size} +![Empirical Cumulative Distribution of linearization based LSP requests](log_analysis/figures/ecdf-by-lin-size.svg){#fig:ecdf-by-lin-size width=50%} +![Empirical Cumulative Distribution of file analysis requests](log_analysis/figures/ecdf-by-file-size.svg){#fig:ecdf-by-file-size width=50%} + +Estimated distribution and empirical cumulative distributions of traced method calls. +::: [Figures @fig:distribution-by-lin-size, @fig:distribution-by-file-size] break up these numbers by method and linearization size or file size respectively. @@ -310,7 +400,7 @@ The linearization is the linear representation of an enriched AST. It is explained in great detail in [@sec:linearization]. The first figure shows a peak number of traces for completion events between $0$ to $1$ linearization items as well as local maxima around a linearization size of $20$ to $30$ and sustained usage of completion requests in files of $90-400$ items. Similar to the completion requests (but well outnumbered in total counts), other methods were used mainly in the range between $200$ and $400$ linearization items. -A visualization of the Empirical Cumulative Distribution Function (ECFD) [@fig:ecdf-distribution-by-lin-size] corroborates these findings. +A visualization of the Empirical Cumulative Distribution Function (ECDF) [@fig:ecdf-by-lin-size;@fig:ecdf-by-file-size] corroborates these findings. Moreover, it shows an additional hike of Jump-to-Definition and Find-References calls at on files with around 1500 linearization items. The findings for linearization based methods line up with those depicting linearization events (identified as `textDocument/didOpen`). An initial peak referring to rather small input files between $300$ and $400$ bytes in size is followed by a sustained usage of the NLS on files with $2$ to $6$ kilobytes of content topped with a final application on $35$ kilobyte large data. @@ -351,74 +441,7 @@ Applying the same analysis to the other methods in [@fig:correlation-hovers;@fig In case of the `didOpen` method columns are clearly visible too [#fig:correlation-opens]. However, here they appear leaning as suggesting an increase in computation time as the file grows during a single series of changes to the file. -## Discussion - -This section discusses the issues raised during the survey and uncovered through the performance tracing. -In the first part the individual findings are summarized and if possible grouped by their common cause. -The second part addresses each cause and connects it to the relevant architecture decisions, while explaining the reason for it and discussing possible alternatives. - -During the qualitative evaluation several features did not meet the expectations of the users. -The survey also hinted performance issues that were solidified by the results of the quantitative analysis. - -### Diagnostics - -First, participants criticized [@sec:diagnostics-res] the diagnostics feature for some unhelpful error messages and specifically for not taking into account Nickel's hallmark feature, Contracts [@sec:Contracts]. -While Contracts are a central element of Nickel and relied upon to validate data, the language server does not actually warn about contract breaches. -Yet, while contracts and their application looks similar to types, contracts are a dynamic language element which are dynamically applied during evaluation. -Therefore, it is not possible to determine whether a value conforms to a contract without evaluation of the contract. -NLS's is integrated with Nickel's type-checking mechanism which precedes evaluation and provides only a static representation of the source code. -In order to support diagnostics for contracts NLS would need to locally evaluate arbitrary code that makes up contracts. -However, contracts can not be evaluated entirely locally as they may transitively depend on other contracts. -This is particularly true for a file's output value. -Additionally, Contracts can implement any sort of complex computation including unbound recursion. -Due to these caveats, evaluating contracts as part of NLS's analysis implies the evaluation of the entire code which was considered a possibly significant impact to the performance. -As laid out above evaluating contracts locally is no option either. -It is not only challenging to collect the minimal context of the Contract, the context may in fact be the entire program. -An alternative option is to provide the ability to apply contracts manually using an LSP feature called "Code Lenses". -Code Lenses are displayed by editors as annotations allowing the user to manually execute an associated action. - - - -### Cross File Navigation - -In both cases `Jump-To-Definition` and `Find-References` surveyed users requested support for cross file navigation. -In particular, finding the definition of a record field of an imported record should navigate the editor to the respective file as symbolized in [@lst:imported-record-access]. - -```{.nickel #lst:imported-record-access caption="Minimal example of cross file referencing"} -// file_a.ncl - -let b = import "./b.ncl" in b.field - | - +------+ - | ------------------------------------ | - | -// file_b.ncl | - | -{ | - field = "field value"; | -} ^ | - +---------------------------------+ -``` - -The resolution of imported values is done at evaluation time, the AST therefore only contains nodes representing the concept of an import but no not reference elements of that file. -NLS does ingest the AST without resolving these imports manually. -The type checking module underlying NLS still recurses into imported files to check their formal correctness. -As a result it would be possible for a NLS to resolve these links as an additional step in the post-processing by either inserting artificial linearization items [@sec:linearization] or merging both files' linearization entirely. - -### Autocompletion - -Another criticized element of NLS was the autocompletion feature. -In the survey, participants mentioned the lack of additional information and distinction of elements as well as NLS inability to provide completion for record fields. -In Nickel, record access is declared by a period. -An LSP client can to configured to ask for completions when such an access character is entered additionally to manual requests by the user. -The language server is then responsible to provide a list of completion candidates depending on the context, i.e. the position. -[Section #sec:completion] describes how NLS resolves this kind of request. -NLS just lists all identifiers of declarations that are in scope at the given position. -Notably, it does not take the preceding element into account as additional context. -To support completing records, the server must first be aware of separating tokens such as the period symbol, check whether the current position is part of a token that is preceded by a separator and finally resolve the parent element to a record. - -### Performance +#### Discussion In the experience survey performance was pointed out as a potential issue. Especially in connection with the diagnostics and hover feature. diff --git a/log_analysis/figures/ecdf-by-file-size.svg b/log_analysis/figures/ecdf-by-file-size.svg new file mode 100644 index 00000000..974ff670 --- /dev/null +++ b/log_analysis/figures/ecdf-by-file-size.svg @@ -0,0 +1,2155 @@ + + + + + + + + 2022-06-05T22:44:11.706974 + image/svg+xml + + + Matplotlib v3.5.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/log_analysis/figures/ecdf-by-lin-size.svg b/log_analysis/figures/ecdf-by-lin-size.svg new file mode 100644 index 00000000..bdb3925f --- /dev/null +++ b/log_analysis/figures/ecdf-by-lin-size.svg @@ -0,0 +1,1702 @@ + + + + + + + + 2022-06-05T22:43:38.914570 + image/svg+xml + + + Matplotlib v3.5.1, https://matplotlib.org/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From a699ee3bd4c1cf200bece8200bc0156faabb1387 Mon Sep 17 00:00:00 2001 From: Yannik Sander Date: Mon, 6 Jun 2022 00:20:01 +0200 Subject: [PATCH 51/51] Evaluation: Fx more internal Refs (cherry picked from commit 3ba4c202e7646795ac2749b33d62f58e09fb0396) --- chapter/evaluation.md | 20 +- .../figures/distribution-latencies.svg | 3604 +++++++++++++++++ 2 files changed, 3616 insertions(+), 8 deletions(-) create mode 100644 log_analysis/figures/distribution-latencies.svg diff --git a/chapter/evaluation.md b/chapter/evaluation.md index 9d753ceb..90c5bd0d 100644 --- a/chapter/evaluation.md +++ b/chapter/evaluation.md @@ -41,7 +41,7 @@ This allows more actionable planning of the future development to meet user expe Runtime performance on the other hand is a quantifiable metric that is tracked objectively through time measurements. Runtime behavior was a central assumption during the conception of the underlying server architecture. -As discussed in [@sec:code-analysis] NLS follows an eager, non-incremental processing model. +As discussed in [@sec:code-analysis], NLS follows an eager, non-incremental processing model. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +