summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManolo Carrasco <manolo@apache.org>2015-01-21 23:28:24 -0800
committerBuild Agent <build@vaadin.com>2015-05-11 08:51:38 +0300
commitcfacacae5a423ccd823b039aed66566dc84413f4 (patch)
tree6b49d75325be3fe9524515b53c24051397728d1f
downloadvaadin-core-cfacacae5a423ccd823b039aed66566dc84413f4.tar.gz
vaadin-core-cfacacae5a423ccd823b039aed66566dc84413f4.zip
Release version 0.2-snapshot.
-rw-r--r--LICENSE.md201
-rw-r--r--README.md72
-rw-r--r--bower.json22
-rw-r--r--vaadin-grid/demo.html661
-rw-r--r--vaadin-grid/demodata.js2021
-rw-r--r--vaadin-grid/test/common.js82
-rw-r--r--vaadin-grid/test/grid-binding-data.html189
-rw-r--r--vaadin-grid/test/grid-editing-columns.html377
-rw-r--r--vaadin-grid/test/grid-editor-handler.html206
-rw-r--r--vaadin-grid/test/grid-properties.html86
-rw-r--r--vaadin-grid/test/grid-redrawer.html173
-rw-r--r--vaadin-grid/test/grid-rendering-light-dom.html130
-rw-r--r--vaadin-grid/test/grid-scrolling-rows.html114
-rw-r--r--vaadin-grid/test/grid-selecting-rows.html645
-rw-r--r--vaadin-grid/test/grid-sorting-rows.html100
-rw-r--r--vaadin-grid/test/grid-static-sections.html222
-rw-r--r--vaadin-grid/test/index.html24
-rw-r--r--vaadin-grid/vaadin-grid-import.html635
-rw-r--r--vaadin-grid/vaadin-grid.css1
-rw-r--r--vaadin-grid/vaadin-grid.html500
20 files changed, 6461 insertions, 0 deletions
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..3342e94
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,201 @@
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2014-2015 Vaadin Ltd.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..a0a6d00
--- /dev/null
+++ b/README.md
@@ -0,0 +1,72 @@
+# Vaadin Components
+
+A set of high-quality Web Components built using Polymer.
+
+Learn more about [Vaadin Components.](https://vaadin.com/labs-components/)
+
+For contributions and issues, see the project's [Github Repository.](https://github.com/vaadin/components/)
+
+## Installation
+- Bower
+```shell
+$ bower install vaadin-components#0.2.0
+```
+```html
+<!-- Import web component polyfills and the component you want into your HTML -->
+<head>
+ ...
+ <script src="bower_components/webcomponentsjs/webcomponents-lite.js"></script>
+ <link href="bower_components/vaadin-components/vaadin-grid/vaadin-grid.html" rel="import">
+ ...
+</head>
+```
+- CDN
+```html
+<!-- Import web component polyfills and the component you want into your HTML -->
+<head>
+ ...
+ <script src="https://cdn.vaadin.com/vaadin-components/0.2.0/webcomponentsjs/webcomponents-lite.js"></script>
+ <link href="https://cdn.vaadin.com/vaadin-components/0.2.0/vaadin-grid.html" rel="import">
+ ...
+</head>
+```
+- Downloading the zip archive
+ - Head over to https://vaadin.com/download#components
+ - Download the version you wish to use
+ - Extract the zip under your project folder
+```html
+<!-- Import web component polyfills and the component you want into your HTML -->
+<head>
+ ...
+ <script src="deps/vaadin-components/webcomponentsjs/webcomponents-lite.js"></script>
+ <link href="deps/vaadin-components/vaadin-grid.html" rel="import">
+ ...
+</head>
+```
+## Usage
+```html
+<!-- After adding the required imports, just add a <v-grid> into your HTML -->
+<v-grid>
+ <table>
+ <colgroup>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10000</td>
+ <td>0.8</td>
+ </tr>
+ <tr>
+ <td>Vaadin X</td>
+ <td>999999</td>
+ <td>0.8</td>
+ </tr>
+ </tbody>
+ </table>
+</v-grid>
+```
+
+For more detailed examples on usage, see the [components-examples](https://tomivirkki.github.io/components-examples)
diff --git a/bower.json b/bower.json
new file mode 100644
index 0000000..7e25b38
--- /dev/null
+++ b/bower.json
@@ -0,0 +1,22 @@
+{
+ "name": "vaadin-components",
+ "version": "0.2-snapshot",
+ "authors": [
+ "Vaadin Ltd"
+ ],
+ "description": "Vaadin Grid web component",
+ "license": "Apache License 2.0",
+ "keywords": [
+ "web-components"
+ ],
+ "ignore": [
+ "**/.*",
+ "**/node_modules",
+ "**/bower_components",
+ "**/test",
+ "**/tests"
+ ],
+ "dependencies": {
+ "polymer": "Polymer/polymer#v0.8.0-rc.7"
+ }
+} \ No newline at end of file
diff --git a/vaadin-grid/demo.html b/vaadin-grid/demo.html
new file mode 100644
index 0000000..85e9490
--- /dev/null
+++ b/vaadin-grid/demo.html
@@ -0,0 +1,661 @@
+<!doctype html>
+<html>
+<head>
+<meta charset="UTF-8">
+<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1" />
+<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
+
+
+<link href="vaadin-grid.html" rel="import">
+<script src="demodata.js"></script>
+<style>
+td.red, th.red, .red th, .red td, td.foot1, .foot1 td {
+ background: mistyrose !important;
+}
+td.blue, th.blue, .blue th, .blue td, td.foot2, .foot2 td {
+ background: aliceblue !important;
+}
+.foot1, .foot2 {
+ font-weight: bold !important;
+ text-align: center;
+}
+</style>
+</head>
+<body>
+ <script>
+ function waitUntilGridReady(id, cb) {
+ if (window.vaadin && vaadin._v_grid_ready) {
+ cb(document.getElementById(id));
+ } else {
+ document.addEventListener("v-grid-ready", function(){
+ cb(document.getElementById(id));
+ });
+ }
+ }
+ </script>
+
+<ol>
+ <li>
+ <h3>Simplest possible with inline data</h3>
+ <v-grid rows=1>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10000</td>
+ <td>0.8</td>
+ </tr>
+ <tr>
+ <td>Vaadin X</td>
+ <td>999999</td>
+ <td>0.8</td>
+ </tr>
+ </tbody>
+ </table>
+ </v-grid>
+ </li>
+
+ <li>
+ <h3>Simplest possible with explicitly formatted inline data (i.e. children in cells)</h3>
+ <v-grid id="childrenInCells">
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10 000€</td>
+ <td><progress value="0.8" /></td>
+ </tr>
+ <tr>
+ <td>Vaadin X</td>
+ <td>999 999€</td>
+ <td><progress value="0.01" /></td>
+ </tr>
+ </tbody>
+ </table>
+ </v-grid>
+
+ </li>
+
+ <li>
+ <h3>Simplest possible with data source (all data available, no formatting)</h3>
+ <v-grid id='myGrid'>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ </table>
+ </v-grid>
+
+ <script>
+ // We need to wait until the WC has been initialized
+ // It could take a long if we are compiling SDM
+ waitUntilGridReady("myGrid", function(grid) {
+ var data = [ [ "Grid", 10000, 0.8 ], [ "Vaadin X", 999999, 0.01 ],
+ [ "designer", 999999, 0.01 ] ];
+
+ grid.data.source = function(req) {
+ var array = data.slice(req.index, req.index + req.count);
+ req.success(array, data.length);
+ };
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>Simplest possible with lazy data source (no formatting)</h3>
+ <v-grid id='myBigGrid'>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ </table>
+ </v-grid>
+
+ <script>
+ waitUntilGridReady("myBigGrid", function(grid) {
+
+ grid.data.source = function(req) {
+ setTimeout(function() {
+ req.success(myBigData.slice(req.index, req.index + req.count), myBigData.length);
+ }, req.index ? 800 : 0);
+ };
+ });
+ // Note: myBigData is defined at the end of the page
+ </script>
+ </li>
+
+ <li>
+ <h3>Simplest possible with data source and formatting</h3>
+
+ <v-grid id="myFormatGrid">
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ </table>
+ </v-grid>
+ <script>
+ waitUntilGridReady("myFormatGrid", function(grid) {
+ var data = [ [ "Grid", 10000, 0.8 ], [ "Vaadin X", 999999, 0.01 ], ];
+
+ grid.data.source = function(req) {
+ req.success(data.slice(req.index, req.index + req.count), data.length);
+ };
+
+ var valueRenderer = function(cell) {
+ cell.element.innerHTML = '$' + cell.data;
+ };
+
+ var progressRenderer = function(cell) {
+ var child = document.createElement("progress");
+ child.setAttribute('value', cell.data);
+ cell.element.appendChild(child);
+ };
+ grid.columns[1].renderer = valueRenderer;
+ grid.columns[2].renderer = progressRenderer;
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>Mapping data from a JS object into columns</h3>
+
+ <v-grid id="myMapGrid">
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ </table>
+ </v-grid>
+ <button id="updateButton">update</button>
+ <button id="addButton">add</button>
+ <button id="removeButton">remove</button>
+ <script>
+ var data = [{ name: "Grid", value: 10000, progress: 0.8 },
+ { name: "Vaadin X", value: 999999, progress: 0.01 }];
+
+ waitUntilGridReady("myMapGrid", function(grid) {
+ grid.data.source = function(req) {
+ req.success(data.slice(req.index, req.index + req.count), data.length);
+ };
+
+ grid.columns[0].valueGenerator = function(rowObject, columnIndex) {
+ return "> " + rowObject.name;
+ };
+
+ grid.columns[1].name = "value";
+ grid.columns[2].name = "progress";
+ });
+
+ document.querySelector('#updateButton').addEventListener('click', function(e) {
+ var grid = document.querySelector('#myMapGrid');
+
+ var updatedItem = {name: "Button X", value: Math.round(Math.random() * 1000), progress: Math.random()};
+ data[0] = updatedItem;
+ grid.data.clearCache();
+ });
+
+ document.querySelector('#addButton').addEventListener('click', function(e) {
+ var grid = document.querySelector('#myMapGrid');
+
+ data.splice(0, 0, {name: "Button " + data.length, value: 111, progress: 0.01});
+ grid.data.clearCache(data.length);
+ });
+
+ document.querySelector('#removeButton').addEventListener('click', function(e) {
+ var grid = document.querySelector('#myMapGrid');
+
+ data.splice(0, 1);
+ grid.data.clearCache(data.length);
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>Mapping data from a array into single column</h3>
+ <v-grid id="with-single-column">
+
+ <table>
+ <col header-text="Name">
+ </table>
+ </v-grid>
+ <script>
+ waitUntilGridReady("with-single-column", function(grid) {
+ var data = [
+ "Grid",
+ "Vaadin X"
+ ];
+
+ grid.data.source = function(req) {
+ req.success(data.slice(req.index, req.index + req.count), data.length);
+ };
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>Complex headers</h3>
+ <v-grid>
+ <table>
+ <col>
+ <col>
+ <col>
+ <thead>
+ <tr class="blue">
+ <th><button>I'm a button</button></th>
+ <th colspan="2">Status</th>
+ </tr>
+ <tr default class="red">
+ <th>Name</th>
+ <th class="blue">Value</th>
+ <th>Progress</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10000</td>
+ <td>0.8</td>
+ </tr>
+ <tr>
+ <td>Vaadin X</td>
+ <td>999999</td>
+ <td>0.8</td>
+ </tr>
+ </tbody>
+ <tfoot>
+ <tr class="foot1">
+ <th colspan=3>This is a footer line in a cell</th>
+ </tr>
+ <tr class="foot2">
+ <th colspan=3><span>Some widgets in a footer</span> <input type=text/> <button>Click</button></th>
+ </tr>
+ </tfoot>
+ </table>
+ </v-grid>
+ </li>
+
+ <li>
+ <h3>Selection</h3>
+
+ <v-grid id="myMultiSelGrid" selection-mode="multi">
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ </table>
+ </v-grid>
+ <div id="smbuttons">
+ <input type="radio" name="selectionmode" value="single">single</input>
+ <input type="radio" name="selectionmode" value="multi" checked="checked">multi</input>
+ <input type="radio" name="selectionmode" value="all">all</input>
+ <input type="radio" name="selectionmode" value="disabled">disabled</input>
+ </div>
+ <div id="sizelabel"></div>
+ <div id="deselectedlabel" style="overflow: hidden; text-overflow: ellipsis;"></div>
+ <div id="selectedlabel" style="overflow: hidden; text-overflow: ellipsis;"></div>
+ <script>
+ waitUntilGridReady("myMultiSelGrid", function(grid) {
+ grid.data.source = myBigData;
+
+ var updateFields = function(event) {
+ document.getElementById("sizelabel").innerText = "selection.size: " + grid.selection.size;
+
+ var selectedLabel = document.getElementById("selectedlabel");
+ if (grid.selection.mode === "all"){
+ selectedLabel.style.color = "#f00";
+ selectedLabel.innerText = "selection.selected() PREFER deselected() WITH SELECTION MODE \"all\"): " + grid.selection.selected();
+ } else {
+ selectedLabel.style.color = "#000";
+ selectedLabel.innerText = "selection.selected(): " + grid.selection.selected();
+ }
+ document.getElementById("deselectedlabel").innerText = "selection.deselected(): " + grid.selection.deselected();
+
+ document.querySelector("input[name='selectionmode'][checked='checked']").removeAttribute("checked");
+ document.querySelector("input[name='selectionmode'][value='"+ grid.selection.mode +"']").setAttribute("checked", "checked");
+ };
+
+ var modeListener = function(e) {
+ grid.selection.mode = e.target.value;
+ updateFields();
+ };
+ var radios = document.querySelectorAll("input[name='selectionmode']");
+ for (var i = 0; i< radios.length; i++) {
+ radios[i].addEventListener("click", modeListener);
+ }
+
+ grid.addEventListener("select", updateFields);
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>Simplest possible polymer x-repeat from array of objects</h3>
+ <dom-module id="my-grid-with-template">
+ <template>
+ <v-grid selectionMode='multi'>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ <tbody>
+ <template is="x-repeat" items="{{mydata}}">
+ <tr>
+ <td>{{item.name}}</td>
+ <td>{{item.value}}</td>
+ <td>{{item.progress}}</td>
+ </tr>
+ </template>
+ </tbody>
+ </table>
+ </v-grid>
+ </template>
+ </dom-module>
+ <script>
+ Polymer({
+ is: 'my-grid-with-template',
+ ready: function() {
+ this.mydata = [
+ {"name": "Grid", "value": "10000", "progress": 0.8},
+ {"name": "Vaadin X", "value": "999999", "progress": 0.8}
+ ];
+ }
+ }) ;
+ </script>
+ <my-grid-with-template></my-grid-with-template>
+ </li>
+
+ <li>
+ <h3>Simplest possible polymer x-repeat from simple array</h3>
+ <dom-module id="my-grid-with-template2">
+ <template>
+ <v-grid selectionMode='multi'>
+ <table>
+ <col header-text="Name">
+ <tbody>
+ <template is="x-repeat" items="{{mydata}}">
+ <tr>
+ <td>{{item}}</td>
+ </tr>
+ </template>
+ </tbody>
+ </table>
+ </v-grid>
+ </template>
+ </dom-module>
+ <script>
+ Polymer({
+ is: 'my-grid-with-template2',
+ ready: function() {
+ this.mydata = [
+ "Grid",
+ "Vaadin X"
+ ];
+ }
+ }) ;
+ </script>
+ <my-grid-with-template2></my-grid-with-template2>
+ </li>
+
+ <li>
+ <h3>Simplest possible polymer x-repeat from array of objects and selection multiple</h3>
+ <dom-module id="my-grid-with-template-multi">
+ <template>
+ <v-grid selectionMode='multi'>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <col header-text="Progress">
+ <tbody>
+ <template is="x-repeat" items="{{mydata}}">
+ <tr>
+ <td>{{item.name}}</td>
+ <td>{{item.value}}</td>
+ <td>{{item.progress}}</td>
+ </tr>
+ </template>
+ </tbody>
+ </table>
+ </v-grid>
+ </template>
+ </dom-module>
+ <script>
+ Polymer({
+ is: 'my-grid-with-template-multi',
+ ready: function() {
+ this.mydata = [
+ {"name": "Grid", "value": "10000", "progress": 0.8},
+ {"name": "Vaadin X", "value": "999999", "progress": 0.8}
+ ];
+ }
+ }) ;
+ </script>
+ <my-grid-with-template-multi></my-grid-with-template-multi>
+ </li>
+
+ <li>
+ <h3>Sort example</h3>
+ <v-grid id='mySortGrid'>
+ <table>
+ <col header-text="Name" sortable>
+ <col header-text="Value" sortable>
+ <col header-text="Progress" sortable>
+ </table>
+ </v-grid>
+ <button id="mySortButton">Sort by column 1</button>
+ Sort: <span id="mySortLabel"></span>
+
+ <script>
+ waitUntilGridReady("mySortGrid", function(grid) {
+ var data = [ [ "Gridddd", 10000, 0.8 ], [ "Vaadin X", 999999, 0.01 ],
+ [ "designer", 43256, 0.01 ], [ "TK", 1967, 0.05 ] ];
+
+ var button = document.getElementById("mySortButton");
+ var label = document.getElementById("mySortLabel");
+
+ var dir = 'desc';
+ button.addEventListener("click", function(event) {
+ dir = dir == 'desc' ? "asc" : "desc";
+ grid.data.sortOrder = [{
+ column: 1,
+ direction: dir
+ }];
+ });
+
+ grid.addEventListener("sort", function() {
+ var idx = grid.data.sortOrder[0].column;
+ var asc = grid.data.sortOrder[0].direction == 'asc';
+ data.sort(function(a, b){
+ return a[idx] < b[idx] && asc ? -1 : 1;
+ });
+ label.textContent = JSON.stringify(grid.sortOrder);
+ })
+ grid.data.source = function(req) {
+ req.success(data.slice(req.index, req.index + req.count), data.length);
+ };
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>Row editor</h3>
+ <v-grid id='editableGrid' style='width: 200px'>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10000</td>
+ </tr>
+ <tr>
+ <td>VaadinX</td>
+ <td>1000</td>
+ </tr>
+ </tbody>
+ </table>
+ </v-grid>
+
+ <script>
+ waitUntilGridReady("editableGrid", function(grid) {
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ grid.editor.enabled = true;
+ grid.editor.saveButtonText = "Ok";
+ grid.editor.cancelButtonText = "Nope";
+ grid.editor.handler = {
+ getCellEditor: function(columnObject) {
+ return document.createElement("input");
+ },
+ bind: function(req) {
+ for (var i = 0; i < req.grid.columns.length; i++) {
+ var col = req.grid.columns[i];
+ var el = req.getCellEditor(col);
+ el.value = req.dataItem[i];
+ }
+ req.success();
+ },
+ save: function(req) {
+ for (var i = 0; i < req.grid.columns.length; i++) {
+ var col = req.grid.columns[i];
+ var el = req.getCellEditor(col);
+ var cell = grid.lightDom.querySelectorAll("tbody tr")[req.rowIndex].querySelectorAll("td")[i];
+ cell.innerHTML = el.value;
+ }
+ req.success();
+ }
+ };
+ });
+ </script>
+ </li>
+
+ <li>
+ <h3>DOM API</h3>
+ <v-grid
+ selection-mode='disabled'
+ selected-rows='0,2,3'
+ rows=3
+ frozen-columns= '-1'
+ style='width: 100%'
+ editable
+ >
+ <table >
+ <colgroup>
+ <col sortable sort-direction="desc" header-text="Name">
+ <col sortable sort-direction="asc" header-text="Value">
+ <col width=40 header-text="Progress">
+ <col min-width=200 header-text="foo">
+ <col header-text="bar">
+ <col flex=100 header-text="foo">
+ <col flex=0 header-text="bar">
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10000</td>
+ <td>0.8</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ </tr>
+ <tr>
+ <td>Vaadin X</td>
+ <td>999999</td>
+ <td>0.8</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ </tr>
+ <tr>
+ <td>Designer</td>
+ <td>10000</td>
+ <td>0.5</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ </tr>
+ <tr>
+ <td>Spreadsheet</td>
+ <td>10000</td>
+ <td>0.5</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ </tr>
+ <tr>
+ <td>TK</td>
+ <td>10000</td>
+ <td>0.5</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ <td>lorem ipsum</td>
+ <td>dolor sit amet</td>
+ </tr>
+ </tbody>
+ </table>
+ </v-grid>
+ </li>
+
+ <li>
+ <h3>Header and Footer</h3>
+ <v-grid id='staticsections'>
+ <table>
+ <col header-text="Name">
+ <col header-text="Value">
+ <tbody>
+ <tr>
+ <td>Grid</td>
+ <td>10000</td>
+ </tr>
+ <tr>
+ <td>VaadinX</td>
+ <td>1000</td>
+ </tr>
+ </tbody>
+ </table>
+ </v-grid>
+ <br/>
+ <button id="headervisibility">Toggle header visibility</button>
+ <button id="footervisibility">Toggle footer visibility</button>
+ <script>
+ waitUntilGridReady("staticsections", function(grid) {
+ // Remove the header row
+ grid.header.removeRow(0);
+
+ // Add a header row
+ var colspanToggle = document.createElement("button");
+ colspanToggle.innerText = "Toggle colspan";
+ colspanToggle.addEventListener("click", function(){
+ var cell = grid.header.getCell(0, 0);
+ cell.colspan = cell.colspan == 1 ? 2 : 1;
+ });
+ grid.header.addRow(0, [colspanToggle, "Value"]);
+
+ // Add a footer row
+ grid.footer.addRow(0, ["sum", 11000]);
+
+ // Toggle header / footer visibility
+ document.getElementById("headervisibility").addEventListener("click", function(){
+ grid.header.hidden = !grid.header.hidden;
+ });
+ document.getElementById("footervisibility").addEventListener("click", function(){
+ grid.footer.hidden = !grid.footer.hidden;
+ });
+
+ });
+ </script>
+ </li>
+
+</ol>
+</body>
+</html>
diff --git a/vaadin-grid/demodata.js b/vaadin-grid/demodata.js
new file mode 100644
index 0000000..b284aa0
--- /dev/null
+++ b/vaadin-grid/demodata.js
@@ -0,0 +1,2021 @@
+ myBigData =
+ [
+ [
+ "Patrik",
+ "Paul",
+ "Invent",
+ "results"
+ ],
+ [
+ "John",
+ "Signell",
+ "Export",
+ "results"
+ ],
+ [
+ "Patrik",
+ "Åstrand",
+ "Deliver",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Fix",
+ "results"
+ ],
+ [
+ "Leif",
+ "Paul",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Produce",
+ "Vaadin"
+ ],
+ [
+ "Teemu",
+ "Ahlroos",
+ "Feed",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Åstrand",
+ "Launch",
+ "teleportation"
+ ],
+ [
+ "Leif",
+ "Lehtinen",
+ "Launch",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Polish",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Design",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Dahlström",
+ "Fix",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Lindström",
+ "Implement",
+ "Grid"
+ ],
+ [
+ "John",
+ "Ahlroos",
+ "Deliver",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Leif",
+ "Lehtinen",
+ "Implement",
+ "world peace"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Deliver",
+ "soup"
+ ],
+ [
+ "Johannes",
+ "Åstrand",
+ "Disable",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Implement",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Deliver",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Design",
+ "results"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Export",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Paul",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Patrik",
+ "Lindström",
+ "Implement",
+ "world peace"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Polish",
+ "the weather"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Design",
+ "Vaadin"
+ ],
+ [
+ "Johannes",
+ "Suo-Anttila",
+ "Fix",
+ "results"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Invent",
+ "results"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Polish",
+ "results"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Launch",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Åstrand",
+ "Design",
+ "Grid"
+ ],
+ [
+ "Patrik",
+ "Åstrand",
+ "Design",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Ahlroos",
+ "Invent",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Implement",
+ "Vaadin"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Produce",
+ "the weather"
+ ],
+ [
+ "Patrik",
+ "Åstrand",
+ "Fix",
+ "world peace"
+ ],
+ [
+ "Teemu",
+ "Lindström",
+ "Deliver",
+ "the dog"
+ ],
+ [
+ "Teemu",
+ "Signell",
+ "Design",
+ "teleportation"
+ ],
+ [
+ "Joonas",
+ "Lehtinen",
+ "Feed",
+ "the weather"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Feed",
+ "Vaadin"
+ ],
+ [
+ "John",
+ "Lehtinen",
+ "Design",
+ "the dog"
+ ],
+ [
+ "Artur",
+ "Åstrand",
+ "Activate",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Paul",
+ "Design",
+ "Vaadin"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Deliver",
+ "world peace"
+ ],
+ [
+ "Teemu",
+ "Signell",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Johannes",
+ "Åstrand",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Disable",
+ "the weather"
+ ],
+ [
+ "Henrik",
+ "Lehtinen",
+ "Disable",
+ "Grid"
+ ],
+ [
+ "Teemu",
+ "Åstrand",
+ "Implement",
+ "Grid"
+ ],
+ [
+ "Teemu",
+ "Åstrand",
+ "Implement",
+ "results"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Invent",
+ "the weather"
+ ],
+ [
+ "Joonas",
+ "Signell",
+ "Implement",
+ "teleportation"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Produce",
+ "teleportation"
+ ],
+ [
+ "Johannes",
+ "Suo-Anttila",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Leif",
+ "Lehtinen",
+ "Design",
+ "results"
+ ],
+ [
+ "John",
+ "Lindström",
+ "Invent",
+ "Grid"
+ ],
+ [
+ "Teemu",
+ "Dahlström",
+ "Polish",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Export",
+ "teleportation"
+ ],
+ [
+ "Johannes",
+ "Signell",
+ "Activate",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Signell",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Launch",
+ "world peace"
+ ],
+ [
+ "Artur",
+ "Paul",
+ "Feed",
+ "results"
+ ],
+ [
+ "John",
+ "Åstrand",
+ "Fix",
+ "the dog"
+ ],
+ [
+ "Teemu",
+ "Dahlström",
+ "Polish",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Feed",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Export",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Dahlström",
+ "Polish",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Import",
+ "Vaadin"
+ ],
+ [
+ "Joonas",
+ "Åstrand",
+ "Deliver",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Åstrand",
+ "Launch",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Disable",
+ "results"
+ ],
+ [
+ "Patrik",
+ "Signell",
+ "Deliver",
+ "Grid"
+ ],
+ [
+ "Johannes",
+ "Suo-Anttila",
+ "Deliver",
+ "the weather"
+ ],
+ [
+ "Teemu",
+ "Paul",
+ "Feed",
+ "results"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Produce",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Implement",
+ "teleportation"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Implement",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Lindström",
+ "Fix",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Launch",
+ "teleportation"
+ ],
+ [
+ "John",
+ "Suo-Anttila",
+ "Launch",
+ "Grid"
+ ],
+ [
+ "Johannes",
+ "Åstrand",
+ "Feed",
+ "results"
+ ],
+ [
+ "Teemu",
+ "Lindström",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Activate",
+ "results"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Export",
+ "soup"
+ ],
+ [
+ "Patrik",
+ "Lehtinen",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Fix",
+ "the weather"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Export",
+ "world peace"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Establish",
+ "the dog"
+ ],
+ [
+ "Teemu",
+ "Ahlroos",
+ "Launch",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Åstrand",
+ "Disable",
+ "soup"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Polish",
+ "soup"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Fix",
+ "teleportation"
+ ],
+ [
+ "Teemu",
+ "Suo-Anttila",
+ "Polish",
+ "the dog"
+ ],
+ [
+ "John",
+ "Suo-Anttila",
+ "Import",
+ "the dog"
+ ],
+ [
+ "Johannes",
+ "Åstrand",
+ "Disable",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Activate",
+ "the weather"
+ ],
+ [
+ "John",
+ "Dahlström",
+ "Disable",
+ "world peace"
+ ],
+ [
+ "Joonas",
+ "Ahlroos",
+ "Deliver",
+ "soup"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Implement",
+ "Vaadin"
+ ],
+ [
+ "Henrik",
+ "Ahlroos",
+ "Export",
+ "the weather"
+ ],
+ [
+ "Teemu",
+ "Suo-Anttila",
+ "Polish",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Åstrand",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Signell",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Invent",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Design",
+ "teleportation"
+ ],
+ [
+ "Teemu",
+ "Ahlroos",
+ "Invent",
+ "results"
+ ],
+ [
+ "Patrik",
+ "Lehtinen",
+ "Activate",
+ "results"
+ ],
+ [
+ "Teemu",
+ "Lindström",
+ "Produce",
+ "results"
+ ],
+ [
+ "Leif",
+ "Åstrand",
+ "Import",
+ "the weather"
+ ],
+ [
+ "Joonas",
+ "Ahlroos",
+ "Launch",
+ "world peace"
+ ],
+ [
+ "Leif",
+ "Signell",
+ "Import",
+ "the weather"
+ ],
+ [
+ "Joonas",
+ "Ahlroos",
+ "Disable",
+ "the weather"
+ ],
+ [
+ "Leif",
+ "Signell",
+ "Invent",
+ "results"
+ ],
+ [
+ "John",
+ "Paul",
+ "Polish",
+ "soup"
+ ],
+ [
+ "Leif",
+ "Åstrand",
+ "Feed",
+ "results"
+ ],
+ [
+ "Leif",
+ "Åstrand",
+ "Implement",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Fix",
+ "the dog"
+ ],
+ [
+ "John",
+ "Ahlroos",
+ "Establish",
+ "Vaadin"
+ ],
+ [
+ "Teemu",
+ "Suo-Anttila",
+ "Produce",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Disable",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Lehtinen",
+ "Produce",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Suo-Anttila",
+ "Design",
+ "world peace"
+ ],
+ [
+ "Johannes",
+ "Åstrand",
+ "Polish",
+ "world peace"
+ ],
+ [
+ "Teemu",
+ "Lindström",
+ "Activate",
+ "teleportation"
+ ],
+ [
+ "John",
+ "Ahlroos",
+ "Deliver",
+ "results"
+ ],
+ [
+ "Henrik",
+ "Ahlroos",
+ "Design",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Fix",
+ "the weather"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Establish",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Import",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Export",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Paul",
+ "Design",
+ "world peace"
+ ],
+ [
+ "Johannes",
+ "Suo-Anttila",
+ "Deliver",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Lindström",
+ "Implement",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Åstrand",
+ "Import",
+ "world peace"
+ ],
+ [
+ "Leif",
+ "Lindström",
+ "Design",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Implement",
+ "Grid"
+ ],
+ [
+ "John",
+ "Dahlström",
+ "Activate",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Polish",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Produce",
+ "the weather"
+ ],
+ [
+ "Patrik",
+ "Åstrand",
+ "Launch",
+ "the weather"
+ ],
+ [
+ "Leif",
+ "Paul",
+ "Invent",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Leif",
+ "Signell",
+ "Implement",
+ "teleportation"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Establish",
+ "results"
+ ],
+ [
+ "John",
+ "Suo-Anttila",
+ "Disable",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Fix",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Invent",
+ "Grid"
+ ],
+ [
+ "Johannes",
+ "Paul",
+ "Design",
+ "world peace"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Establish",
+ "the dog"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Establish",
+ "Vaadin"
+ ],
+ [
+ "Joonas",
+ "Signell",
+ "Export",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Invent",
+ "Grid"
+ ],
+ [
+ "Patrik",
+ "Paul",
+ "Disable",
+ "world peace"
+ ],
+ [
+ "John",
+ "Signell",
+ "Launch",
+ "results"
+ ],
+ [
+ "Henrik",
+ "Lehtinen",
+ "Produce",
+ "the weather"
+ ],
+ [
+ "Patrik",
+ "Suo-Anttila",
+ "Disable",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Launch",
+ "Vaadin"
+ ],
+ [
+ "John",
+ "Lehtinen",
+ "Feed",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Launch",
+ "world peace"
+ ],
+ [
+ "Leif",
+ "Lehtinen",
+ "Fix",
+ "teleportation"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Export",
+ "Grid"
+ ],
+ [
+ "Johannes",
+ "Signell",
+ "Polish",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Ahlroos",
+ "Export",
+ "Grid"
+ ],
+ [
+ "Teemu",
+ "Paul",
+ "Fix",
+ "the weather"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Feed",
+ "the weather"
+ ],
+ [
+ "John",
+ "Paul",
+ "Polish",
+ "results"
+ ],
+ [
+ "Patrik",
+ "Lehtinen",
+ "Launch",
+ "teleportation"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Design",
+ "results"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Polish",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Design",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Export",
+ "teleportation"
+ ],
+ [
+ "Patrik",
+ "Lehtinen",
+ "Polish",
+ "Vaadin"
+ ],
+ [
+ "Johannes",
+ "Signell",
+ "Activate",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Signell",
+ "Deliver",
+ "the weather"
+ ],
+ [
+ "John",
+ "Signell",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "Artur",
+ "Paul",
+ "Polish",
+ "the weather"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Implement",
+ "results"
+ ],
+ [
+ "Leif",
+ "Lehtinen",
+ "Implement",
+ "world peace"
+ ],
+ [
+ "Joonas",
+ "Lehtinen",
+ "Establish",
+ "teleportation"
+ ],
+ [
+ "Henrik",
+ "Dahlström",
+ "Polish",
+ "results"
+ ],
+ [
+ "Teemu",
+ "Signell",
+ "Disable",
+ "world peace"
+ ],
+ [
+ "Artur",
+ "Åstrand",
+ "Invent",
+ "Vaadin"
+ ],
+ [
+ "Leif",
+ "Lindström",
+ "Import",
+ "the dog"
+ ],
+ [
+ "Johannes",
+ "Ahlroos",
+ "Establish",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Export",
+ "Vaadin"
+ ],
+ [
+ "Joonas",
+ "Lehtinen",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Johannes",
+ "Paul",
+ "Launch",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Feed",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Paul",
+ "Implement",
+ "world peace"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Export",
+ "soup"
+ ],
+ [
+ "Johannes",
+ "Signell",
+ "Launch",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Suo-Anttila",
+ "Polish",
+ "the dog"
+ ],
+ [
+ "Leif",
+ "Paul",
+ "Establish",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Paul",
+ "Implement",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Signell",
+ "Polish",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Åstrand",
+ "Polish",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Activate",
+ "teleportation"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Launch",
+ "soup"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Lindström",
+ "Deliver",
+ "soup"
+ ],
+ [
+ "Henrik",
+ "Lehtinen",
+ "Disable",
+ "soup"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Produce",
+ "results"
+ ],
+ [
+ "John",
+ "Åstrand",
+ "Implement",
+ "the dog"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Activate",
+ "soup"
+ ],
+ [
+ "John",
+ "Ahlroos",
+ "Design",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Deliver",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Import",
+ "the dog"
+ ],
+ [
+ "John",
+ "Dahlström",
+ "Export",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Import",
+ "results"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Invent",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Åstrand",
+ "Invent",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Polish",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Feed",
+ "the weather"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Activate",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Produce",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Dahlström",
+ "Deliver",
+ "Grid"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Activate",
+ "Grid"
+ ],
+ [
+ "Teemu",
+ "Åstrand",
+ "Launch",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Disable",
+ "Grid"
+ ],
+ [
+ "John",
+ "Åstrand",
+ "Design",
+ "the weather"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Produce",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Suo-Anttila",
+ "Polish",
+ "the weather"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Export",
+ "the weather"
+ ],
+ [
+ "Patrik",
+ "Signell",
+ "Produce",
+ "world peace"
+ ],
+ [
+ "John",
+ "Lehtinen",
+ "Fix",
+ "the dog"
+ ],
+ [
+ "Johannes",
+ "Lehtinen",
+ "Disable",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Export",
+ "Vaadin"
+ ],
+ [
+ "Henrik",
+ "Ahlroos",
+ "Fix",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Feed",
+ "the weather"
+ ],
+ [
+ "Johannes",
+ "Dahlström",
+ "Establish",
+ "Vaadin"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Import",
+ "results"
+ ],
+ [
+ "Patrik",
+ "Åstrand",
+ "Disable",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Suo-Anttila",
+ "Export",
+ "the dog"
+ ],
+ [
+ "Teemu",
+ "Åstrand",
+ "Deliver",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Signell",
+ "Import",
+ "Grid"
+ ],
+ [
+ "Leif",
+ "Lindström",
+ "Design",
+ "soup"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Polish",
+ "soup"
+ ],
+ [
+ "Johannes",
+ "Signell",
+ "Implement",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Activate",
+ "world peace"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Feed",
+ "results"
+ ],
+ [
+ "Artur",
+ "Paul",
+ "Invent",
+ "results"
+ ],
+ [
+ "Teemu",
+ "Paul",
+ "Fix",
+ "world peace"
+ ],
+ [
+ "John",
+ "Åstrand",
+ "Implement",
+ "results"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Implement",
+ "the weather"
+ ],
+ [
+ "Henrik",
+ "Lehtinen",
+ "Fix",
+ "world peace"
+ ],
+ [
+ "Teemu",
+ "Ahlroos",
+ "Feed",
+ "soup"
+ ],
+ [
+ "Henrik",
+ "Ahlroos",
+ "Establish",
+ "Grid"
+ ],
+ [
+ "Patrik",
+ "Lehtinen",
+ "Implement",
+ "Grid"
+ ],
+ [
+ "Joonas",
+ "Åstrand",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "John",
+ "Lindström",
+ "Feed",
+ "results"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Invent",
+ "Grid"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Export",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Signell",
+ "Import",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Paul",
+ "Polish",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Activate",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Paul",
+ "Activate",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Ahlroos",
+ "Polish",
+ "the dog"
+ ],
+ [
+ "John",
+ "Lehtinen",
+ "Polish",
+ "results"
+ ],
+ [
+ "Leif",
+ "Lindström",
+ "Disable",
+ "world peace"
+ ],
+ [
+ "John",
+ "Signell",
+ "Activate",
+ "Vaadin"
+ ],
+ [
+ "Johannes",
+ "Suo-Anttila",
+ "Implement",
+ "the weather"
+ ],
+ [
+ "Johannes",
+ "Lehtinen",
+ "Implement",
+ "teleportation"
+ ],
+ [
+ "John",
+ "Signell",
+ "Establish",
+ "teleportation"
+ ],
+ [
+ "Leif",
+ "Åstrand",
+ "Produce",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Produce",
+ "teleportation"
+ ],
+ [
+ "Teemu",
+ "Ahlroos",
+ "Import",
+ "teleportation"
+ ],
+ [
+ "Henrik",
+ "Lindström",
+ "Produce",
+ "Vaadin"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Design",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Suo-Anttila",
+ "Establish",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Åstrand",
+ "Import",
+ "teleportation"
+ ],
+ [
+ "John",
+ "Signell",
+ "Export",
+ "teleportation"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Feed",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Dahlström",
+ "Feed",
+ "world peace"
+ ],
+ [
+ "Johannes",
+ "Lehtinen",
+ "Produce",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Polish",
+ "the weather"
+ ],
+ [
+ "Leif",
+ "Signell",
+ "Import",
+ "teleportation"
+ ],
+ [
+ "Henrik",
+ "Paul",
+ "Activate",
+ "world peace"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Design",
+ "world peace"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Activate",
+ "results"
+ ],
+ [
+ "Patrik",
+ "Signell",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Activate",
+ "world peace"
+ ],
+ [
+ "Patrik",
+ "Dahlström",
+ "Polish",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Patrik",
+ "Signell",
+ "Deliver",
+ "Vaadin"
+ ],
+ [
+ "Teemu",
+ "Åstrand",
+ "Launch",
+ "the weather"
+ ],
+ [
+ "Patrik",
+ "Lindström",
+ "Polish",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Invent",
+ "the dog"
+ ],
+ [
+ "Patrik",
+ "Ahlroos",
+ "Export",
+ "teleportation"
+ ],
+ [
+ "Teemu",
+ "Signell",
+ "Export",
+ "Grid"
+ ],
+ [
+ "Johannes",
+ "Ahlroos",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Paul",
+ "Launch",
+ "world peace"
+ ],
+ [
+ "Joonas",
+ "Lindström",
+ "Launch",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Export",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Dahlström",
+ "Implement",
+ "teleportation"
+ ],
+ [
+ "Artur",
+ "Ahlroos",
+ "Implement",
+ "the weather"
+ ],
+ [
+ "Joonas",
+ "Suo-Anttila",
+ "Import",
+ "world peace"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Launch",
+ "Vaadin"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Export",
+ "Vaadin"
+ ],
+ [
+ "Leif",
+ "Lindström",
+ "Establish",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Dahlström",
+ "Activate",
+ "teleportation"
+ ],
+ [
+ "Johannes",
+ "Lehtinen",
+ "Deliver",
+ "Grid"
+ ],
+ [
+ "Henrik",
+ "Signell",
+ "Fix",
+ "Vaadin"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Polish",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Fix",
+ "world peace"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Establish",
+ "results"
+ ],
+ [
+ "Joonas",
+ "Signell",
+ "Feed",
+ "the weather"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Disable",
+ "Vaadin"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Launch",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Invent",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Paul",
+ "Deliver",
+ "Vaadin"
+ ],
+ [
+ "John",
+ "Lindström",
+ "Invent",
+ "world peace"
+ ],
+ [
+ "Leif",
+ "Åstrand",
+ "Deliver",
+ "results"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Fix",
+ "the dog"
+ ],
+ [
+ "Henrik",
+ "Suo-Anttila",
+ "Activate",
+ "the dog"
+ ],
+ [
+ "Leif",
+ "Paul",
+ "Deliver",
+ "results"
+ ],
+ [
+ "Leif",
+ "Ahlroos",
+ "Disable",
+ "the weather"
+ ],
+ [
+ "Artur",
+ "Suo-Anttila",
+ "Produce",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Signell",
+ "Disable",
+ "Vaadin"
+ ],
+ [
+ "Joonas",
+ "Lehtinen",
+ "Launch",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Lehtinen",
+ "Deliver",
+ "the weather"
+ ],
+ [
+ "Henrik",
+ "Åstrand",
+ "Export",
+ "Grid"
+ ],
+ [
+ "Artur",
+ "Lindström",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Artur",
+ "Dahlström",
+ "Implement",
+ "the weather"
+ ],
+ [
+ "Joonas",
+ "Dahlström",
+ "Fix",
+ "the weather"
+ ],
+ [
+ "Joonas",
+ "Dahlström",
+ "Activate",
+ "soup"
+ ],
+ [
+ "Johannes",
+ "Dahlström",
+ "Fix",
+ "the weather"
+ ],
+ [
+ "Artur",
+ "Åstrand",
+ "Implement",
+ "soup"
+ ],
+ [
+ "Joonas",
+ "Ahlroos",
+ "Feed",
+ "the dog"
+ ],
+ [
+ "John",
+ "Dahlström",
+ "Invent",
+ "soup"
+ ],
+ [
+ "Patrik",
+ "Suo-Anttila",
+ "Design",
+ "results"
+ ],
+ [
+ "Johannes",
+ "Lindström",
+ "Design",
+ "soup"
+ ],
+ [
+ "Teemu",
+ "Paul",
+ "Fix",
+ "the weather"
+ ],
+ [
+ "John",
+ "Paul",
+ "Produce",
+ "Vaadin"
+ ],
+ [
+ "Leif",
+ "Suo-Anttila",
+ "Feed",
+ "Grid"
+ ],
+ [
+ "Johannes",
+ "Åstrand",
+ "Disable",
+ "Vaadin"
+ ],
+ [
+ "Patrik",
+ "Lehtinen",
+ "Fix",
+ "Vaadin"
+ ]
+ ];
+
+ myBigDataSize = myBigData.length;
diff --git a/vaadin-grid/test/common.js b/vaadin-grid/test/common.js
new file mode 100644
index 0000000..9c5b52a
--- /dev/null
+++ b/vaadin-grid/test/common.js
@@ -0,0 +1,82 @@
+var grid, wrapper;
+
+describe.feature = function(description, suite) {
+ describe(description, function() {
+ before(function(done) {
+ initializeGrid();
+
+ waitUntil(function() {
+ return grid.then;
+ }, done, done);
+ });
+
+ after(function() {
+ return grid; //make sure everything is finished before moving on.
+ });
+
+ suite();
+ });
+};
+
+function waitUntil(check, exec, onTimeout) {
+ var id = setInterval(function() {
+ if (check()) {
+ clearInterval(id);
+ clearTimeout(timeoutId);
+ exec();
+ }
+ }, 100);
+
+ var timeoutId = setTimeout(function() {
+ clearInterval(id);
+ assert.fail();
+ onTimeout();
+ }, 5000);
+}
+
+
+function initializeGrid() {
+ wrapper = document.getElementById("gridwrapper");
+ wrapper.innerHTML = "<v-grid>" +
+ " <table>" +
+ " <col header-text='Name'>" +
+ " <col header-text='Value'>" +
+ " <tbody>" +
+ " <tr>" +
+ " <td>Grid</td>" +
+ " <td>10000</td>" +
+ " </tr>" +
+ " <tr>" +
+ " <td>VaadinX</td>" +
+ " <td>1000</td>" +
+ " </tr>" +
+ " </tbody>" +
+ " <tfoot>" +
+ " <tr>" +
+ " <td>Name</td>" +
+ " <td>Value</td>" +
+ " </tr>" +
+ " </tfoot>"+
+ " </table>" +
+ " </v-grid>";
+ grid = wrapper.querySelector("v-grid");
+
+ return grid;
+};
+
+var local = function() {
+ return Polymer.dom(grid.root);
+};
+var light = function() {
+ return Polymer.dom(grid);
+};
+
+var qLocal = function(selector) {
+ return local().querySelector(selector);
+};
+var qaLocal = function(selector) {
+ return local().querySelectorAll(selector);
+};
+var qLight = function(selector) {
+ return light().querySelector(selector);
+};
diff --git a/vaadin-grid/test/grid-binding-data.html b/vaadin-grid/test/grid-binding-data.html
new file mode 100644
index 0000000..30de8fc
--- /dev/null
+++ b/vaadin-grid/test/grid-binding-data.html
@@ -0,0 +1,189 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('binding data', function() {
+
+ var gridContainsText = function(_grid, text) {
+ return Polymer.dom(_grid.root).querySelector(".v-grid").innerHTML.indexOf(text) > -1;
+ };
+
+ afterEach(function() {
+ return grid.then(function() {
+
+ grid.selection.mode = 'single';
+ grid.columns = [{name: 'Name', headerHtml: 'Name'}, {name: 'Value', headerHtml: 'Value'}];
+ grid.data.source = [['Grid', '10000'], ['VaadinX', '1000']];
+
+ return grid;
+ });
+ });
+
+ it('data: object type', function(done) {
+ grid.columns[0].name = "firstname";
+ grid.columns[1].name = "lastname";
+ grid.columns.push({
+ name: 'salary',
+ headerHtml: "Salary"
+ });
+
+ var mydata = [{
+ firstname: "John",
+ lastname: "Doe",
+ salary: 1234.56
+ }, {
+ firstname: "Jane",
+ lastname: "Doe",
+ salary: 2345.67
+ }, ];
+
+ grid.data.source = function(request) {
+ request.success(mydata.slice(request.index, request.index +
+ request.count), mydata.length);
+ };
+
+
+ waitUntil(function() {
+ return gridContainsText(grid, "2345.67");
+ }, function() {
+ var cells = qaLocal(".v-grid-body .v-grid-cell");
+ assert.equal(cells[0].innerHTML, "John");
+ assert.equal(cells[2].innerHTML, "1234.56");
+ assert.equal(cells[3].innerHTML, "Jane");
+ assert.equal(cells[4].innerHTML, "Doe");
+ done();
+ }, done);
+
+ });
+
+ it('data: array type', function(done) {
+ grid.columns.push({
+ headerHtml: "Salary"
+ });
+
+ mydata = [
+ ["John", "Doe", 1234.56],
+ ["Jane", "Doe", 2345.67],
+ ];
+
+ grid.data.source = mydata;
+
+ waitUntil(function() {
+ return gridContainsText(grid, "2345.67");
+ }, function() {
+ var cells = qaLocal(".v-grid-body .v-grid-cell");
+ assert.equal(cells[0].innerHTML, "John");
+ assert.equal(cells[2].innerHTML, "1234.56");
+ assert.equal(cells[3].innerHTML, "Jane");
+ assert.equal(cells[4].innerHTML, "Doe");
+ done();
+ }, done);
+
+ });
+
+ it('data: boolean type', function(done) {
+ grid.columns.splice(0, 1);
+ grid.selection.mode = "multi";
+
+ waitUntil(function() {
+ return qLocal("input[type='checkbox']");
+ }, function() {
+ var mydata = [
+ false,
+ true,
+ ];
+
+ grid.data.source = function(request) {
+ request.success(mydata.slice(request.index, request.index +
+ request.count), mydata.length);
+ };
+
+ waitUntil(function() {
+ return gridContainsText(grid, "false");
+ }, function() {
+ var cells = qaLocal(".v-grid-body .v-grid-cell");
+ assert.equal(cells[3].innerHTML, "true");
+ done();
+ }, done);
+ }, done);
+
+ });
+
+ it('data: string type', function(done) {
+ grid.columns.splice(0, 1);
+ grid.selection.mode = "multi";
+
+ waitUntil(function() {
+ return qLocal("input[type='checkbox']");
+ }, function() {
+ var mydata = [
+ "Lorem",
+ "Ipsum",
+ ];
+
+ grid.data.source = function(request) {
+ request.success(mydata.slice(request.index, request.index +
+ request.count), mydata.length);
+ };
+
+ waitUntil(function() {
+ return gridContainsText(grid, "Lorem");
+ }, function() {
+ var cells = qaLocal(".v-grid-body .v-grid-cell");
+ assert.equal(cells[3].innerHTML, "Ipsum");
+ done();
+ }, done);
+ }, done);
+
+ });
+
+ it('data: non-object types', function(done) {
+ var first = grid.columns[0];
+ grid.columns.splice(0, 1);
+ grid.columns.push(first);
+ grid.columns.splice(1, 1);
+ grid._grid.setRows(5);
+
+
+ var mydata = [
+ 1, 2, null, undefined, 1, "cellsready"
+ ];
+
+ grid.data.source = function(request) {
+ request.success(mydata.slice(request.index, request.index +
+ request.count), mydata.length);
+ };
+
+ waitUntil(function() {
+ return gridContainsText(grid, "cellsready");
+ }, function() {
+ var cells = qaLocal(".v-grid-body .v-grid-cell");
+ assert.equal(cells[0].innerHTML, "1");
+ assert.equal(cells[1].innerHTML, "2");
+ assert.equal(cells[2].innerHTML, "");
+ assert.equal(cells[3].innerHTML, "");
+ assert.equal(cells[4].innerHTML, "1");
+ done();
+ }, done);
+
+ });
+ });
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-editing-columns.html b/vaadin-grid/test/grid-editing-columns.html
new file mode 100644
index 0000000..8945db4
--- /dev/null
+++ b/vaadin-grid/test/grid-editing-columns.html
@@ -0,0 +1,377 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('editing columns', function() {
+
+ var gridContainsText = function(_grid, text) {
+ return Polymer.dom(_grid.root).querySelector(".v-grid").innerHTML.indexOf(text) > -1;
+ };
+
+ function getFirstCell() {
+ return qLocal('.v-grid-body .v-grid-cell');
+ }
+
+ beforeEach(function() {
+ return grid.then(function() {
+
+ grid.selection.mode = 'single';
+ grid.frozenColumns = 0;
+ grid.columns = [{name: 'Name', headerContent: 'Name'}, {name: 'Value', headerContent: 'Value'}];
+ grid.data.source = [['Grid', '10000'], ['VaadinX', '1000']];
+
+ return grid;
+ });
+ });
+
+ it('add new column', function() {
+ grid.addColumn({
+ name: "foo",
+ headerContent: "<b>Foo</b>",
+ sortable: true,
+ minWidth: 100,
+ maxWidth: 200,
+ width: 150,
+ flex: 1,
+ });
+
+ var c = grid.columns[grid.columns.length - 1];
+ assert.equal(c.name, "foo");
+ assert.equal(c.headerContent, "<b>Foo</b>");
+ assert.equal(c.sortable, true);
+ assert.notOk(c.editable);
+ assert.equal(c.minWidth, 100);
+ assert.equal(c.maxWidth, 200);
+ assert.equal(c.width, 150);
+ assert.equal(c.flex, 1);
+ });
+
+ it('add new column before', function(done) {
+
+ expect(grid.addColumn.bind(grid, {
+ name: "foo"
+ }, -1)).to.throw("Column not found.");
+
+ expect(grid.addColumn.bind(grid, {
+ name: "foo"
+ }, 100)).to.throw("Column not found.");
+
+ grid.addColumn({
+ name: "foo",
+ headerContent: "foo"
+ }, 0);
+ grid.addColumn({
+ name: "bar",
+ headerContent: "testHtml"
+ }, "foo");
+
+ waitUntil(function() {
+ return gridContainsText(grid, "testHtml");
+ }, function() {
+ var headers = qaLocal(".v-grid-header .v-grid-row th");
+ assert.equal(headers[0].innerHTML, "testHtml");
+ assert.equal(headers[1].innerHTML, "foo");
+
+ expect(grid.addColumn.bind(grid, {
+ name: "baz"
+ }, "foobar")).to.throw("Column not found.");
+ done();
+ }, done);
+
+ });
+
+ it('edit new column', function(done) {
+ var c = {
+ name: "foo",
+ headerContent: "testHtml"
+ };
+ grid.addColumn(c);
+
+ waitUntil(function() {
+ return gridContainsText(grid, "testHtml");
+ }, function() {
+
+ var headers = qaLocal(".v-grid-header .v-grid-row th");
+ assert.equal(headers[grid.columns.length - 1].innerHTML, "testHtml");
+
+ c.headerContent = "testHtml2";
+
+ waitUntil(function() {
+ return gridContainsText(grid, "testHtml2");
+ }, function() {
+ assert.equal(headers[grid.columns.length - 1].innerHTML, "testHtml2");
+ done();
+ }, done);
+
+ }, done);
+
+ });
+
+ it('edit existing column', function(done) {
+ grid.columns[0].headerContent = "testHtml";
+ waitUntil(function() {
+ return gridContainsText(grid, "testHtml");
+ }, function() {
+ var headers = qaLocal(".v-grid-header .v-grid-row th");
+ assert.equal(headers[0].innerHTML, "testHtml");
+ done();
+ });
+ });
+
+ it('generated value', function(done) {
+ grid.addColumn({
+ valueGenerator: function(dataItem) {
+ return "foo " + dataItem[0];
+ }
+ });
+
+ waitUntil(function() {
+ return gridContainsText(grid, "foo Grid");
+ }, done, done);
+ });
+
+ it('should not update the generated value', function(done) {
+ grid.columns[0].valueGenerator = function(dataItem) {
+ return Math.random();
+ };
+
+ grid.then(function() {
+ var generatedValue = getFirstCell().innerText;
+ grid.selection.select(0);
+ expect(generatedValue).to.eql(getFirstCell().innerText);
+ done();
+ });
+
+ });
+
+ it('renderer property', function(done) {
+ grid.columns[0].renderer = function(cell) {
+ cell.element.innerHTML = "<b>" + cell.data + "</b>";
+ };
+
+ waitUntil(function() {
+ return gridContainsText(grid, "<b>Grid</b>");
+ }, done, done);
+ });
+
+ it('renderer: cell values on change', function(done) {
+ var mydata = [
+ ["John", "TestFoo"],
+ ["Jane", "TestBar"],
+ ];
+
+ grid.data.source = mydata;
+
+ grid.columns[1].renderer = function(cell) {
+ cell.element.innerHTML = cell.data;
+ cell.element.cell = cell;
+ };
+
+ waitUntil(function() {
+ return gridContainsText(grid, "TestFoo");
+ }, function() {
+ var cell = grid.querySelectorAll(".v-grid-body .v-grid-cell")[3].cell;
+ assert.equal(cell.row.index, 1);
+ assert.equal(cell.index, 1);
+
+ mydata.splice(0, 1);
+ mydata[0].splice(0, 1);
+ grid.data.clearCache();
+
+ grid.columns.splice(0, 1);
+ waitUntil(function() {
+ return !gridContainsText(grid, "TestFoo");
+ }, function() {
+ assert.equal(cell.row.index, 0);
+ assert.equal(cell.index, 0);
+ done();
+ }, done);
+ }, done);
+
+ });
+
+ it('initial property values', function() {
+ assert.equal(grid.columns[0].headerContent, "Name");
+ });
+
+ describe('modifying columns array directly', function() {
+ it('should replace header content', function() {
+ expect(grid.querySelector('th').textContent).to.equal('Name');
+
+ grid.columns[0].headerContent = 'Foo';
+
+ return grid.then(function() {
+ expect(grid.querySelector('th').textContent).to.equal('Foo');
+ });
+ });
+
+ // fails because of replacing columns doesn't render row contents,
+ // see https://trello.com/c/8e27Tv3q/58-v-grid-bugs
+ it.skip('should render row contents', function() {
+ expect(grid.querySelectorAll('td').textContent).to.equal('Grid');
+
+ grid.columns = [{headerContent: 'Foo'}];
+
+ return grid.then(function() {
+ expect(grid.querySelectorAll('td').textContent).to.equal('Grid');
+ });
+ });
+ });
+
+ it('modify columns array', function(done) {
+ var col = grid.columns[0];
+ grid.columns.splice(1, 1);
+
+ waitUntil(function() {
+ return !gridContainsText(grid, "Progress");
+ }, function() {
+ grid.columns.push({
+ headerContent: "testHtml"
+ });
+ waitUntil(function() {
+ return gridContainsText(grid, "testHtml");
+ }, done, done);
+ }, done);
+ });
+
+ it('remove column', function(done) {
+ grid.addColumn({
+ name: "test",
+ headerContent: "test"
+ });
+ grid.removeColumn(0);
+
+ waitUntil(function() {
+ return !gridContainsText(grid, "Name") && gridContainsText(grid, "test");
+ }, function() {
+ grid.removeColumn("test");
+ waitUntil(function() {
+ return !gridContainsText(grid, "test");
+ }, done, done);
+ }, done);
+ });
+
+ it('add new column to an empty grid', function(done) {
+ grid.columns = [];
+
+ grid.columns.push({
+ name: "foo",
+ headerContent: "fooheader"
+ });
+
+ grid.then(function() {
+ expect(gridContainsText(grid, 'fooheader')).to.be.true;
+ done();
+ });
+ });
+
+ it('frozen column', function(done) {
+ grid.frozenColumns = 1;
+
+ waitUntil(function() {
+ return gridContainsText(grid, "v-grid-cell frozen");
+ }, function() {
+ var headers = qaLocal(".v-grid-header .v-grid-row th");
+ assert.isTrue(headers[0].classList.contains("frozen"));
+ done();
+ }, done);
+
+ });
+
+ it('frozen column: unfreeze selection column', function() {
+ grid.selection.mode = "multi";
+ assert.ok(qLocal(".frozen"));
+
+ grid.frozenColumns = -1;
+ assert.notOk(qLocal(".frozen"));
+ });
+
+ it('should add a column to an empty grid with an index', function() {
+ grid.columns = [];
+ return grid.then(function() {
+ grid.addColumn({headerContent: "foo"}, 0);
+ return grid;
+ }).then(function() {
+ expect(qaLocal(".v-grid-header .v-grid-cell")).to.have.length(1);
+ return grid;
+ });
+ });
+
+ it('should reference header cell after adding a new column', function() {
+ grid.addColumn({name: "foo"});
+ grid.header.getCell(0, "foo").content = "foo";
+ expect(grid.columns[2].headerContent).to.eql("foo");
+ });
+
+ it('should support nested column names', function() {
+ grid.addColumn({
+ name: "foo.bar.baz",
+ });
+ grid.data.source = [{
+ foo: {
+ bar: {
+ baz: "testing"
+ }
+ }
+ }];
+ return grid.then(function() {
+ expect(gridContainsText(grid, "testing")).to.be.true;
+ });
+ });
+
+ it('should not return values from name path', function() {
+ grid.addColumn({
+ name: "foo.bar.baz",
+ });
+ grid.data.source = [{
+ foo: {
+ bar: "testing"
+ }
+ }];
+ return grid.then(function() {
+ expect(gridContainsText(grid, "testing")).to.be.false;
+ });
+ });
+
+ it('should allow undefined nested values', function() {
+ grid.addColumn({
+ name: "foo.bar.baz",
+ });
+ grid.data.source = [{
+ foo: {
+ bar: undefined
+ }
+ }];
+ return grid.then(function() {
+ expect(qaLocal(".v-grid-body .v-grid-cell")[2].innerHTML).to.be.empty;
+ });
+ });
+
+ it('should have the right default value if flex attribute exists', function() {
+ qLight("table col").setAttribute("flex", "");
+ return grid.then(function() {
+ expect(grid.columns[0].flex).to.eql(1);
+ expect(grid.columns[1].flex).to.eql(-1);
+ });
+ });
+
+ });
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-editor-handler.html b/vaadin-grid/test/grid-editor-handler.html
new file mode 100644
index 0000000..f02d0b0
--- /dev/null
+++ b/vaadin-grid/test/grid-editor-handler.html
@@ -0,0 +1,206 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('using editor handler', function() {
+ var editorHandler;
+
+ beforeEach(function() {
+ grid.columns = [{name: 'Name'}, {name: 'Value'}];
+ grid.editor.cancel();
+
+ editorHandler = {
+ getCellEditor: function(columnObject) {
+ var input = document.createElement("input");
+ return input;
+ },
+ bind: function(req) {
+ for (var i = 0; i < req.grid.columns.length; i++) {
+ var col = req.grid.columns[i];
+ if (!col.readOnly) {
+ var el = req.getCellEditor(col);
+ el.value = req.dataItem[i];
+ }
+ }
+ req.success();
+ },
+ save: function(req) {
+ var failingColumns = [];
+ for (var i = 0; i < req.grid.columns.length; i++) {
+ var col = req.grid.columns[i];
+ var el = req.getCellEditor(col);
+ if (el.value == "fail") {
+ failingColumns.push(col);
+ }
+ }
+ if (failingColumns.length > 0) {
+ req.failure("Save failed", failingColumns);
+ } else {
+ req.success();
+ }
+ }
+ };
+
+ grid.editor.handler = editorHandler;
+
+ return grid;
+ });
+
+ var gridContainsText = function(_grid, text) {
+ return Polymer.dom(_grid.root).querySelector(".v-grid").innerHTML.indexOf(text) > -1;
+ };
+
+ it('editor: enabled', function() {
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ grid.editor.handler = editorHandler;
+ expect(grid.editor.editRow.bind(grid.editor, 0)).to.throw("editor is not enabled");
+ grid.editor.enabled = true;
+ grid.editor.editRow(0);
+
+ assert.isTrue(gridContainsText(grid, "v-grid-editor"));
+ });
+
+ it('editor: saveButtonText and cancelButtonText', function() {
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ grid.editor.handler = editorHandler;
+ grid.editor.enabled = true;
+ grid.editor.editRow(0);
+ grid.editor.saveButtonText = "saveButtonTextFoo";
+ grid.editor.cancelButtonText = "cancelButtonTextFoo";
+
+ assert.isTrue(gridContainsText(grid, "saveButtonTextFoo"));
+ assert.isTrue(gridContainsText(grid, "cancelButtonTextFoo"));
+ });
+
+ it('editor: editrow', function() {
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ grid.editor.handler = editorHandler;
+ grid.editor.enabled = true;
+
+ grid.editor.editRow(0);
+ assert.equal(qLocal(".v-grid-editor input").value, "Grid");
+ grid.editor.cancel();
+ assert.isFalse(gridContainsText(grid, "v-grid-editor"));
+ grid.editor.editRow(1);
+ assert.equal(qLocal(".v-grid-editor input").value, "VaadinX");
+ grid.editor.save();
+ assert.isFalse(gridContainsText(grid, "v-grid-editor"));
+
+ expect(grid.editor.editRow.bind(grid.editor, 10)).to.throw("Row index");
+ });
+
+ it('editor: failure', function() {
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ grid.editor.handler = editorHandler;
+ grid.editor.enabled = true;
+
+ grid.editor.editRow(0);
+ var fields = qaLocal(".v-grid-editor input");
+ fields[0].value = "fail";
+ grid.editor.save();
+
+ assert.isTrue(gridContainsText(grid, "Save failed"));
+ var cells = qaLocal(".v-grid-editor-cells > div");
+ assert.isTrue(cells[0].classList.contains("error"));
+ assert.isFalse(cells[1].classList.contains("error"));
+
+ });
+
+ it('editor: return null cell editor', function() {
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ grid.editor.handler = {
+ getCellEditor: function(columnObject) {
+ return columnObject === grid.columns[0] ? null : undefined;
+ },
+ bind: function(req) {
+ req.success();
+ }
+ };
+ grid.editor.enabled = true;
+
+ grid.editor.editRow(0);
+ var cells = qaLocal(".v-grid-editor .v-grid-editor-cells > div");
+ assert.lengthOf(cells, 2);
+
+ var editors = qaLocal(".v-grid-editor .v-grid-editor-cells > div *");
+ assert.lengthOf(editors, 0);
+ });
+
+ it('editor: element instance after save', function() {
+ grid.editor.enabled = true;
+ grid.editor.handler = editorHandler;
+
+ var editor1, editor2;
+ editorHandler.save = function(req) {
+ if (!editor1) {
+ editor1 = req.getCellEditor(grid.columns[0]);
+ req.failure();
+ } else {
+ editor2 = req.getCellEditor(grid.columns[0]);
+ req.success();
+ }
+ };
+ grid.editor.editRow(0);
+
+ //Save fails
+ grid.editor.save();
+ //Save succeeds
+ grid.editor.save();
+
+ assert.equal(editor1, editor2);
+ });
+
+ // fails because of replacing columns doesn't render row contents,
+ // see https://trello.com/c/8e27Tv3q/58-v-grid-bugs
+ it.skip('editor: default editor', function() {
+ grid.editor.enabled = true;
+ grid.editor.editRow(0);
+
+ return grid.then(function() {
+ assert.equal("Grid", grid.querySelector('tbody tr td').textContent);
+ assert.equal("Grid", grid.querySelector('input').value);
+
+ grid.querySelector('input').value = "Foo";
+ grid.editor.save();
+ });
+
+ });
+
+ it('editor: getCellEditor and read-only columns', function() {
+ grid.columns[0].readOnly = true;
+
+ sinon.spy(editorHandler, "getCellEditor");
+
+ grid.editor.handler = editorHandler;
+ grid.editor.enabled = true;
+ grid.editor.editRow(0);
+
+ assert.isTrue(editorHandler.getCellEditor.calledOnce);
+
+ editorHandler.getCellEditor.restore();
+ });
+ });
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-properties.html b/vaadin-grid/test/grid-properties.html
new file mode 100644
index 0000000..46743a4
--- /dev/null
+++ b/vaadin-grid/test/grid-properties.html
@@ -0,0 +1,86 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('using properties', function() {
+
+ it('rowClassGenerator', function() {
+ var gridEquals = true;
+ var elementEquals = true;
+ assert.notOk(grid.rowClassGenerator);
+ var rowClassGenerator = function(row) {
+ gridEquals = gridEquals && row.grid == grid;
+ elementEquals = elementEquals && row.element == qaLocal(".v-grid-body .v-grid-row")[row.index];
+ return row.index + "_" + row.data[0];
+ };
+
+ grid.rowClassGenerator = rowClassGenerator;
+
+ assert.isTrue(elementEquals && gridEquals);
+ assert.isTrue(qLocal(".v-grid-body .v-grid-row").classList.contains("0_Grid"));
+ assert.equal(grid.rowClassGenerator, rowClassGenerator);
+ });
+
+ it('cellClassGenerator', function() {
+ var elementEquals = true;
+
+ grid.columns[0].name = "name";
+ grid.columns[1].name = "value";
+ assert.notOk(grid.cellClassGenerator);
+ var cellClassGenerator = function(cell) {
+ var columnIndex = cell.columnName == "name" ? 0 : 1;
+ var cellElement = qaLocal(".v-grid-body .v-grid-row")[cell.row.index].querySelectorAll(".v-grid-cell")[columnIndex];
+ elementEquals = elementEquals && cell.element == cellElement;
+ return cell.columnName;
+ };
+
+ grid.cellClassGenerator = cellClassGenerator;
+
+ assert.isTrue(elementEquals);
+ assert.isTrue(qLocal(".v-grid-body .v-grid-row .v-grid-cell").classList.contains("name"));
+ assert.equal(grid.cellClassGenerator, cellClassGenerator);
+ });
+
+ it('should be enabled by default', function() {
+ expect(grid.disabled).to.be.false;
+ });
+
+ it('should disable', function() {
+ grid.disabled = true;
+ expect(grid.disabled).to.be.true;
+ });
+
+ it('should reflect disabled to attribute', function() {
+ grid.disabled = true;
+ expect(grid.hasAttribute("disabled")).to.be.true;
+ grid.disabled = false;
+ expect(grid.hasAttribute("disabled")).to.be.false;
+ });
+
+ it('should apply disabled attribute', function() {
+ grid.setAttribute("disabled", true);
+ expect(grid.disabled).to.be.true;
+ grid.removeAttribute("disabled");
+ expect(grid.disabled).to.be.false;
+ });
+ });
+
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-redrawer.html b/vaadin-grid/test/grid-redrawer.html
new file mode 100644
index 0000000..2729aa5
--- /dev/null
+++ b/vaadin-grid/test/grid-redrawer.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('redrawer', function() {
+ function width(e) {
+ return pxval(e, 'width');
+ }
+
+ function height(e) {
+ return pxval(e, 'height');
+ }
+
+ function pxval(e, prop) {
+ return parseInt(e.ownerDocument.defaultView.getComputedStyle(e).getPropertyValue(prop).replace('px', ''));
+ }
+
+ describe('redraw', function() {
+ function assertHeightByRows(rows) {
+ var headersHeight = headers * thHeight;
+ var footersHeight = footers * tfHeight;
+
+ h1 = headersHeight + footersHeight + rows * tdHeight;
+ // IE and FF add an aditional pixel to each row
+ h2 = h1 + rows + headers + footers;
+
+ expect([h1, h2]).to.include(height(inner));
+ }
+
+ function assertSameDimensions() {
+ expect(width(grid)).to.equal(width(inner));
+ expect(height(grid)).to.equal(height(inner));
+ }
+
+ var inner,
+ tbody,
+ headers,
+ footers,
+ tfHeight,
+ thHeight,
+ tdHeight
+
+ beforeEach(function() {
+ inner = qLocal("div.v-grid");
+ tbody = qLight('table tbody');
+
+ headers = qaLocal('thead tr').length;
+ footers = qaLocal('tfoot tr').length;
+
+ tfHeight = height(qLocal('tfoot tr td'));
+ thHeight = height(qLocal('thead tr th'));
+ tdHeight = height(qLocal('tbody tr td'));
+ })
+
+ it('should draw correct dimensions and row heights by default', function() {
+ assertSameDimensions();
+ assertHeightByRows(2);
+ });
+
+ it('should redraw correctly after modifying body', function() {
+ tbody.innerHTML += tbody.innerHTML;
+
+ return grid.then(function() {
+ assertSameDimensions();
+ assertHeightByRows(4);
+ });
+ });
+
+ describe('using limited row visibility', function() {
+ beforeEach(function() {
+ // Increase the number of rows
+ tbody.innerHTML += tbody.innerHTML; //4
+ tbody.innerHTML += tbody.innerHTML; //8
+ tbody.innerHTML += tbody.innerHTML; //16
+ });
+
+ it('should redraw only visible rows', function() {
+ return grid.then(function() {
+ assertSameDimensions();
+
+ // grid has a limit of 10 data rows by default
+ assertHeightByRows(10);
+ });
+ });
+
+ it('should redraw visible rows after limit is decreased', function() {
+ grid.rows = 3;
+
+ return grid.then(function() {
+ assertSameDimensions();
+
+ assertHeightByRows(3);
+ });
+ });
+
+ it('should redraw visible rows limit is removed', function() {
+ grid.rows = 0;
+
+ return grid.then(function() {
+ assertSameDimensions();
+
+ assertHeightByRows(10); // default
+ });
+ });
+ });
+
+ it('should redraw with fixed dimensions', function() {
+ grid.style.width = '300px';
+ grid.style.height = '100px';
+
+ return grid.then(function() {
+ assertSameDimensions();
+ });
+ });
+
+ describe('using scaled dimensions', function() {
+ beforeEach(function() {
+ grid.style.position = 'absolute';
+ grid.style.width = '100%';
+ grid.style.height = '100%';
+
+ return grid;
+ });
+
+ it('should redraw with scaled dimensions', function() {
+ assertSameDimensions();
+ });
+
+ it('should match dimensions with the surrounding div', function() {
+ expect(height(grid)).to.equal(document.body.clientHeight);
+
+ // For some reason in IE sometimes there is a slight difference of 1 pixels
+ expect(Math.abs(document.body.clientWidth - width(grid))).to.be.at.most(1);
+ })
+
+ it('should allow different dimensions for v-grid and inner div', function() {
+ // We can have different height for v-grid and the inner grid.
+ // Also we can define more than 10 rows.
+ tbody.innerHTML += tbody.innerHTML; //4
+ tbody.innerHTML += tbody.innerHTML; //8
+ tbody.innerHTML += tbody.innerHTML; //16
+
+ grid.rows = 12;
+ grid.style.width = '50%';
+
+ return grid.then(function() {
+ expect(height(grid)).to.not.equal(height(inner));
+ assert.equal(width(grid), width(inner));
+ assertHeightByRows(12);
+ });
+ });
+ });
+ });
+ });
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-rendering-light-dom.html b/vaadin-grid/test/grid-rendering-light-dom.html
new file mode 100644
index 0000000..0251cd7
--- /dev/null
+++ b/vaadin-grid/test/grid-rendering-light-dom.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('rendering light DOM', function() {
+ it('light dom table header gets rendered in the grid', function() {
+ var row = qLocal(".v-grid-header .v-grid-row");
+ var cells = row.childNodes;
+
+ assert.isTrue(cells[0].innerHTML == 'Name');
+ assert.isTrue(cells[1].innerHTML == 'Value');
+ });
+
+ it('light dom table body gets rendered in the grid', function() {
+ var row = qLocal(".v-grid-body .v-grid-row");
+ var cells = row.childNodes;
+
+ assert.isTrue(cells[0].innerHTML == 'Grid');
+ assert.isTrue(cells[1].innerHTML == '10000');
+ });
+
+ function removeGrid() {
+ if (grid) {
+ grid.style.visibility = "hidden";
+ document.body.appendChild(grid);
+ grid = null;
+ }
+ }
+
+ // makes grid.then in afterEach to never finish...
+ it.skip('DOM: headers & footers', function(done) {
+// removeGrid();
+ wrapper.innerHTML = "<v-grid><table>" +
+ "<thead hidden><tr class='red'><td colspan='2'></td></tr><tr class='pink'><th></th><th></th></tr></thead>" +
+ "<tfoot><tr class='foot1'><td colspan='2'></td></tr><tr class='foot2'><td></td><td></td></tr></tfoot>" +
+ "</table></v-grid>";
+ grid = wrapper.querySelector("v-grid");
+
+ waitUntil(function() {
+ return qLocal(".v-grid-body");
+ }, function() {
+ assert.equal(0, qaLocal("thead tr").length);
+ assert.equal(1, qaLocal("tfoot tr.foot1").length);
+ assert.equal(1, qaLocal("tfoot tr.foot2").length);
+ assert.equal(1, qaLocal("tfoot td[colspan='2']").length);
+
+ qLight("thead").setAttribute('hidden', false)
+ waitUntil(function() {
+ return qaLocal("thead tr").length > 0;
+ }, function() {
+ assert.equal(1, qaLocal("thead tr.red").length);
+ assert.equal(1, qaLocal("thead tr.pink").length);
+ assert.equal(1, qaLocal("thead th[colspan='2']").length);
+ done();
+ }, done);
+
+ }, done);
+ });
+
+ it('DOM: mutation', function(done) {
+ waitUntil(function() {
+ return qLocal(".v-grid-body");
+ }, function() {
+ var nrows = qaLocal("tbody tr").length;
+ var nheads = qaLocal("thead tr").length;
+ qLight("thead").innerHTML += qLight("table thead").innerHTML;
+ qLight("tbody").innerHTML += qLight("table tbody").innerHTML;
+ assert.equal("Name", qLocal("th").textContent);
+ qLight("th").textContent = "foo";
+ waitUntil(function() {
+ return qLocal("tbody tr") && qaLocal("tbody tr").length == nrows * 2;
+ }, function() {
+ assert.equal(qaLocal("tbody tr").length, nrows * 2);
+ assert.equal(qaLocal("thead tr").length, nheads * 2);
+ assert.equal("foo", qLocal("th").textContent);
+ done();
+ }, done);
+ }, done);
+ });
+
+ it('should have a sort-order', function(done) {
+ var ths = light().querySelectorAll("th");
+ ths[0].setAttribute("sort-direction", "asc");
+ ths[1].setAttribute("sort-direction", "desc");
+
+ grid.then(function(){
+ var sortOrder = grid.sortOrder;
+ expect(grid.sortOrder[0]).to.eql({column: 0, direction: "asc"});
+ expect(grid.sortOrder[1]).to.eql({column: 1, direction: "desc"});
+ }).then(done);
+ });
+
+ it('should apply header-text from a th element', function(done) {
+ light().querySelector("th").setAttribute("header-text", "foo");
+
+ grid.then(function(){
+ expect(grid.columns[0].headerHtml).to.eql("foo");
+ }).then(done);
+ });
+
+ it('should apply header-text from a col element', function(done) {
+ var col = document.createElement("col");
+ col.setAttribute("header-text", "foo");
+ light().querySelector("table").prependChild(col);
+
+ grid.then(function(){
+ expect(grid.columns[0].headerHtml).to.eql("foo");
+ }).then(done);
+ });
+
+ });
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-scrolling-rows.html b/vaadin-grid/test/grid-scrolling-rows.html
new file mode 100644
index 0000000..a0ff781
--- /dev/null
+++ b/vaadin-grid/test/grid-scrolling-rows.html
@@ -0,0 +1,114 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+<div id="gridwrapper"></div>
+
+<script>
+ describe.feature('scrolling rows', function() {
+
+ var infiniteDataSource = function(req) {
+ var data = [];
+ for (var i = req.index; i < req.index + req.count; i++) {
+ data.push(["foo " + i, "bar " + i]);
+ }
+ req.success(data, this.size);
+ };
+
+ function firstColumnContents() {
+ var cells = qaLocal('td');
+
+ return _.chain(cells)
+ .filter(function(n) {
+ return _.indexOf(cells, n) % 2 == 0;
+ })
+ .map(function(n) {
+ return n.textContent;
+ })
+ .reduce(function(result, n) {
+ return result + ', ' + n;
+ }).value();
+ }
+
+ before(function() {
+ infiniteDataSource.size = 100;
+ grid.data.source = infiniteDataSource;
+ grid.rows = 5;
+
+ return grid;
+ });
+
+ beforeEach(function() {
+ //reset position to an arbitrary row.
+ return grid.scrollToRow(24).then(function () {
+ // calling scrollToRow - scrollToRow - then seems to quite often
+ // run the callback in 'then' before the latter scrolling has finished.
+ // This is most likely caused by multiple timers being fired inside the Grid,
+ // and there's some gap between them - which makes grid.isWorkPending() to return
+ // 'false' too soon.
+ // Adding one 'then' in between the scrolling calls
+ // doesn't seem to remedy the situation. So let's add more.
+ return grid;
+ });
+ });
+
+ it('should throw an error when scrolling to an invalid row', function() {
+ expect(grid.scrollToRow.bind(grid, -1)).to.throw("Row index");
+ expect(grid.scrollToRow.bind(grid, 100)).to.throw("Row index");
+ });
+
+ it('should scroll using scrollToRow', function() {
+ return grid.scrollToRow(50)
+ .then(function() {
+ expect(firstColumnContents()).to.contain('foo 50');
+ });
+ });
+
+ describe('scrolling with destination', function() {
+ it('should scroll to start', function() {
+ return grid.scrollToRow(50, 'start')
+ .then(function() {
+ expect(firstColumnContents()).to.contain('foo 50');
+ expect(firstColumnContents()).to.contain('foo 54');
+ });
+ });
+
+ it('should scroll to end', function() {
+ return grid.scrollToRow(50, 'end')
+ .then(function() {
+ expect(firstColumnContents()).to.contain('foo 46');
+ expect(firstColumnContents()).to.contain('foo 50');
+ });
+ });
+ });
+
+ it('should scroll to end', function() {
+ return grid.scrollToEnd()
+ .then(function() {
+ expect(firstColumnContents()).to.contain('foo 99');
+ });
+ });
+
+ it('should scroll to start', function() {
+ return grid.scrollToStart()
+ .then(function() {
+ expect(firstColumnContents()).to.contain('foo 0');
+ });
+ });
+ });
+</script>
+
+</body>
+</html>
diff --git a/vaadin-grid/test/grid-selecting-rows.html b/vaadin-grid/test/grid-selecting-rows.html
new file mode 100644
index 0000000..0ac2eee
--- /dev/null
+++ b/vaadin-grid/test/grid-selecting-rows.html
@@ -0,0 +1,645 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+ <div id="gridwrapper"></div>
+
+ <script>
+ describe.feature('selecting rows', function() {
+ var selectListener;
+
+ before(function() {
+ selectListener = sinon.spy();
+ grid.addEventListener('select', selectListener);
+ });
+
+ function getSelectionModeAttr() {
+ return grid.getAttribute('selection-mode');
+ };
+
+ function setSelectionModeAttr(mode) {
+ grid.setAttribute('selection-mode', mode);
+
+ return grid;
+ };
+
+ afterEach(function() {
+ selectListener.reset();
+
+ return grid.then(function() {
+ // force selection clear
+ grid.selection.mode = 'disabled';
+ grid.selection.mode = 'single';
+
+ return grid;
+ });
+ });
+
+ describe('using attributes', function() {
+ describe('selection-mode', function() {
+ it('should set selectionMode to disabled', function() {
+ return setSelectionModeAttr('disabled').then(function() {
+ expect(grid.selection.mode).to.equal('disabled');
+ });
+ });
+
+ it('should set selectionMode to single', function() {
+ return setSelectionModeAttr('single').then(function() {
+ expect(grid.selection.mode).to.equal('single');
+ });
+ });
+
+ it('should set selectionMode to multi', function() {
+ return setSelectionModeAttr('multi').then(function() {
+ expect(grid.selection.mode).to.equal('multi');
+ });
+ });
+
+ it('should should remove selectionMode property', function() {
+ setSelectionModeAttr('disabled');
+ grid.removeAttribute('selection-mode');
+
+ return grid.then(function() {
+ // 'single' is the default
+ expect(grid.selection.mode).to.equal('single');
+ });
+ });
+
+ // TODO: throws an error, but for some reason expect doesn't catch it.
+ it.skip('should fail setting the value to foobar', function() {
+ expect(function() {
+ setSelectionModeAttr('foobar');
+ }).to.throw(Object);
+ });
+ });
+ });
+
+ describe('using properties', function() {
+ describe('selection.mode', function() {
+ var checkBoxQuery = "input[type='checkbox']";
+
+ it('should be single by default', function() {
+ expect(grid.selection.mode).to.equal('single');
+ });
+
+ it('should be use default value when removing the value', function() {
+ grid.selection.mode = 'disabled';
+
+ grid.selection.mode = undefined;
+
+ expect(grid.selection.mode).to.equal('single');
+ });
+
+ it('should set selection-mode to disabled', function() {
+ grid.selection.mode = 'disabled';
+
+ return grid.then(function() {
+ expect(getSelectionModeAttr()).to.equal('disabled');
+ expect(qLocal(checkBoxQuery)).to.be.undefined;
+ });
+ });
+
+ it('should set selection-mode to single', function() {
+ grid.selection.mode = 'single';
+
+ return grid.then(function() {
+ expect(getSelectionModeAttr()).to.equal('single');
+ expect(qLocal(checkBoxQuery)).to.be.undefined;
+ });
+ });
+
+ it('should set selection-mode to multi', function() {
+ grid.selection.mode = 'multi';
+
+ return grid.then(function() {
+ expect(getSelectionModeAttr()).to.equal('multi');
+ expect(qLocal(checkBoxQuery)).to.not.be.undefined;
+ });
+ });
+
+ it('should fail setting the value to foobar', function() {
+ expect(function() {
+ grid.selection.mode = 'foobar';
+ }).to.throw(Object);
+ });
+ });
+
+ describe('selected', function() {
+ describe('with mode: single', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'single';
+ });
+
+ it('should clear the selection when changing mode to disabled', function() {
+ grid.selection.select(0);
+
+ grid.selection.mode = 'disabled';
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('should clear selection when changing mode to multi', function() {
+ grid.selection.select(0);
+
+ grid.selection.mode = 'multi';
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+ });
+
+ describe('with selectionMode: multi', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'multi';
+ });
+
+ it('should fire a \'select\' event', function() {
+ grid.selection.select(0);
+
+ expect(selectListener.calledOnce).to.be.true;
+ });
+
+ it('should clear the selection when changing mode to disabled', function() {
+ grid.selection.select(0);
+
+ grid.selection.mode = 'disabled';
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('should clear selection when changing mode to single', function() {
+ grid.selection.select(0);
+
+ grid.selection.mode = 'single';
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('should remove multiple selections when changing mode to single', function() {
+ grid.selection.select(0);
+ grid.selection.select(1);
+
+ grid.selection.mode = 'single';
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+ });
+
+ describe('with selectionMode: disabled', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'disabled';
+ });
+
+ it('should not select any rows', function() {
+ grid.selection.select(0);
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+ });
+ });
+ });
+
+ describe('by clicking', function() {
+ function getFirstCell() {
+ return qLocal('.v-grid-body .v-grid-cell');
+ }
+
+ function clickFirstCell() {
+ getFirstCell().click();
+
+ return grid;
+ }
+
+ before(function() {
+ // extra 'wait' added for IE11.
+ return grid;
+ });
+
+ it('should fire a \'select\' event', function()  {
+ return clickFirstCell().then(function() {
+ expect(selectListener.calledOnce).to.be.true;
+ expect(selectListener.args[0][0]).to.have.property('type', 'select');
+ });
+ });
+
+ describe('with selection-mode: single', function() {
+ beforeEach(function() {
+ return setSelectionModeAttr('single');
+ });
+
+ it('should select a row', function() {
+ return clickFirstCell().then(function() {
+ expect(grid.selection.selected()).to.eql([0]);
+ });
+ });
+ });
+
+ describe('with selection-mode: multi', function() {
+ beforeEach(function() {
+ return setSelectionModeAttr('multi');
+ });
+
+ it('should only focus a clicked cell', function() {
+ return clickFirstCell().then(function() {
+ expect(grid.selection.selected()).to.be.empty;
+ expect(getFirstCell().getAttribute('class')).to.contain('focus');
+ });
+ });
+
+ // TODO: apparently clicking checkboxes isn't going to happen using JS...
+ it.skip('should select multiple rows', function() {
+ var inputs = qaLocal('input');
+ inputs[0].checked = true;
+ inputs[1].click();
+
+ expect(getSelectedRowsAttr()).to.equal('0,1');
+ });
+ });
+
+ describe('with selection-mode: disabled', function() {
+ beforeEach(function() {
+ return setSelectionModeAttr('disabled');
+ });
+
+ it('should not select a row', function() {
+ return clickFirstCell().then(function() {
+ expect(grid.selection.selected()).to.be.empty;
+ });
+ });
+ });
+ });
+
+ describe('by using API', function() {
+ it('should fire a \'select\' event', function() {
+ grid.selection.select(0);
+
+ expect(selectListener.calledOnce).to.be.true;
+ });
+
+ it('should not select invalid row', function() {
+ grid.selection.select('foo');
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('should add \'row-selected\' class to the selected row', function() {
+ return grid.selection.select(1).then(function() {
+ expect(qaLocal('.v-grid-body .v-grid-row-selected')).to.have.length(1);
+ });
+ });
+
+ describe('with selectionMode: single', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'single';
+ });
+
+ it('should select a row', function() {
+ grid.selection.select(1);
+
+ expect(grid.selection.selected()).to.eql([1]);
+ });
+
+ it('should select another row', function() {
+ grid.selection.select(1);
+ grid.selection.select(0);
+
+ expect(grid.selection.selected()).to.eql([0]);
+ });
+ });
+
+ describe('with selectionMode: multi', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'multi';
+ })
+
+ it('should select multiple rows', function() {
+ grid.selection.select(0);
+ grid.selection.select(1);
+
+ expect(grid.selection.selected()).to.eql([0,1]);
+ });
+ });
+
+ describe('with selectionMode: disabled', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'disabled';
+ });
+
+ it('should not select a row', function() {
+ grid.selection.select(0);
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+ });
+ });
+
+ describe('deselecting rows using API', function() {
+ it('should fire \'select\' event', function() {
+ grid.selection.select(0);
+
+ grid.selection.deselect(0);
+
+ expect(selectListener.calledTwice).to.be.true;
+ });
+
+ describe('with selectionMode: single', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'single';
+ });
+
+ it('should deselect a row', function() {
+ grid.selection.select(0);
+
+ grid.selection.deselect(0);
+
+ expect(grid.selectedRows).to.be.empty;
+ });
+
+ it('should not deselect other rows', function() {
+ grid.selection.select(0);
+
+ grid.selection.deselect(1);
+
+ expect(grid.selection.selected()).to.eql([0]);
+ });
+ });
+
+ describe('with selectionMode: multi', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'multi';
+ });
+
+ it('should deselect a single row', function() {
+ grid.selection.select(0);
+ grid.selection.select(1);
+
+ grid.selection.deselect(0);
+
+ expect(grid.selection.selected()).to.eql([1]);
+ });
+ });
+ });
+
+ describe('selected indexes', function() {
+
+ describe('in mode: single', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'single';
+ grid.selection.select(0);
+ });
+
+ it('should have a right size', function() {
+ expect(grid.selection.size).to.eql(1);
+ });
+
+ it('should have right deselections', function() {
+ expect(grid.selection.deselected()).to.be.empty;
+ });
+
+ it('should have right selections', function() {
+ expect(grid.selection.selected()).to.eql([0]);
+ });
+
+ it('should iterate right selections', function() {
+ var spy = sinon.spy();
+ grid.selection.selected(spy);
+ expect(spy.calledOnce).to.be.true;
+ });
+
+ it('should return right mapped value', function() {
+ var mapper = function(index){
+ return "foo " + index;
+ };
+ expect(grid.selection.selected(mapper)).to.eql(["foo 0"]);
+ });
+
+ it('should return nothing with iterator', function() {
+ var iterator = function(i){
+ // Itearate
+ };
+ expect(grid.selection.selected(iterator)).to.be.empty;
+ });
+
+ it('clear should work right', function() {
+ grid.selection.clear();
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('selectAll should work right', function() {
+ grid.selection.selectAll();
+ expect(grid.selection.selected()).to.be.empty;
+ });
+ });
+
+ describe('in mode: multi', function() {
+ beforeEach(function() {
+ grid.data.source = function(req) {
+ var data = [];
+ for (var i = req.index; i < req.index + req.count; i++) {
+ data.push(["foo " + i, "bar " + i]);
+ }
+ req.success(data, 100);
+ };
+ grid.selection.mode = 'multi';
+ grid.selection.select(0);
+ grid.selection.select(1);
+ grid.selection.select(80);
+ grid.selection.select(81);
+ });
+
+ it('should have a right size', function() {
+ expect(grid.selection.size).to.eql(4);
+ });
+
+ it('should have right deselections', function() {
+ expect(grid.selection.deselected()).to.be.empty;
+ });
+
+ it('should have right selections', function() {
+ expect(grid.selection.selected()).to.eql([0,1,80,81]);
+ });
+
+ it('should iterate right selections', function() {
+ var spy = sinon.spy();
+ grid.selection.selected(spy);
+ expect(spy.callCount).to.eql(4);
+ });
+
+ it('should return right mapped value', function() {
+ var mapper = function(index){
+ return "foo " + index;
+ };
+ expect(grid.selection.selected(mapper)).to.eql(["foo 0", "foo 1", "foo 80", "foo 81"]);
+ });
+
+ it('should return nothing with iterator', function() {
+ var iterator = function(i){
+ // Itearate
+ };
+ expect(grid.selection.selected(iterator)).to.be.empty;
+ });
+
+ it('should return tail', function() {
+ expect(grid.selection.selected(undefined, 3)).to.eql([81]);
+ });
+
+ it('should return head', function() {
+ expect(grid.selection.selected(undefined, undefined, 1)).to.eql([0, 1]);
+ });
+
+ it('should return range', function() {
+ expect(grid.selection.selected(undefined, 1, 2)).to.eql([1, 80]);
+ });
+
+ it('clear should work right', function() {
+ grid.selection.clear();
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('selectAll should work right', function() {
+ grid.selection.selectAll();
+ expect(grid.selection.mode).to.eql("all");
+ });
+
+ });
+
+ describe('in mode: all', function() {
+ beforeEach(function() {
+ grid.data.source = function(req) {
+ var data = [];
+ for (var i = req.index; i < req.index + req.count; i++) {
+ data.push(["foo " + i, "bar " + i]);
+ }
+ req.success(data, 100);
+ };
+ grid.selection.mode = 'all';
+ grid.selection.deselect(0);
+ grid.selection.deselect(1);
+ grid.selection.deselect(80);
+ grid.selection.deselect(81);
+ });
+
+ it('should have a right size', function() {
+ expect(grid.selection.size).to.eql(96);
+ });
+
+ it('should have right deselections', function() {
+ expect(grid.selection.deselected()).to.eql([0,1,80,81]);
+ });
+
+ it('should have right selections', function() {
+ expect(grid.selection.selected()).to.have.length(96);
+ });
+
+ it('should iterate right selections', function() {
+ var spy = sinon.spy();
+ grid.selection.selected(spy);
+ expect(spy.callCount).to.eql(96);
+ });
+
+ it('should return right mapped value', function() {
+ var mapper = function(index){
+ return "foo " + index;
+ };
+ expect(grid.selection.selected(mapper)).to.contain("foo 2");
+ expect(grid.selection.deselected(mapper)).to.eql(["foo 0", "foo 1", "foo 80", "foo 81"]);
+ });
+
+ it('should return nothing with iterator', function() {
+ var iterator = function(i){
+ // Itearate
+ };
+ expect(grid.selection.selected(iterator)).to.be.empty;
+ expect(grid.selection.deselected(iterator)).to.be.empty;
+ });
+
+ it('should return tail', function() {
+ expect(grid.selection.selected(undefined, 50)).to.have.length(46);
+ expect(grid.selection.deselected(undefined, 3)).to.eql([81]);
+ });
+
+ it('should return head', function() {
+ expect(grid.selection.selected(undefined, undefined, 30)).to.have.length(31);
+ expect(grid.selection.deselected(undefined, undefined, 1)).to.eql([0, 1]);
+ });
+
+ it('should not contain deselected values', function() {
+ expect(grid.selection.selected()).not.to.contain(0);
+ expect(grid.selection.selected()).not.to.contain(80);
+ });
+
+ it('should return range', function() {
+ expect(grid.selection.selected(undefined, 1, 2)).to.eql([3, 4]);
+ expect(grid.selection.deselected(undefined, 1, 2)).to.eql([1, 80]);
+ });
+
+ it('clear should work right', function() {
+ grid.selection.clear();
+ expect(grid.selection.mode).to.eql("multi");
+ });
+
+ it('selectAll should work right', function() {
+ grid.selection.selectAll();
+ expect(grid.selection.deselected()).to.be.empty;
+ });
+
+ });
+
+ describe('in mode: disabled', function() {
+ beforeEach(function() {
+ grid.selection.mode = 'disabled';
+ grid.selection.select(0);
+ });
+
+ it('should have a right size', function() {
+ expect(grid.selection.size).to.eql(0);
+ });
+
+ it('should have right deselections', function() {
+ expect(grid.selection.deselected()).to.eql([]);
+ });
+
+ it('should have right selections', function() {
+ expect(grid.selection.selected()).to.eql([]);
+ });
+
+ it('should iterate right selections', function() {
+ var spy = sinon.spy();
+ grid.selection.selected(spy);
+ expect(spy.callCount).to.eql(0);
+ });
+
+ it('should return right mapped value', function() {
+ var mapper = function(index){
+ return "foo " + index;
+ };
+ expect(grid.selection.selected(mapper)).to.eql([]);
+ expect(grid.selection.deselected(mapper)).to.eql([]);
+ });
+
+ it('selectAll should work right', function() {
+ grid.selection.selectAll();
+ expect(grid.selection.selected()).to.eql([]);
+ });
+
+ });
+
+ });
+
+
+ });
+ </script>
+</body>
+
+</html>
diff --git a/vaadin-grid/test/grid-sorting-rows.html b/vaadin-grid/test/grid-sorting-rows.html
new file mode 100644
index 0000000..59acbbf
--- /dev/null
+++ b/vaadin-grid/test/grid-sorting-rows.html
@@ -0,0 +1,100 @@
+<!DOCTYPE html>
+<html>
+
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+
+<body>
+
+ <div id="gridwrapper"></div>
+
+ <script>
+ describe.feature('sorting rows', function() {
+
+ describe('using api', function() {
+
+ function assignInvalidSortOrder() {
+ grid.data.sortOrder = [{
+ column: 0,
+ direction: "ascending" // Should be asc or desc
+ }];
+ }
+
+ beforeEach(function() {
+ grid.columns[0].sortable = true;
+ grid.columns[1].sortable = true;
+ });
+
+ it('should set sortOrder property', function() {
+ grid.data.sortOrder = [{
+ column: 0,
+ direction: "desc"
+ }];
+
+ expect(qLocal(".v-grid-header th").classList.contains("sort-desc")).to.be.true;
+ });
+
+ it('should clear sort order', function() {
+ grid.data.sortOrder = [{
+ column: 0,
+ direction: "desc"
+ }];
+ grid.data.sortOrder = [];
+ expect(grid.data.sortOrder).to.be.empty;
+ });
+
+ it('should preserve existing sort order on invalid value', function() {
+ grid.data.sortOrder = [{
+ column: 0,
+ direction: "desc"
+ }];
+ expect(assignInvalidSortOrder).to.throw("Invalid sort direction");
+ expect(qLocal(".v-grid-header th").classList.contains("sort-desc")).to.be.true;
+ });
+
+ it('should be able to sort with multiple columns', function() {
+ grid.data.sortOrder = [{
+ column: 0,
+ direction: "desc"
+ }, {
+ column: 1
+ }];
+ assert.lengthOf(grid.data.sortOrder, 2);
+ expect(qaLocal(".v-grid-header th")[0].classList.contains("sort-desc")).to.be.true;
+ expect(qaLocal(".v-grid-header th")[1].classList.contains("sort-asc")).to.be.true;
+ });
+
+ it('should reset selection', function() {
+ grid.selectedRows = [0];
+
+ grid.data.sortOrder = [{
+ column: 0,
+ direction: "desc"
+ }];
+
+ expect(grid.selection.selected()).to.be.empty;
+ });
+
+ it('should ignore selection column from index', function() {
+ var firstNonFrozenHeaderCell = qLocal.bind(this, ".v-grid-header .v-grid-cell:not(.frozen)");
+
+ firstNonFrozenHeaderCell().click();
+ expect(grid.data.sortOrder[0].column).to.eql(0);
+
+ grid.selection.mode = "multi";
+ firstNonFrozenHeaderCell().click();
+ expect(grid.data.sortOrder[0].column).to.eql(0);
+ });
+
+
+ });
+ });
+ </script>
diff --git a/vaadin-grid/test/grid-static-sections.html b/vaadin-grid/test/grid-static-sections.html
new file mode 100644
index 0000000..ff4c452
--- /dev/null
+++ b/vaadin-grid/test/grid-static-sections.html
@@ -0,0 +1,222 @@
+<!DOCTYPE html>
+<html>
+<head lang="en">
+ <meta charset="UTF-8">
+ <title></title>
+ <script src="../../webcomponentsjs/webcomponents-lite.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+
+ <script src="common.js"></script>
+
+ <link rel="import" href="../vaadin-grid.html">
+</head>
+<body>
+ <div id="gridwrapper"></div>
+
+ <script>
+ describe.feature('static sections', function() {
+ function removeHeaders() {
+ for(var i = grid.header.rowCount;i>0;i--) {
+ grid.header.removeRow();
+ }
+ }
+
+ function removeFooters() {
+ for(var i = grid.footer.rowCount;i>0;i--) {
+ grid.footer.removeRow();
+ }
+ }
+
+ beforeEach(function() {
+ removeHeaders();
+ removeFooters();
+
+ grid.header.addRow(0, ['Name', 'Value']);
+ grid.footer.addRow(0, ['Name', 'Value']);
+
+ grid.header.hidden = false;
+ grid.footer.hidden = false;
+
+ return grid;
+ });
+
+ describe('header.defaultRow', function() {
+ it('should be 0 by default', function() {
+ expect(grid.header.defaultRow).to.equal(0);
+ });
+
+ it('should fail when set to a nonexisting row', function() {
+ expect(function() {
+ grid.header.defaultRow = 1;
+ }).to.throw('Row with index 1 does not exist');
+ });
+
+ it('should set the defaultRow', function() {
+ grid.header.addRow();
+
+ // sorting indicator moves to the default row, so we'll
+ // use that to assert that default row has changed.
+ grid.columns[0].sortable = true;
+ grid.data.sortOrder = [{column: 0, direction: 'asc'}];
+
+ grid.header.defaultRow = 1;
+
+ var cells = qaLocal('.v-grid-header .v-grid-cell');
+ expect(cells[2].classList[1]).to.equal('sort-asc');
+ });
+
+ it('should have content in sync with column.headerContent', function() {
+ var column = grid.columns[0];
+ var headerCell = grid.header.getCell(grid.header.defaultRow, 0);
+
+ column.headerContent = "foo";
+ expect(headerCell.content).to.eql("foo");
+
+ headerCell.content = "bar";
+ expect(column.headerContent).to.eql("bar");
+ });
+
+ });
+
+ ['header', 'footer'].forEach(function(section) {
+ describe(section, function() {
+ it('should be readonly', function() {
+ var originalValue = grid[section];
+
+ grid[section] = undefined;
+
+ expect(grid[section]).to.equal(originalValue);
+ });
+
+ describe('getCell', function() {
+ it('should return correct cell using indeces', function() {
+ var cell = grid[section].getCell(0,0);
+
+ expect(cell.content).to.equal('Name');
+ });
+
+ it('should return correct cell using identifier', function() {
+ grid.columns[0].name = 'foo';
+
+ var cell = grid[section].getCell(0, 'foo');
+
+ expect(cell.content).to.equal('Name');
+ });
+
+ it('should return correct cell from appended row', function() {
+ grid[section].addRow(1, [section + 'foo']);
+
+ var cell = grid[section].getCell(1, 0);
+
+ expect(cell.content).to.equal(section + 'foo');
+ });
+ });
+
+ describe('cell', function() {
+ describe('content', function() {
+ it('should set content', function() {
+ var cell = grid[section].getCell(0,0);
+ cell.content = 'foo';
+
+ expect(grid[section].getCell(0,0).content).to.equal('foo');
+ });
+
+ it('should set html content', function() {
+ var cell = grid[section].getCell(0, 0);
+
+ var input = document.createElement('input');
+ cell.content = input;
+
+ expect(qLocal('.v-grid-' + section + ' .v-grid-cell > input')).to.not.be.undefined;
+ });
+ });
+
+ describe('hidden', function() {
+ it('should clear innerHTML', function() {
+ grid[section].hidden = true;
+
+ expect(qLocal('.v-grid-' + section).innerHTML).to.be.empty;
+ });
+ });
+
+ describe('colspan', function() {
+ it('should hide spanned cells', function() {
+ var cell = grid[section].getCell(0, 0);
+
+ cell.colspan = 2;
+
+ return grid.then(function() {
+ expect(qaLocal(".v-grid-" + section + " .v-grid-cell")[1].style.display).to.equal('none');
+ });
+ });
+ });
+ });
+
+ describe('addRow', function() {
+ it('should append new row', function() {
+ grid[section].addRow();
+
+ grid[section].getCell(1,0).content = 'foo';
+ grid[section].getCell(1,1).content = 'bar';
+
+ var cells = qaLocal('.v-grid-' + section + ' .v-grid-cell');
+ expect(cells[0].innerHTML).to.equal('Name');
+ expect(cells[1].innerHTML).to.equal('Value');
+ expect(cells[2].innerHTML).to.equal('foo');
+ expect(cells[3].innerHTML).to.equal('bar');
+ });
+
+ it('should insert new row to correct index', function() {
+ grid[section].addRow(0);
+
+ grid[section].getCell(0,0).content = 'foo';
+ grid[section].getCell(0,1).content = 'bar';
+
+ var cells = qaLocal('.v-grid-' + section + ' .v-grid-cell');
+ expect(cells[0].innerHTML).to.equal('foo');
+ expect(cells[1].innerHTML).to.equal('bar');
+ expect(cells[2].innerHTML).to.equal('Name');
+ expect(cells[3].innerHTML).to.equal('Value');
+ });
+
+ it('should insert content to a new row', function() {
+ grid[section].addRow(0, ['foo', 'bar']);
+
+ var cells = qaLocal(".v-grid-" + section + " .v-grid-cell");
+ expect(cells[0].innerHTML).to.equal('foo');
+ expect(cells[1].innerHTML).to.equal('bar');
+ });
+ });
+
+ describe('removeRow', function() {
+ it('should remove first row', function() {
+ grid[section].removeRow();
+
+ expect(qaLocal('.v-grid-' + section + ' .v-grid-cell')).to.be.empty;
+ });
+
+ it('should remove a specific row', function() {
+ grid[section].addRow(0, ['foo', 'bar']);
+
+ grid[section].removeRow(1);
+
+ expect(qaLocal('.v-grid-' + section + ' .v-grid-cell')).to.have.length(2);
+ });
+ });
+
+ describe('setRowClassName', function() {
+ it('should set the classname of a specific row', function() {
+ grid[section].addRow();
+
+ grid[section].setRowClassName(1, 'second');
+
+ var rows = qaLocal(".v-grid-" + section + " .v-grid-row");
+ expect(rows[1].classList[1]).to.equal('second');
+ });
+ });
+ });
+ });
+ });
+ </script>
+</body>
+</html> \ No newline at end of file
diff --git a/vaadin-grid/test/index.html b/vaadin-grid/test/index.html
new file mode 100644
index 0000000..d13a956
--- /dev/null
+++ b/vaadin-grid/test/index.html
@@ -0,0 +1,24 @@
+<!doctype html>
+<html>
+<head>
+ <meta charset="utf-8">
+ <script src="../../webcomponentsjs/webcomponents.min.js"></script>
+ <script src="../../web-component-tester/browser.js"></script>
+</head>
+<body>
+<script>
+WCT.loadSuites([
+ 'grid-binding-data.html',
+ 'grid-editing-columns.html',
+ 'grid-editor-handler.html',
+ 'grid-properties.html',
+// 'grid-redrawer.html',
+// 'grid-rendering-light-dom.html',
+ 'grid-scrolling-rows.html',
+ 'grid-selecting-rows.html',
+ 'grid-static-sections.html',
+ 'grid-sorting-rows.html'
+]);
+</script>
+</body>
+</html>
diff --git a/vaadin-grid/vaadin-grid-import.html b/vaadin-grid/vaadin-grid-import.html
new file mode 100644
index 0000000..ed52213
--- /dev/null
+++ b/vaadin-grid/vaadin-grid-import.html
@@ -0,0 +1,635 @@
+<!DOCTYPE html>
+<html>
+<head>
+<script>
+$wnd = window; $doc = document;
+function VaadinGrid(){var N='bootstrap',O='begin',P='gwt.codesvr.VaadinGrid=',Q='gwt.codesvr=',R='VaadinGrid',S='startup',T='DUMMY',U=0,V=1,W='iframe',X='javascript:""',Y='position:absolute; width:0; height:0; border:none; left: -1000px;',Z=' top: -1000px;',$='CSS1Compat',_='<!doctype html>',ab='',bb='<html><head><\/head><body><\/body><\/html>',cb='_',db='$1',eb='script',fb='javascript',gb='meta',hb='name',ib='VaadinGrid::',jb='::',kb='gwt:property',lb='content',mb='=',nb='gwt:onPropertyErrorFn',ob='Bad handler "',pb='" for "gwt:onPropertyErrorFn"',qb='gwt:onLoadErrorFn',rb='" for "gwt:onLoadErrorFn"',sb='#',tb='?',ub='/',vb='img',wb='clear.cache.gif',xb='baseUrl',yb='VaadinGrid.nocache.js',zb='base',Ab='//',Bb='modernie',Cb='MSIE',Db='Trident',Eb='yes',Fb='none',Gb='selectorCapability',Hb='function',Ib='native',Jb='js',Kb='user.agent',Lb='webkit',Mb='safari',Nb='msie',Ob=10,Pb=11,Qb='ie10',Rb=9,Sb='ie9',Tb=8,Ub='ie8',Vb='gecko',Wb='gecko1_8',Xb=2,Yb=3,Zb=4,$b='selectingPermutation',_b='VaadinGrid.devmode.js',ac='9AA0A0AC5E358B02BE77F43AA1BE25A5',bc=':1',cc=':2',dc=':3',ec=':4',fc=':5',gc=':6',hc=':',ic='.cache.js',jc='loadExternalRefs',kc='end',lc='http:',mc='file:',nc='_gwt_dummy_',oc='__gwtDevModeHook:VaadinGrid',pc='Ignoring non-whitelisted Dev Mode URL: ',qc=':moduleBase',rc='head';var n=window;var o=document;q(N,O);function p(){var a=n.location.search;return a.indexOf(P)!=-1||a.indexOf(Q)!=-1}
+function q(a,b){if(n.__gwtStatsEvent){n.__gwtStatsEvent({moduleName:R,sessionId:n.__gwtStatsSessionId,subSystem:S,evtGroup:a,millis:(new Date).getTime(),type:b})}}
+VaadinGrid.__sendStats=q;VaadinGrid.__moduleName=R;VaadinGrid.__errFn=null;VaadinGrid.__moduleBase=T;VaadinGrid.__softPermutationId=U;VaadinGrid.__computePropValue=null;VaadinGrid.__getPropMap=null;VaadinGrid.__installRunAsyncCode=function(){};VaadinGrid.__gwtStartLoadingFragment=function(){return null};VaadinGrid.__gwt_isKnownPropertyValue=function(){return false};VaadinGrid.__gwt_getMetaProperty=function(){return null};var r=null;var s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[R]={moduleName:R};VaadinGrid.__moduleStartupDone=function(e){var f=s[R].bindings;s[R].bindings=function(){var a=f?f():{};var b=e[VaadinGrid.__softPermutationId];for(var c=U;c<b.length;c++){var d=b[c];a[d[U]]=d[V]}return a}};var t;function u(){v();return t}
+function v(){if(t){return}var a=o.createElement(W);a.src=X;a.id=R;a.style.cssText=Y+Z;a.tabIndex=-1;o.body.appendChild(a);t=a.contentDocument;if(!t){t=a.contentWindow.document}t.open();var b=document.compatMode==$?_:ab;t.write(b+bb);t.close()}
+function w(a){this[cb+a.replace(/.*([\dA-F]{32}).cache.js/,db)](window,document)}
+VaadinGrid.__startLoadingFragment=function(a){return C(a)};VaadinGrid.__installRunAsyncCode=function(a){var b=u();var c=b.body;var d=b.createElement(eb);d.language=fb;d.text=a;c.appendChild(d);c.removeChild(d)};function A(){var c={};var d;var e;var f=o.getElementsByTagName(gb);for(var g=U,h=f.length;g<h;++g){var i=f[g],j=i.getAttribute(hb),k;if(j){j=j.replace(ib,ab);if(j.indexOf(jb)>=U){continue}if(j==kb){k=i.getAttribute(lb);if(k){var l,m=k.indexOf(mb);if(m>=U){j=k.substring(U,m);l=k.substring(m+V)}else{j=k;l=ab}c[j]=l}}else if(j==nb){k=i.getAttribute(lb);if(k){try{d=eval(k)}catch(a){alert(ob+k+pb)}}}else if(j==qb){k=i.getAttribute(lb);if(k){try{e=eval(k)}catch(a){alert(ob+k+rb)}}}}}__gwt_getMetaProperty=function(a){var b=c[a];return b==null?null:b};r=d;VaadinGrid.__errFn=e}
+function B(){function e(a){var b=a.lastIndexOf(sb);if(b==-1){b=a.length}var c=a.indexOf(tb);if(c==-1){c=a.length}var d=a.lastIndexOf(ub,Math.min(c,b));return d>=U?a.substring(U,d+V):ab}
+function f(a){if(a.match(/^\w+:\/\//)){}else{var b=o.createElement(vb);b.src=a+wb;a=e(b.src)}return a}
+function g(){var a=__gwt_getMetaProperty(xb);if(a!=null){return a}return ab}
+function h(){var a=o.getElementsByTagName(eb);for(var b=U;b<a.length;++b){if(a[b].src.indexOf(yb)!=-1){return e(a[b].src)}}return ab}
+function i(){var a=o.getElementsByTagName(zb);if(a.length>U){return a[a.length-V].href}return ab}
+function j(){var a=o.location;return a.href==a.protocol+Ab+a.host+a.pathname+a.search+a.hash}
+var k=g();if(k==ab){k=h()}if(k==ab){k=i()}if(k==ab&&j()){k=e(o.location.href)}k=f(k);return k}
+function C(a){if(a.match(/^\//)){return a}if(a.match(/^[a-zA-Z]+:\/\//)){return a}return VaadinGrid.__moduleBase+a}
+function D(){var f=[];var g=U;function h(a,b){var c=f;for(var d=U,e=a.length-V;d<e;++d){c=c[a[d]]||(c[a[d]]=[])}c[a[e]]=b}
+var i=[];var j=[];function k(a){var b=j[a](),c=i[a];if(b in c){return b}var d=[];for(var e in c){d[c[e]]=e}if(r){r(a,d,b)}throw null}
+j[Bb]=function(){{var a=n.navigator.userAgent;if(a.indexOf(Cb)==-1&&a.indexOf(Db)!=-1){return Eb}return Fb}};i[Bb]={none:U,yes:V};j[Gb]=function(){return !/_force_no_native/.test(document.location.search)&&typeof document.querySelectorAll==Hb?Ib:Jb};i[Gb]={js:U,'native':V};j[Kb]=function(){var a=navigator.userAgent.toLowerCase();var b=o.documentMode;if(function(){return a.indexOf(Lb)!=-1}())return Mb;if(function(){return a.indexOf(Nb)!=-1&&(b>=Ob&&b<Pb)}())return Qb;if(function(){return a.indexOf(Nb)!=-1&&(b>=Rb&&b<Pb)}())return Sb;if(function(){return a.indexOf(Nb)!=-1&&(b>=Tb&&b<Pb)}())return Ub;if(function(){return a.indexOf(Vb)!=-1||b>=Pb}())return Wb;return ab};i[Kb]={gecko1_8:U,ie10:V,ie8:Xb,ie9:Yb,safari:Zb};__gwt_isKnownPropertyValue=function(a,b){return b in i[a]};VaadinGrid.__getPropMap=function(){var a={};for(var b in i){if(i.hasOwnProperty(b)){a[b]=k(b)}}return a};VaadinGrid.__computePropValue=k;n.__gwt_activeModules[R].bindings=VaadinGrid.__getPropMap;q(N,$b);if(p()){return C(_b)}var l;try{h([Fb,Jb,Wb],ac);h([Fb,Ib,Wb],ac+bc);h([Eb,Jb,Wb],ac+cc);h([Eb,Ib,Wb],ac+dc);h([Fb,Jb,Qb],ac+ec);h([Fb,Ib,Qb],ac+fc);h([Fb,Ib,Mb],ac+gc);l=f[k(Bb)][k(Gb)][k(Kb)];var m=l.indexOf(hc);if(m!=-1){g=parseInt(l.substring(m+V),Ob);l=l.substring(U,m)}}catch(a){}VaadinGrid.__softPermutationId=g;return C(l+ic)}
+function F(){if(!n.__gwt_stylesLoaded){n.__gwt_stylesLoaded={}}q(jc,O);q(jc,kc)}
+A();VaadinGrid.__moduleBase=B();s[R].moduleBase=VaadinGrid.__moduleBase;var G=D();if(n){var H=!!(n.location.protocol==lc||n.location.protocol==mc);n.__gwt_activeModules[R].canRedirect=H;function I(){var b=nc;try{n.sessionStorage.setItem(b,b);n.sessionStorage.removeItem(b);return true}catch(a){return false}}
+if(H&&I()){var J=oc;var K=n.sessionStorage[J];if(!/^http:\/\/(localhost|127\.0\.0\.1)(:\d+)?\/.*$/.test(K)){if(K&&(window.console&&console.log)){console.log(pc+K)}K=ab}if(K&&!n[J]){n[J]=true;n[J+qc]=B();var L=o.createElement(eb);L.src=K;var M=o.getElementsByTagName(rc)[U];M.insertBefore(L,M.firstElementChild||M.children[U]);return false}}}F();q(N,kc);w(G);return true}
+VaadinGrid.succeeded=VaadinGrid();
+function _9AA0A0AC5E358B02BE77F43AA1BE25A5($wnd, $doc){
+var $wnd = $wnd || window.parent;var __gwtModuleFunction = $wnd.VaadinGrid;var $sendStats = __gwtModuleFunction.__sendStats;$sendStats('moduleStartup', 'moduleEvalStart');var $gwt_version = "2.8.0-SNAPSHOT";var $strongName = '9AA0A0AC5E358B02BE77F43AA1BE25A5';var $gwt = {};var $doc = $wnd.document;var $moduleName, $moduleBase;function __gwtStartLoadingFragment(frag) {var fragFile = 'deferredjs/' + $strongName + '/' + frag + '.cache.js';return __gwtModuleFunction.__startLoadingFragment(fragFile);}function __gwtInstallCode(code) {return __gwtModuleFunction.__installRunAsyncCode(code);}function __gwt_isKnownPropertyValue(propName, propValue) {return __gwtModuleFunction.__gwt_isKnownPropertyValue(propName, propValue);}function __gwt_getMetaProperty(name) {return __gwtModuleFunction.__gwt_getMetaProperty(name);}var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent && $wnd.__gwtStatsEvent(a);} : null;var $sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;var aa="[object Array]",ba="object",ca="string",l={3:1},da=65536,ea="alert",fa="alertdialog",ga="application",ha="button",ia="checkbox",ja="columnheader",ka="complementary",la="contentinfo",ma="definition",na="menuitemcheckbox",oa="menuitemradio",pa="navigation",qa="option",ra="presentation",sa="progressbar",ta="radiogroup",ua="spinbutton",va={3:1,15:1},wa={3:1,13:1,10:1,15:1},xa="null",ya="fromIndex: ",za="position",Aa="absolute",Ba="undefined",Ca="CSS1Compat",m="display",u="height",Da={14:1,23:1,
+3:1,6:1,4:1},Ea={23:1,47:1,3:1,6:1,4:1},Fa={30:1,3:1,6:1,4:1},Ia={23:1,77:1,3:1,6:1,4:1},Ja="click",Ka="keydown",La={73:1,3:1,13:1,10:1,15:1},Ma=4194303,Na=1048575,Oa=524288,Pa=4194304,Qa=17592186044416,Ra=-9223372036854775E3,Sa="Browser: webkit\x3d",Ta=" mozilla\x3d",Ua=" opera\x3d",Va=" msie\x3d",Wa={5:1},Xa="resize",Ya="tbody,thead,tfoot",Za="___event_datas",$a="data",v="width",ab={19:1},bb="changes",cb={79:1,71:1},db="error",eb="[^\\d\\.\\-]+.*$",w="px",fb="paddingRight",gb="paddingBottom",hb=
+"clientWidth",ib="clientHeight",jb="visible",kb="visibility",lb="hidden",mb="html",nb="none",ob={149:1},pb="Syntax error, unrecognized expression: ",qb="number",rb="true",tb="__gwt_ObjectId",ub="once memory",vb="webkit",wb="pending",xb="mouseout",yb="dblclick",zb="keypress",Ab="keyup",Bb="mousedown",Cb="scroll",Db="DOMMouseScroll",Eb="mousewheel",Fb=131072,Gb="touchstart",Hb=1048576,Ib="touchmove",Jb=2097152,Kb="touchend",Lb="touchcancel",Mb=8388608,Nb=16777216,Ob=33554432,Pb=67108864,Qb="Null widget handle. If you are creating a composite, ensure that initWidget() has been called.",
+Rb="Style names cannot be empty",Sb={29:1,25:1,21:1,27:1,26:1,22:1,18:1},Tb={29:1,25:1,21:1,27:1,40:1,26:1,22:1,18:1},Ub="left",Vb="disabled",Wb={29:1,25:1,21:1,27:1,109:1,26:1,22:1,18:1},Xb={29:1,25:1,21:1,198:1,27:1,40:1,26:1,22:1,18:1},Yb="Possible problem with your *.gwt.xml module file.\nThe compile time user.agent value (",Zb="does not match the runtime user.agent value (",$b="Expect more errors.",ac="safari",bc="msie",cc="gecko",dc="colSpan",ec="transform",gc="webkitTransform",hc="HORIZONTAL",
+ic="vEscalatorLogicalRow",jc="Selection model is already attached to a grid. Remove the selection model first from the grid and then add it.",kc={70:1,148:1},lc="Row cannot be null",mc="The given column index ",nc="400.0px",oc=" does not exist.",pc="Number of rows must be 1 or greater (was ",qc="-row",rc="frozen",sc="No such visual index: ",tc=" was not found in the position bookkeeping",uc="-footer",vc="bottom",wc="-spacer",xc="-spacer-deco",yc="vLogicalRow",zc="Unsupported selection model",Ac="Column not found.",
+Bc="Row index (",Cc="customStyle",Dc={29:1,25:1,21:1,27:1,40:1,109:1,26:1,22:1,18:1},Ec=1.7976931348623157E308,Fc={54:1,3:1,6:1,4:1},Gc="closed",Hc="call",Ic="Invalid ",Jc="indeterminate",Kc="push",Lc="element",Mc="tbody tr:not([template])",Nc={42:1,3:1,6:1,4:1},Oc="trident/",Pc="(\\.[0-9]+).+",Qc={60:1,3:1,6:1,4:1},Rc='For input string: "',Sc={59:1},Tc={45:1},Uc={44:1},Vc={63:1,41:1},Wc={63:1,64:1,41:1},Xc={3:1,44:1,110:1},Yc={3:1,59:1},Zc={3:1,45:1},$c="__proto__",ad={3:1,6:1,4:1,53:1},_,bd,cd=
+{},dd=-1;function ed(){switch(dd){case 4:case 5:return new fd;case 6:return new gd}return new hd}function id(){switch(dd){case 4:case 5:return new jd;case 6:return new kd}return new ld}function md(){switch(dd){case 4:case 5:return new nd;case 6:return new od}return new pd}function qd(){switch(dd){case 4:case 5:return new rd;case 6:return new sd}return new td}function ud(){switch(dd){case 4:return new vd;case 5:return new wd}return new xd}
+function yd(){switch(dd){case 6:return new zd;case 4:case 5:return new Ad}return new Bd}function Dd(){switch(dd){case 6:return new Ed;case 4:case 5:return new Fd}return new Gd}function Hd(){}function Id(a,b,d){return Jd(a)||a.tM===Hd?d:b}function Kd(a,b){var d=$wnd;if(""===a)return d;var e=a.split(".");e[0]in d||!d.execScript||d.execScript("var "+e[0]);for(var f;e.length&&(f=e.shift());)d[f]?d=d[f]:d=d[f]=b||{};return d}function Ld(a){function b(){}b.prototype=a||{};return new b}function x(){}
+function y(a,b,d){var e=cd[a],f=e instanceof Array?e[0]:null;e&&!f?_=e:(_=cd[a]=b?Ld(cd[b]):{},_.cM=d,_.constructor=_,!b&&(_.tM=Hd));for(e=3;e<arguments.length;++e)arguments[e].prototype=_;f&&(_.cZ=f)}function Md(a){return Nd(Od(a))+"@"+(Pd(a)>>>0).toString(16)}function Qd(){}function Rd(a,b){return Jd(a)?a===b:Sd(a)?a.eQ(b):(Td(a),a===b)}function Od(a){return Jd(a)?z:Sd(a)?a.cZ:Td(a)?a.cZ:Ud}function Pd(a){return Jd(a)?Vd(a):Sd(a)?a.hC():(Td(a),Wd(a))}
+function Xd(a){return Jd(a)?a:Sd(a)?a.tS():Td(a)?Md(a):Yd(a)}y(1,null,{},Qd);_.eQ=Zd;_.gC=function(){return this.cZ};_.hC=$d;_.tS=function(){return Md(this)};_.toString=function(){return this.tS()};ae={3:1,649:1,6:1,2:1};!Array.isArray&&(Array.isArray=function(a){return Object.prototype.toString.call(a)===aa});function Yd(a){return a.toString?a.toString():"[JavaScriptObject]"}function Sd(a){return!Array.isArray(a)&&a.tM===Hd}function A(a,b){return null!=a&&(Jd(a)&&!!ae[b]||a.cM&&!!a.cM[b])}
+function be(a){return null!=a&&!Jd(a)&&a.tM!==Hd}function Td(a){return Array.isArray(a)&&a.tM===Hd}function Jd(a){return typeof a===ca}function ce(a){return null==a?null:a}function C(a){return Math.max(Math.min(a,2147483647),-2147483648)|0}var ae;function de(a){if(null==a.k)if(a.ue()){var b=a.c;b.ve()?a.k="["+b.j:b.ue()?a.k="["+b.se():a.k="[L"+b.se()+";";a.b=b.re()+"[]";a.i=b.te()+"[]"}else{var b=a.f,d=a.d,d=d.split("/");a.k=ee(".",[b,ee("$",d)]);a.b=ee(".",[b,ee(".",d)]);a.i=d[d.length-1]}}
+function Nd(a){de(a);return a.k}function fe(a){de(a);return a.i}function ge(){this.g=he++;this.a=this.j=this.b=this.d=this.f=this.i=this.k=null}function ie(a){var b;b=new ge;b.k="Class$"+(a?"S"+a:""+b.g);b.b=b.k;b.i=b.k;return b}function E(a){var b;b=ie(a);je(a,b);return b}function F(a,b){var d;d=ie(a);je(a,d);d.e=b?8:0;return d}function ke(){var a;a=ie(null);a.e=2;return a}function G(a,b){var d=a.a=a.a||[];return d[b]||(d[b]=a.qe(b))}
+function ee(a,b){for(var d=0;!b[d]||""==b[d];)d++;for(var e=b[d++];d<b.length;d++)b[d]&&""!=b[d]&&(e+=a+b[d]);return e}function je(a,b){if(a){b.j=a;var d=b.ve()?null:cd[b.j];d?d.cZ=b:cd[a]=[b]}}y(151,1,{},ge);_.qe=function(a){var b;b=new ge;b.e=4;1<a?b.c=G(this,a-1):b.c=this;return b};_.re=function(){de(this);return this.b};_.se=function(){return Nd(this)};_.te=function(){return fe(this)};_.ue=function(){return 0!=(this.e&4)};_.ve=function(){return 0!=(this.e&1)};
+_.tS=function(){return(0!=(this.e&2)?"interface ":0!=(this.e&1)?"":"class ")+(de(this),this.k)};_.e=0;_.g=0;var he=1;function H(){H=x}function le(a,b){return a===b}function me(a,b){return null==b?!1:a==b?!0:a.length==b.length&&a.toLowerCase()==b.toLowerCase()}function ne(a,b){return a.indexOf(b)}function oe(a,b){return RegExp("^("+b+")$").test(a)}function pe(a,b,d){d=qe(d);return a.replace(RegExp(b,"g"),d)}function re(a,b,d){d=qe(d);return a.replace(RegExp(b),d)}
+function se(a,b,d){var e=RegExp(b,"g");b=[];for(var f=0,g=a,h=null;;){var n=e.exec(g);if(null==n||""==g||f==d-1&&0<d){b[f]=g;break}else b[f]=g.substring(0,n.index),g=g.substring(n.index+n[0].length,g.length),e.lastIndex=0,h==g&&(b[f]=g.substring(0,1),g=g.substring(1)),h=g,f++}if(0==d&&0<a.length){for(a=b.length;0<a&&""==b[a-1];)--a;a<b.length&&b.splice(a,b.length-a)}a=b.length;H();a=te(z,l,2,a,4);for(d=0;d<b.length;++d)a[d]=b[d];return a}function ue(a,b){return le(ve(a,0,b.length),b)}
+function we(a,b){return ve(a,b,a.length-b)}function xe(a){var b,d,e;d=a.length;for(e=0;e<d&&32>=a.charCodeAt(e);)++e;for(b=d;b>e&&32>=a.charCodeAt(b-1);)--b;return 0<e||b<d?ve(a,e,b-e):a}function ve(a,b,d){H();return a.substr(b,d)}function qe(a){H();var b;for(b=0;0<=(b=a.indexOf("\\",b));)36==a.charCodeAt(b+1)?a=ve(a,0,b)+"$"+we(a,++b):a=ve(a,0,b)+we(a,++b);return a}function ye(a,b){H();return a==b?0:a<b?-1:1}
+function ze(a){H();var b;return a>=da?(b=55296+(a-da>>10&1023)&65535,a=56320+(a-da&1023)&65535,String.fromCharCode(b)+String.fromCharCode(a)):String.fromCharCode(a&65535)}y(203,1,{},function(){});_.me=function(a,b){return ye(a.toLowerCase(),b.toLowerCase())};_.eQ=Zd;var I=E(1),Ud=E(0);E(151);var z=E(2);E(203);y(625,1,{});var Ae;E(625);y(120,1,{120:1});E(120);function Be(){return!!$wnd.requestAnimationFrame&&!!$wnd.cancelAnimationFrame}function Ce(){}
+function De(a,b){var d=Ee(function(){var b=Fe();a.ab(b)});return{id:$wnd.requestAnimationFrame(d,b)}}y(48,625,{},Ce);_._=function(a,b){var d;d=De(a,b);return new Ge(d)};E(48);function Ge(a){this.a=a}y(598,120,{120:1},Ge);_.bb=function(){$wnd.cancelAnimationFrame(this.a.id)};E(598);function He(){this.a=new Ie;this.b=new Je(this)}y(49,625,{},He);_._=function(a){a=new Ke(this,a);Le(this.a,a);1==this.a.b.length&&Me(this.b,16);return a};E(49);
+function Ne(a){a.p&&(++a.n,a.o?$wnd.clearInterval(a.p.a):$wnd.clearTimeout(a.p.a),a.p=null)}function Me(a,b){if(0>b)throw new J("must be non-negative");a.p&&Ne(a);a.o=!1;var d;d=Oe(a,a.n);d=$wnd.setTimeout(d,b);a.p=K(d)}function Oe(a,b){return Ee(function(){a.cb(b)})}y(50,1,{});_.cb=function(a){a==this.n&&(this.o||(this.p=null),this.db())};_.n=0;_.o=!1;_.p=null;E(50);function Je(a){this.a=a}y(599,50,{},Je);
+_.db=function(){var a=this.a,b,d,e,f,g;b=te(Pe,l,147,a.a.b.length,0);b=Qe(a.a,b);d=new Re;f=0;for(g=b.length;f<g;++f)e=b[f],Se(a.a,e),e.a.ab(d.a);0<a.a.b.length&&Me(a.b,L(5,16-(Fe()-d.a)))};E(599);function Ke(a,b){this.b=a;this.a=b}y(147,120,{120:1,147:1},Ke);_.bb=function(){var a=this.b;Se(a.a,this);0==a.a.b.length&&Ne(a.b)};var Pe=E(147);y(7,1,{});E(7);function Te(){this.a=ea}y(513,7,{},Te);E(513);function Ue(){this.a=fa}y(512,7,{},Ue);E(512);function Ve(){this.a=ga}y(514,7,{},Ve);E(514);
+function We(){this.a="article"}y(515,7,{},We);E(515);function Xe(){this.a="banner"}y(516,7,{},Xe);E(516);function Ye(){this.a=ha}y(517,7,{},Ye);E(517);function Ze(){this.a=ia}y(518,7,{},Ze);E(518);function $e(){this.a=ja}y(519,7,{},$e);E(519);function af(){this.a="combobox"}y(520,7,{},af);E(520);function bf(){this.a=ka}y(521,7,{},bf);E(521);function cf(){this.a=la}y(522,7,{},cf);E(522);function df(){this.a=ma}y(523,7,{},df);E(523);function ef(){this.a="dialog"}y(524,7,{},ef);E(524);
+function ff(){this.a="directory"}y(525,7,{},ff);E(525);function gf(){this.a="document"}y(526,7,{},gf);E(526);function hf(){this.a="form"}y(527,7,{},hf);E(527);function jf(){this.a="grid"}y(529,7,{},jf);E(529);function kf(){this.a="gridcell"}y(528,7,{},kf);E(528);function lf(){this.a="group"}y(530,7,{},lf);E(530);function mf(){this.a="heading"}y(531,7,{},mf);E(531);function nf(){this.a="img"}y(532,7,{},nf);E(532);function of(){this.a="link"}y(533,7,{},of);E(533);function pf(){this.a="list"}
+y(536,7,{},pf);E(536);function qf(){this.a="listbox"}y(534,7,{},qf);E(534);function rf(){this.a="listitem"}y(535,7,{},rf);E(535);function sf(){this.a="log"}y(537,7,{},sf);E(537);function tf(){this.a="main"}y(538,7,{},tf);E(538);function uf(){this.a="marquee"}y(539,7,{},uf);E(539);function vf(){this.a="math"}y(540,7,{},vf);E(540);function wf(){this.a="menu"}y(545,7,{},wf);E(545);function xf(){this.a="menubar"}y(541,7,{},xf);E(541);function yf(){this.a="menuitem"}y(544,7,{},yf);E(544);
+function zf(){this.a=na}y(542,7,{},zf);E(542);function Af(){this.a=oa}y(543,7,{},Af);E(543);function Bf(){this.a=pa}y(546,7,{},Bf);E(546);function Cf(){this.a="note"}y(547,7,{},Cf);E(547);function Df(){this.a=qa}y(548,7,{},Df);E(548);function Ef(){this.a=ra}y(549,7,{},Ef);E(549);function Ff(){this.a=sa}y(550,7,{},Ff);E(550);function Gf(){this.a="radio"}y(552,7,{},Gf);E(552);function Hf(){this.a=ta}y(551,7,{},Hf);E(551);function If(){this.a="region"}y(553,7,{},If);E(553);
+function Jf(){Jf=x;Kf=new Ue;Lf=new Te;Mf=new Ve;Nf=new We;Of=new Xe;Pf=new Ye;Qf=new Ze;Rf=new $e;Sf=new af;Tf=new bf;Uf=new cf;Vf=new df;Wf=new ef;Xf=new ff;Yf=new gf;Zf=new hf;$f=new kf;ag=new jf;bg=new lf;cg=new mf;dg=new nf;eg=new of;fg=new qf;gg=new rf;hg=new pf;ig=new sf;jg=new tf;kg=new uf;lg=new vf;mg=new xf;ng=new zf;og=new Af;pg=new yf;qg=new wf;rg=new Bf;sg=new Cf;tg=new Df;ug=new Ef;vg=new Ff;wg=new Hf;xg=new Gf;yg=new If;zg=new Ag;Bg=new Cg;Dg=new Eg;Fg=new Gg;Hg=new Ig;Jg=new Kg;Lg=
+new Mg;Ng=new Og;Pg=new Qg;Rg=new Sg;Tg=new Ug;Vg=new Wg;Xg=new Yg;Zg=new $g;ah=new bh;ch=new dh;eh=new fh;gh=new hh;ih=new jh;M=new kh;N(M,"region",yg);N(M,ea,Lf);N(M,"dialog",Wf);N(M,fa,Kf);N(M,ga,Mf);N(M,"document",Yf);N(M,"article",Nf);N(M,"banner",Of);N(M,ha,Pf);N(M,ia,Qf);N(M,"gridcell",$f);N(M,ja,Rf);N(M,"group",bg);N(M,"combobox",Sf);N(M,ka,Tf);N(M,la,Uf);N(M,ma,Vf);N(M,"list",hg);N(M,"directory",Xf);N(M,"form",Zf);N(M,"grid",ag);N(M,"heading",cg);N(M,"img",dg);N(M,"link",eg);N(M,"listbox",
+fg);N(M,"listitem",gg);N(M,"log",ig);N(M,"main",jg);N(M,"marquee",kg);N(M,"math",lg);N(M,"menu",qg);N(M,"menubar",mg);N(M,"menuitem",pg);N(M,na,ng);N(M,qa,tg);N(M,"radio",xg);N(M,oa,og);N(M,pa,rg);N(M,"note",sg);N(M,ra,ug);N(M,sa,vg);N(M,ta,wg);N(M,"row",Dg);N(M,"rowgroup",zg);N(M,"rowheader",Bg);N(M,"search",Hg);N(M,"separator",Jg);N(M,"scrollbar",Fg);N(M,"slider",Lg);N(M,ua,Ng);N(M,"status",Pg);N(M,"tab",Vg);N(M,"tablist",Rg);N(M,"tabpanel",Tg);N(M,"textbox",Xg);N(M,"timer",Zg);N(M,"toolbar",ah);
+N(M,"tooltip",ch);N(M,"tree",ih);N(M,"treegrid",eh);N(M,"treeitem",gh)}var Lf,Kf,Mf,Nf,Of,Pf,Qf,Rf,Sf,Tf,Uf,Vf,Wf,Xf,Yf,Zf,ag,$f,bg,cg,dg,eg,hg,fg,gg,ig,jg,kg,lg,qg,mg,pg,ng,og,rg,sg,tg,ug,vg,xg,wg,yg,M,Dg,zg,Bg,Fg,Hg,Jg,Lg,Ng,Pg,Vg,Rg,Tg,Xg,Zg,ah,ch,ih,eh,gh;function Eg(){this.a="row"}y(556,7,{},Eg);E(556);function Ag(){this.a="rowgroup"}y(554,7,{},Ag);E(554);function Cg(){this.a="rowheader"}y(555,7,{},Cg);E(555);function Gg(){this.a="scrollbar"}y(557,7,{},Gg);E(557);
+function Ig(){this.a="search"}y(558,7,{},Ig);E(558);function Kg(){this.a="separator"}y(559,7,{},Kg);E(559);function Mg(){this.a="slider"}y(560,7,{},Mg);E(560);function Og(){this.a=ua}y(561,7,{},Og);E(561);function Qg(){this.a="status"}y(562,7,{},Qg);E(562);function Wg(){this.a="tab"}y(565,7,{},Wg);E(565);function Sg(){this.a="tablist"}y(563,7,{},Sg);E(563);function Ug(){this.a="tabpanel"}y(564,7,{},Ug);E(564);function Yg(){this.a="textbox"}y(566,7,{},Yg);E(566);function $g(){this.a="timer"}
+y(567,7,{},$g);E(567);function bh(){this.a="toolbar"}y(568,7,{},bh);E(568);function dh(){this.a="tooltip"}y(569,7,{},dh);E(569);function jh(){this.a="tree"}y(572,7,{},jh);E(572);function fh(){this.a="treegrid"}y(570,7,{},fh);E(570);function hh(){this.a="treeitem"}y(571,7,{},hh);E(571);function Re(){this.a=Fe()}y(171,1,{},Re);_.a=0;E(171);function lh(a){a.i=null;mh()}
+function nh(a){for(var b,d;a;a=a.e){if(null==a.i){d=a;mh();b=te(oh,l,809,0,0);a:for(var e=void 0,f=void 0,f=ph(b.length,5),e=0;e<f;e++)if(null.pf()){b=(b.length>=e+1&&b.splice(0,e+1),b);break a}d.i=b}b=a.i;d=0;for(b=b.length;d<b;++d);}}y(15,1,va);_.eb=qh;_.tS=function(){var a,b;a=Nd(this.cZ);b=this.eb();return null!=b?a+": "+b:a};_.g=!1;var rh=E(15);y(13,15,{3:1,13:1,15:1});E(13);function sh(a){this.f=a;lh(this)}y(10,13,wa,sh);E(10);function th(){th=x;uh=new Qd}
+function vh(a){th();this.f=this.e=null;this.g=!1;this.a="";this.b=a;this.a=""}y(74,10,{74:1,3:1,13:1,10:1,15:1},vh);_.eb=function(){var a;null==this.c&&(a=ce(this.b)===ce(uh)?null:this.b,this.d=null==a?xa:be(a)?null==a?null:a.name:Jd(a)?"String":Nd(Od(a)),this.a=this.a+": "+(be(a)?null==a?null:a.message:a+""),this.c="("+this.d+") "+this.a);return this.c};_.fb=function(){return ce(this.b)===ce(uh)?null:this.b};var uh;E(74);function Fe(){return Date.now?Date.now():(new Date).getTime()}y(604,1,{});E(604);
+function wh(){wh=x;xh=$wnd}var xh;function Wd(a){return a.$H||(a.$H=++yh)}function zh(a){$wnd.setTimeout(function(){throw a;},0)}function Ah(){0!=Bh&&(Bh=0);Ch=-1}var Bh=0,yh=0,Dh=0,Ch=-1;function Eh(){Eh=x;Fh=new Gh}function Hh(a){a.j||(a.j=!0,!a.f&&(a.f=new Ih(a)),Jh(a.f,1),!a.i&&(a.i=new Kh(a)),Jh(a.i,50))}function Lh(a,b){a.d=Mh(a.d,[b,!1])}function Nh(a){return a.gb()}function Mh(a,b){!a&&(a=[]);a[a.length]=b;return a}
+function Oh(a,b){var d,e,f;e=0;for(f=a.length;e<f;e++){d=a[e];try{d[1]?d[0].gb()&&(b=Mh(b,d)):d[0].hb()}catch(g){if(g=Ph(g),A(g,15))d=g,zh(A(d,74)?d.fb():d);else throw Qh(g);}}return b}function Jh(a,b){function d(){Ee(Nh)(a)&&$wnd.setTimeout(d,b)}Eh();$wnd.setTimeout(d,b)}function Rh(a){Eh();var b=$wnd.setInterval(function(){!Ee(Nh)(a)&&$wnd.clearInterval(b)},30)}y(425,604,{});_.e=!1;_.j=!1;var Fh;E(425);function Ih(a){this.a=a}y(426,1,{},Ih);
+_.gb=function(){this.a.e=!0;var a=this.a,b;a.b&&(b=a.b,a.b=null,!a.g&&(a.g=[]),Oh(b,a.g));if(a.g){b=a.g;var d,e,f,g,h,n;h=b.length;if(0==h)b=null;else{d=!1;for(e=new Re;16>Fe()-e.a;){f=!1;for(g=0;g<h;g++)if(n=b[g])f=!0,n[0].gb()||(b[g]=null,d=!0);if(!f)break}if(d){d=[];for(g=0;g<h;g++)b[g]&&(d[d.length]=b[g]);b=0==d.length?null:d}}a.g=b}this.a.e=!1;a=this.a;return this.a.j=!!a.b||!!a.g};E(426);function Kh(a){this.a=a}y(427,1,{},Kh);_.gb=function(){this.a.e&&Jh(this.a.f,1);return this.a.j};E(427);
+function mh(){mh=x}function Sh(a,b){if(!a)throw new Th((H(),""+b));}function Uh(a,b){if(!a)throw new J((H(),""+b));}function P(a){if(!a)throw new Vh;}function Wh(a,b){if(0>a||a>=b)throw new Xh("Index: "+a+", Size: "+b);}function Yh(a){if(null==a)throw new Zh;}function $h(a,b){if(null==a)throw new ai((H(),""+b));}function bi(a,b){if(0>a||a>b)throw new Xh("Index: "+a+", Size: "+b);}function ci(a){if(!a)throw new di;}
+function ei(a,b){var d,e,f,g;a=(H(),""+a);d=new fi;for(e=g=0;e<b.length;){f=a.indexOf("%s",g);if(-1==f)break;gi(d,ve(a,g,f-g));gi(d,b[e++]);g=f+2}gi(d,ve(a,g,a.length-g));if(e<b.length){d.a+=" [";for(gi(d,b[e++]);e<b.length;)d.a+=", ",gi(d,b[e++]);d.a+="]"}return d.a}function hi(a){return ii((Q(),a))}function ji(a,b){return(Q(),R).wb(a,b)}function ki(a){for(;a.lastChild;)a.removeChild(a.lastChild)}function li(a){var b;(b=ii((Q(),a)))&&b.removeChild(a)}
+function mi(a,b){var d;b=ni(b);d=a.className||"";-1==oi(d,b)&&(0<d.length?pi(a,d+" "+b):pi(a,b))}function qi(a){return(Q(),R).sb(a)+((a.offsetHeight||0)|0)}function ri(a){return(Q(),R).rb(a)}function si(a){return(Q(),R).sb(a)}function ti(a){return ui((Q(),a))}function vi(a){return(Q(),a).innerHTML}function wi(a,b){return null==a[b]?null:String(a[b])}function xi(a){return(Q(),R).ub(a)}function yi(a){return(Q(),R).vb(a)}
+function zi(a,b){var d,e,f,g;b=ni(b);g=a.className||"";e=oi(g,b);-1!=e&&(d=xe(ve(g,0,e)),e=xe(we(g,e+b.length)),0==d.length?f=e:0==e.length?f=d:f=d+" "+e,pi(a,f))}function pi(a,b){a.className=b||""}function Ai(a,b){(Q(),R).xb(a,b)}function oi(a,b){var d,e,f;for(d=a.indexOf(b);-1!=d;){if(0==d||32==a.charCodeAt(d-1))if(e=d+b.length,f=a.length,e==f||e<f&&32==a.charCodeAt(e))break;d=a.indexOf(b,d+1)}return d}function Bi(a){var b;try{b=!!a&&!!a.nodeType}catch(d){b=!1}return b?!!a&&1==a.nodeType:!1}
+function ni(a){return a=xe(a)}function Q(){Q=x;R=Dd()}function ui(a){for(a=a.firstChild;a&&1!=a.nodeType;)a=a.nextSibling;return a}function Ci(a){for(a=a.nextSibling;a&&1!=a.nodeType;)a=a.nextSibling;return a}function ii(a){(a=a.parentNode)&&1==a.nodeType||(a=null);return a}function Di(a){for(a=a.previousSibling;a&&1!=a.nodeType;)a=a.previousSibling;return a}function Ei(a){Q();return a|0}y(637,1,{});_.ib=function(a,b){var d=a.createElement("BUTTON");d.type=b;return d};
+_.kb=function(a,b){var d;d=a.createElement("script");d.text=b;return d};_.mb=function(a){return a.button|0};_.nb=function(a){return a.currentTarget};_.rb=function(a){for(var b=0,d=a;d.offsetParent;)b-=d.scrollLeft,d=d.parentNode;for(;a;)b+=a.offsetLeft,a=a.offsetParent;return Ei(b)};_.sb=function(a){for(var b=0,d=a;d.offsetParent;)b-=d.scrollTop,d=d.parentNode;for(;a;)b+=a.offsetTop,a=a.offsetParent;return Ei(b)};
+_.tb=function(a){var b="";for(a=a.firstChild;a;)1==a.nodeType?b+=this.tb(a):a.nodeValue&&(b+=a.nodeValue),a=a.nextSibling;return b};_.ub=function(a){return Ei(a.scrollLeft||0)};_.vb=function(a){return a.tabIndex};_.xb=function(a,b){for(;a.firstChild;)a.removeChild(a.firstChild);null!=b&&a.appendChild(a.ownerDocument.createTextNode(b))};_.yb=function(a,b){a.scrollLeft=b};_.zb=function(a){return a.outerHTML};var R;E(637);y(642,637,{});
+_.jb=function(a,b){var d=a.createEvent("HTMLEvents");d.initEvent(b,!0,!0);return d};_.lb=function(a,b){a.dispatchEvent(b)};_.mb=function(a){a=a.button;return 1==a?4:2==a?2:1};_.ob=function(a){return a.relatedTarget};_.pb=function(a){return a.target};_.qb=function(a){a.preventDefault()};_.tb=function(a){return a.textContent};_.wb=function(a,b){return a.contains(b)};_.xb=function(a,b){a.textContent=b||""};E(642);
+function Fi(a){return"rtl"==a.ownerDocument.defaultView.getComputedStyle(a,"").direction}y(643,642,{});_.ib=function(a,b){var d=a.createElement("BUTTON");d.setAttribute("type",b);return d};_.kb=function(a,b){var d;d=a.createElement("script");R.xb(d,b);return d};_.nb=function(a){return a.currentTarget||$wnd};
+_.rb=function(a){var b;if(b=a.getBoundingClientRect&&a.getBoundingClientRect())a=b.left+xi(a.ownerDocument.body);else if(null==a.offsetLeft)a=0;else{b=0;var d=a.ownerDocument,e=a.parentNode;if(e)for(;e.offsetParent;)b-=e.scrollLeft,"rtl"==d.defaultView.getComputedStyle(e,"").getPropertyValue("direction")&&(b+=e.scrollWidth-e.clientWidth),e=e.parentNode;for(;a;){b+=a.offsetLeft;if("fixed"==d.defaultView.getComputedStyle(a,"")[za]){b+=d.body.scrollLeft;break}(e=a.offsetParent)&&$wnd.devicePixelRatio&&
+(b+=parseInt(d.defaultView.getComputedStyle(e,"").getPropertyValue("border-left-width")));if(e&&"BODY"==e.tagName&&a.style.position==Aa)break;a=e}a=b}return Ei(a)};
+_.sb=function(a){var b;if(b=a.getBoundingClientRect&&a.getBoundingClientRect())a=b.top+((a.ownerDocument.body.scrollTop||0)|0);else if(null==a.offsetTop)a=0;else{b=0;var d=a.ownerDocument,e=a.parentNode;if(e)for(;e.offsetParent;)b-=e.scrollTop,e=e.parentNode;for(;a;){b+=a.offsetTop;if("fixed"==d.defaultView.getComputedStyle(a,"")[za]){b+=d.body.scrollTop;break}(e=a.offsetParent)&&$wnd.devicePixelRatio&&(b+=parseInt(d.defaultView.getComputedStyle(e,"").getPropertyValue("border-top-width")));if(e&&
+"BODY"==e.tagName&&a.style.position==Aa)break;a=e}a=b}return Ei(a)};_.ub=function(a){return!me("body",(Q(),a).tagName)&&Fi(a)?Ei(a.scrollLeft||0)-(((a.scrollWidth||0)|0)-(a.clientWidth|0)):Ei(a.scrollLeft||0)};_.vb=function(a){return typeof a.tabIndex!=Ba?a.tabIndex:-1};_.yb=function(a,b){!me("body",(Q(),a).tagName)&&Fi(a)&&(b+=((a.scrollWidth||0)|0)-(a.clientWidth|0));a.scrollLeft=b};E(643);function Fd(){Q()}y(476,643,{},Fd);
+_.rb=function(a){var b;try{b=a.getBoundingClientRect().left}catch(d){b=0}b+=$wnd.pageXOffset;Fi(a)&&(a=a.offsetParent,b+=a?a.offsetWidth-a.clientWidth:0);return Ei(b)};_.sb=function(a){var b;try{b=a.getBoundingClientRect().top}catch(d){b=0}return Ei(b+$wnd.pageYOffset)};_.ub=function(a){var b;b=Ei(a.scrollLeft||0);Fi(a)&&(b=-b);return b};_.vb=function(a){return 65535>a.tabIndex?a.tabIndex:-(a.tabIndex%65535)-1};
+_.wb=function(a,b){var d;a:if(d=b,1!=a.nodeType&&9!=a.nodeType)d=a==d;else{if(1!=d.nodeType&&(d=d.parentNode,!d)){d=!1;break a}d=9==a.nodeType?a===d||a.body&&a.body.contains(d):a===d||a.contains(d)}return d};_.yb=function(a,b){Fi(a)&&(b=-b);a.scrollLeft=b};E(476);function Gd(){Q()}
+function Gi(){var a;a=(a=/rv:([0-9]+)\.([0-9]+)(\.([0-9]+))?.*?/.exec(navigator.userAgent.toLowerCase()))&&3<=a.length?1E6*parseInt(a[1])+1E3*parseInt(a[2])+parseInt(5<=a.length&&!isNaN(a[4])?a[4]:0):-1;return-1!=a&&1009E3<=a}y(475,642,{},Gd);_.ob=function(a){return(a=a.relatedTarget)?a:null};
+_.rb=function(a){var b=Hi(a.ownerDocument);Element.prototype.getBoundingClientRect?a=a.getBoundingClientRect().left+b.scrollLeft|0:(b=a.ownerDocument,a=b.getBoxObjectFor(a).screenX-b.getBoxObjectFor(b.documentElement).screenX);return a};_.sb=function(a){var b=Hi(a.ownerDocument);Element.prototype.getBoundingClientRect?a=a.getBoundingClientRect().top+b.scrollTop|0:(b=a.ownerDocument,a=b.getBoxObjectFor(a).screenY-b.getBoxObjectFor(b.documentElement).screenY);return a};
+_.ub=function(a){return Gi()||"rtl"!=a.ownerDocument.defaultView.getComputedStyle(a,null).direction?Ei(a.scrollLeft||0):Ei(a.scrollLeft||0)-(((a.scrollWidth||0)|0)-(a.clientWidth|0))};_.wb=function(a,b){return a===b||!!(a.compareDocumentPosition(b)&16)};_.yb=function(a,b){!Gi()&&"rtl"==a.ownerDocument.defaultView.getComputedStyle(a,null).direction&&(b+=((a.scrollWidth||0)|0)-(a.clientWidth|0));a.scrollLeft=b};
+_.zb=function(a){var b=a.ownerDocument;a=a.cloneNode(!0);b=b.createElement("DIV");b.appendChild(a);outer=b.innerHTML;a.innerHTML="";return outer};E(475);function Ed(){Q()}y(474,643,{},Ed);_.pb=function(a){(a=a.target)&&3==a.nodeType&&(a=a.parentNode);return a};E(474);function Ii(){var a=$doc,b;return b=(Q(),a).createElement("INPUT"),b.type=ia,b.value="on",b}function Ji(){var a=$doc;return(Q(),a).createElement("div")}function Ki(a){var b=$doc;return(Q(),b).createElement(a)}
+function Li(){var a=$doc;return(Q(),a).createElement("tbody")}function Mi(){var a=$doc;return(Q(),a).createElement("thead")}function Ni(){var a=$doc;return(Q(),a).createElement("tr")}function Oi(){var a=$doc;return(Q(),a).createElement("table")}function Hi(a){return a.compatMode===Ca?a.documentElement:a.body}function Pi(a){return(Q(),R).pb(a)}function Qi(a){return(Q(),a).keyCode|0}function Ri(a){return(Q(),a).touches}function Si(a){(Q(),R).qb(a)}function Ti(a){return(Q(),a)[m]}
+function Ui(a,b){return(Q(),a)[b]}function Vi(a){return null!=a.f?a.f:""+a.g}function S(a,b){this.f=a;this.g=b}function Wi(a){var b,d,e,f;b={};e=0;for(f=a.length;e<f;++e)d=a[e],b[":"+(null!=d.f?d.f:""+d.g)]=d;return b}function Xi(a,b){var d;Yh(b);d=a[":"+b];var e=T(G(I,1),l,1,3,[b]);if(!d)throw new J(ei("Enum constant undefined: %s",e));return d}y(4,1,{3:1,6:1,4:1});_.Ab=function(a){return this.g-a.g};_.eQ=Zd;_.hC=$d;_.tS=function(){return Vi(this)};_.g=0;E(4);
+function Yi(){Yi=x;Zi=new $i;aj=new bj;cj=new dj;ej=new fj;gj=new hj;ij=new jj;kj=new lj;mj=new nj;oj=new pj;qj=new rj;sj=new tj;uj=new vj;wj=new xj;yj=new zj;Aj=new Bj;Cj=new Dj;Ej=new Fj}y(14,4,Da);var aj,Ej,cj,ej,gj,ij,Zi,kj,mj,oj,yj,Aj,qj,uj,sj,Cj,wj,Gj=F(14,function(){Yi();return T(G(Gj,1),l,14,0,[Zi,aj,cj,ej,gj,ij,kj,mj,oj,qj,sj,uj,wj,yj,Aj,Cj,Ej])});function $i(){S.call(this,"NONE",0)}y(439,14,Da,$i);F(439,null);function rj(){S.call(this,"TABLE_COLUMN_GROUP",9)}y(448,14,Da,rj);F(448,null);
+function tj(){S.call(this,"TABLE_HEADER_GROUP",10)}y(449,14,Da,tj);F(449,null);function vj(){S.call(this,"TABLE_FOOTER_GROUP",11)}y(450,14,Da,vj);F(450,null);function xj(){S.call(this,"TABLE_ROW_GROUP",12)}y(451,14,Da,xj);F(451,null);function zj(){S.call(this,"TABLE_CELL",13)}y(452,14,Da,zj);F(452,null);function Bj(){S.call(this,"TABLE_COLUMN",14)}y(453,14,Da,Bj);F(453,null);function Dj(){S.call(this,"TABLE_ROW",15)}y(454,14,Da,Dj);F(454,null);function Fj(){S.call(this,"INITIAL",16)}y(455,14,Da,Fj);
+F(455,null);function bj(){S.call(this,"BLOCK",1)}y(440,14,Da,bj);F(440,null);function dj(){S.call(this,"INLINE",2)}y(441,14,Da,dj);F(441,null);function fj(){S.call(this,"INLINE_BLOCK",3)}y(442,14,Da,fj);F(442,null);function hj(){S.call(this,"INLINE_TABLE",4)}y(443,14,Da,hj);F(443,null);function jj(){S.call(this,"LIST_ITEM",5)}y(444,14,Da,jj);F(444,null);function lj(){S.call(this,"RUN_IN",6)}y(445,14,Da,lj);F(445,null);function nj(){S.call(this,"TABLE",7)}y(446,14,Da,nj);F(446,null);
+function pj(){S.call(this,"TABLE_CAPTION",8)}y(447,14,Da,pj);F(447,null);function Lj(){Lj=x;Mj=new Nj;Oj=new Pj;Qj=new Rj;Sj=new Tj}y(47,4,Ea);var Sj,Oj,Qj,Mj,Uj=F(47,function(){Lj();return T(G(Uj,1),l,47,0,[Mj,Oj,Qj,Sj])});function Nj(){S.call(this,"VISIBLE",0)}y(456,47,Ea,Nj);F(456,null);function Pj(){S.call(this,"HIDDEN",1)}y(457,47,Ea,Pj);F(457,null);function Rj(){S.call(this,"SCROLL",2)}y(458,47,Ea,Rj);F(458,null);function Tj(){S.call(this,"AUTO",3)}y(459,47,Ea,Tj);F(459,null);
+function U(){U=x;Vj=new Wj;Xj=new Yj;Zj=new ak;bk=new ck;dk=new ek;fk=new gk;hk=new ik;jk=new kk;lk=new mk}y(30,4,Fa);var jk,Zj,bk,hk,lk,fk,Xj,dk,Vj,nk=F(30,function(){U();return T(G(nk,1),l,30,0,[Vj,Xj,Zj,bk,dk,fk,hk,jk,lk])});function Wj(){S.call(this,"PX",0)}y(430,30,Fa,Wj);F(430,null);function Yj(){S.call(this,"PCT",1)}y(431,30,Fa,Yj);F(431,null);function ak(){S.call(this,"EM",2)}y(432,30,Fa,ak);F(432,null);function ck(){S.call(this,"EX",3)}y(433,30,Fa,ck);F(433,null);
+function ek(){S.call(this,"PT",4)}y(434,30,Fa,ek);F(434,null);function gk(){S.call(this,"PC",5)}y(435,30,Fa,gk);F(435,null);function ik(){S.call(this,"IN",6)}y(436,30,Fa,ik);F(436,null);function kk(){S.call(this,"CM",7)}y(437,30,Fa,kk);F(437,null);function mk(){S.call(this,"MM",8)}y(438,30,Fa,mk);F(438,null);function ok(){ok=x;pk=new qk;rk=new sk}y(77,4,Ia);var rk,pk,tk=F(77,function(){ok();return T(G(tk,1),l,77,0,[pk,rk])});function qk(){S.call(this,"VISIBLE",0)}y(460,77,Ia,qk);F(460,null);
+function sk(){S.call(this,"HIDDEN",1)}y(461,77,Ia,sk);F(461,null);y(619,1,{});_.tS=function(){return"An event type"};E(619);y(620,619,{});_.Db=uk;_.Eb=function(){this.f=!1;this.g=null};_.f=!1;E(620);y(621,620,{});_.Cb=function(){return this.Fb()};var vk;E(621);function wk(){wk=x;xk=new yk("blur",new zk)}function zk(){}y(594,621,{},zk);_.Bb=Ak;_.Fb=function(){return xk};var xk;E(594);y(623,621,{});E(623);y(624,623,{});E(624);function Bk(){Bk=x;Ck=new yk(Ja,new Dk)}function Dk(){}y(511,624,{},Dk);
+_.Bb=function(a){a.Gb(this)};_.Fb=function(){return Ck};var Ck;E(511);y(262,1,{});_.hC=Ek;_.tS=function(){return"Event type"};var Fk=_.c=0;E(262);function Gk(){this.c=++Fk}y(37,262,{},Gk);E(37);function yk(a,b){var d;this.c=++Fk;this.a=b;!vk&&(vk=new Hk);d=vk.a[a];d||(d=new Ie,vk.a[a]=d);d.Le(this);this.b=a}y(82,37,{},yk);E(82);y(622,621,{});E(622);y(645,622,{});E(645);function Ik(){Ik=x;Jk=new yk(Ka,new Kk)}function Kk(){}y(497,645,{},Kk);_.Bb=function(a){27==Qi(this.d)&&Lk(a.a)};_.Fb=function(){return Jk};
+var Jk;E(497);function Hk(){this.a={}}y(483,1,{},Hk);E(483);function Mk(){}function Nk(){var a=(!Ok&&(Ok=new Pk),Ok),b;Qk&&(b=new Mk,Rk(a,b))}y(595,620,{},Mk);_.Bb=function(){Sk();try{Tk(Uk,Vk)}finally{Uk.a.He(),Wk(Xk)}};_.Cb=function(){return Qk};var Qk;E(595);function Yk(a){this.a=a}y(428,620,{},Yk);_.Bb=function(a){this.a.a?(Zk(a.a.c,new $k(a.b)),a.a.b=!0):(a.b.Ed(),a.a.b=!1)};_.Cb=function(){return al};var al;E(428);
+function bl(a,b,d){a=a.a;if(!b)throw new ai("Cannot add a handler with a null type");if(0<a.b){var e=new cl(a,b,d);!a.a&&(a.a=new Ie);Le(a.a,e)}else dl(a,b,null,d);return new el(new fl(a,b,d))}
+function Rk(a,b){var d;!b.f||b.Eb();d=b.Db();b.g=a.b;try{var e=a.a,f,g,h,n,p;if(!b)throw new ai("Cannot fire null event");try{++e.b;var q=b.Cb();n=gl(e,q,null);f=null;for(p=e.c?n.Pe(n.Sc()):n.Oe();e.c?p.Ue():p.Hc();){h=e.c?p.Ve():p.Ic();try{b.Bb(h)}catch(r){if(r=Ph(r),A(r,15))g=r,!f&&(f=new hl),il(f,g);else throw Qh(r);}}if(f)throw new jl(f);}finally{if(--e.b,0==e.b){var t,s;if(e.a)try{for(s=new kl(e.a);s.b<s.d.Sc();)t=(P(s.b<s.d.Sc()),s.d.Me(s.c=s.b++)),t.hb()}finally{e.a=null}}}}catch(B){B=Ph(B);
+if(A(B,73))throw d=B,new ll(d.a);throw Qh(B);}finally{null==d?(b.f=!0,b.g=null):b.g=d}}function ml(a){nl.call(this,a,!1)}function nl(a,b){this.a=new ol(b);this.b=a}y(51,1,{25:1},ml,nl);E(51);y(634,1,{});E(634);function dl(a,b,d,e){var f;f=pl(a.d,b);f||(f=new kh,ql(a.d,b,f));a=f.Ee(d);a||(a=new Ie,f.Fe(d,a));a.Le(e)}function rl(a,b,d,e){var f,g;f=gl(a,b,d);f.Re(e)&&f.xe()&&(g=pl(a.d,b),g.Ge(d),g.xe()&&sl(a.d,b))}function gl(a,b,d){a=pl(a.d,b);return a?(d=a.Ee(d))?d:(V(),V(),tl):(V(),V(),tl)}
+y(377,634,{});_.b=0;_.c=!1;E(377);function ol(a){this.d=new kh;this.c=a}y(378,377,{},ol);E(378);function el(a){this.a=a}y(484,1,{},el);E(484);
+function jl(a){var b,d;var e,f;d=a.Sc();if(0==d)d=null;else{d=new ul(1==d?"Exception caught: ":d+" exceptions caught: ");b=!0;for(f=a.Bc();f.Hc();)e=f.Ic(),b?b=!1:d.a+="; ",gi(d,e.eb());d=d.a}this.e=b=a.xe()?null:a.Bc().Ic();this.f=d;lh(this);this.a=a;d=0;for(a=a.Bc();a.Hc();)b=a.Ic(),0!=d++&&($h(b,"Cannot suppress a null exception."),Uh(b!=this,"Exception can not suppress itself."),this.g||(null==this.j?this.j=T(vl(rh),l,15,0,[b]):this.j[this.j.length]=b))}y(73,10,La,jl);E(73);
+function ll(a){jl.call(this,a)}y(162,73,La,ll);E(162);function wl(a,b){var d;d=a.slice(0,b);T(Od(a),a.cM,a.__elementTypeId$,a.__elementTypeCategory$,d);return d}function xl(a,b){var d;d=yl(0,b);T(Od(a),a.cM,a.__elementTypeId$,a.__elementTypeCategory$,d);return d}function vl(a){return G(a,1)}function te(a,b,d,e,f){e=yl(f,e);T(G(a,1),b,d,f,e);return e}function T(a,b,d,e,f){f.cZ=a;f.cM=b;f.tM=Hd;f.__elementTypeId$=d;f.__elementTypeCategory$=e;return f}
+function yl(a,b){var d=Array(b),e;switch(a){case 6:e={l:0,m:0,h:0};break;case 7:e=0;break;case 8:e=!1;break;default:return d}for(var f=0;f<b;++f)d[f]=e;return d}function zl(a,b,d,e,f,g){a===d&&(a=a.slice(b,b+f),b=0);var h=b;for(b+=f;h<b;){var n=Math.min(h+1E4,b);f=n-h;Array.prototype.splice.apply(d,[e,g?f:0].concat(a.slice(h,n)));h=n;e+=f}}function Qh(a){return A(a,74)&&ce(a.b)!==ce((th(),uh))?ce(a.b)===ce(uh)?null:a.b:a}
+function Ph(a){var b;if(A(a,15))return a;b=a&&a.__gwt$exception;if(!b&&(b=new vh(a),mh(),a&&typeof a==ba))try{a.__gwt$exception=b}catch(d){}return b}function Al(a){return Bl(a.l,a.m,a.h)}function Bl(a,b,d){return{l:a,m:b,h:d}}
+function Cl(a,b){var d,e,f,g,h,n,p,q;if(0==b.l&&0==b.m&&0==b.h)throw new Dl;if(0==a.l&&0==a.m&&0==a.h)return El=Bl(0,0,0),Bl(0,0,0);if(b.h==Oa&&0==b.m&&0==b.l)return q=a,q.h==Oa&&0==q.m&&0==q.l?(El=Bl(0,0,0),q=Al((Fl(),Gl))):(El=Bl(q.l,q.m,q.h),q=Bl(0,0,0)),q;q=!1;0!=b.h>>19&&(b=Hl(b),q=!0);n=b.l;0!=(n&n-1)?p=-1:(h=b.m,0!=(h&h-1)?p=-1:(g=b.h,p=0!=(g&g-1)||0==g&&0==h&&0==n?-1:0==g&&0==h&&0!=n?Il(n):0==g&&0!=h&&0==n?Il(h)+22:0!=g&&0==h&&0==n?Il(g)+44:-1));g=h=n=!1;if(a.h==Oa&&0==a.m&&0==a.l)if(n=h=
+!0,-1==p)a=Al((Fl(),Jl)),g=!0,q=!q;else return g=Kl(a,p),q&&Ll(g),El=Bl(0,0,0),g;else 0!=a.h>>19&&(n=!0,a=Hl(a),g=!0,q=!q);if(-1!=p){g=a;h=p;p=Kl(g,h);q&&Ll(p);var r;22>=h?(q=g.l&(1<<h)-1,r=g=0):44>=h?(q=g.l,r=g.m&(1<<h-22)-1,g=0):(q=g.l,r=g.m,g=g.h&(1<<h-44)-1);g=Bl(q,r,g);n?El=Hl(g):El=Bl(g.l,g.m,g.h);return p}if(!Ml(a,b))return n?El=Hl(a):El=Bl(a.l,a.m,a.h),Bl(0,0,0);g=g?a:Bl(a.l,a.m,a.h);var t;r=Nl(b)-Nl(g);e=r&63;22>e?(d=b.l<<e,p=b.m<<e|b.l>>22-e,f=b.h<<e|b.m>>22-e):44>e?(d=0,p=b.l<<e-22,f=b.m<<
+e-22|b.l>>44-e):(p=d=0,f=b.l<<e-44);d&=Ma;e=p&Ma;f&=Na;for(p=Bl(0,0,0);0<=r;){t=g;var s=void 0,B=void 0,D=void 0,D=t.h-f;0>D?t=!1:(s=t.l-d,B=t.m-e+(s>>22),D+=B>>22,0>D?t=!1:(t.l=s&Ma,t.m=B&Ma,t.h=D&Na,t=!0));if(t&&(22>r?p.l|=1<<r:44>r?p.m|=1<<r-22:p.h|=1<<r-44,0==g.l&&0==g.m&&0==g.h))break;t=e;e=f;f=e>>>1;e=t>>>1|(e&1)<<21;d=d>>>1|(t&1)<<21;--r}q&&Ll(p);n?(El=Hl(g),h&&(q=El,g=(Fl(),Gl),n=q.l-g.l,h=q.m-g.m+(n>>22),El={l:n&Ma,m:h&Ma,h:q.h-g.h+(h>>22)&Na})):El=Bl(g.l,g.m,g.h);return p}
+function Ll(a){var b,d,e;b=~a.l+1&Ma;d=~a.m+(0==b?1:0)&Ma;e=~a.h+(0==b&&0==d?1:0)&Na;a.l=b;a.m=d;a.h=e}function Nl(a){var b;b=Ol(a.h);return 32==b?(b=Ol(a.m),32==b?Ol(a.l)+32:b+20-10):b-12}var El;function Pl(a,b){return a.l==b.l&&a.m==b.m&&a.h==b.h}function Ql(a){var b,d,e;if(isNaN(a))return Fl(),Rl;if(a<Ra)return Fl(),Sl;if(9223372036854775E3<=a)return Fl(),Jl;e=!1;0>a&&(e=!0,a=-a);d=0;a>=Qa&&(d=C(a/Qa),a-=d*Qa);b=0;a>=Pa&&(b=C(a/Pa),a-=b*Pa);a=C(a);b=Bl(a,b,d);e&&Ll(b);return b}
+function Tl(a){var b;return-129<a&&128>a?(b=a+128,null==Ul&&(Ul=te(Vl,l,656,256,0)),a=Ul[b]=Bl(a&Ma,a>>22&Ma,0>a?Na:0)):Bl(a&Ma,a>>22&Ma,0>a?Na:0)}function Wl(a,b){var d,e;d=a.h>>19;e=b.h>>19;return 0==d?0!=e||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>b.l:!(0==e||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<=b.l)}
+function Ml(a,b){var d,e;d=a.h>>19;e=b.h>>19;return 0==d?0!=e||a.h>b.h||a.h==b.h&&a.m>b.m||a.h==b.h&&a.m==b.m&&a.l>=b.l:!(0==e||a.h<b.h||a.h==b.h&&a.m<b.m||a.h==b.h&&a.m==b.m&&a.l<b.l)}function Hl(a){var b,d;b=~a.l+1&Ma;d=~a.m+(0==b?1:0)&Ma;return Bl(b,d,~a.h+(0==b&&0==d?1:0)&Na)}
+function Kl(a,b){var d,e,f;b&=63;d=a.h;(e=0!=(d&Oa))&&(d|=-1048576);22>b?(f=d>>b,e=a.m>>b|d<<22-b,d=a.l>>b|a.m<<22-b):44>b?(f=e?Na:0,e=d>>b-22,d=a.m>>b-22|d<<44-b):(f=e?Na:0,e=e?Ma:0,d>>=b-44);return{l:d&Ma,m:e&Ma,h:f&Na}}function Xl(a){Pl(a,(Fl(),Sl))?a=Ra:Ml(a,Rl)?a=a.l+a.m*Pa+a.h*Qa:(a=Hl(a),a=-(a.l+a.m*Pa+a.h*Qa));return a}
+function Yl(a){var b,d,e;if(0==a.l&&0==a.m&&0==a.h)return"0";if(a.h==Oa&&0==a.m&&0==a.l)return"-9223372036854775808";if(0!=a.h>>19)return"-"+Yl(Hl(a));for(d="";0!=a.l||0!=a.m||0!=a.h;){b=Tl(1E9);a=Cl(a,b);b=""+(El.l|El.m<<22);if(0!=a.l||0!=a.m||0!=a.h)for(e=9-b.length;0<e;e--)b="0"+b;d=b+d}return d}var Ul;function Fl(){Fl=x;Jl=Bl(Ma,Ma,524287);Sl=Bl(0,0,Oa);Gl=Tl(1);Tl(2);Rl=Tl(0)}var Jl,Sl,Gl,Rl;function Zl(){Zl=x}y(201,1,{},function(){});E(201);
+function $l(){this.a=this.Hb();this.b=this.Ib();this.c=this.Jb();this.d=this.Kb();this.e=this.Lb();this.f=this.Mb();this.Nb();this.g=this.Nb()}y(129,1,{});_.a=!1;_.b=!1;_.c=!1;_.d=!1;_.e=!1;_.f=!1;_.g=!1;E(129);function Bd(){$l.call(this)}y(382,129,{},Bd);_.Hb=am;_.Ib=am;_.Jb=am;_.Kb=bm;_.Lb=am;_.Mb=am;_.Nb=am;_.tS=cm;E(382);function Ad(){$l.call(this)}y(384,129,{},Ad);_.Hb=am;_.Ib=am;_.Jb=am;_.Kb=am;_.Lb=bm;_.Mb=am;_.Nb=am;_.tS=cm;E(384);function zd(){$l.call(this)}y(383,129,{},zd);_.Hb=am;
+_.Ib=am;_.Jb=am;_.Kb=am;_.Lb=am;_.Mb=am;_.Nb=bm;_.tS=cm;E(383);function dm(a,b){a.f=b;a.Ob();return em(),em(),fm}function gm(a,b){var d;d=a.f;d=null!=d?0!=(Od(d).e&4)?d:T(vl(I),l,1,3,[d]):te(I,l,1,0,3);d=d.length>b?d[b]:null;return null!=d?d:null}function hm(a,b){a.f=b;return a}function im(a,b){a.i=b;a.g=b?(Q(),R).nb(b):null}function jm(){this.f=te(I,l,1,0,3)}y(5,1,Wa);
+_.Ob=function(){throw new sh("You have to override the adequate method to handle this action, or you have to override 'public void f()' to avoid this error");};_.Pb=function(a){(a=(this.g=this.g=a)?km(a):null)?(this.j=!0,this.g=(W(),a.$),this.j?(this.j=!1,this.Ob()):this.Pb(a.$)):this.Ob()};_.Qb=function(a,b){this.f=b;im(this,a);return im(this,a),this.Pb(this.g),!0};_.Rb=function(a){return dm(this,a)};_.Sb=function(a){return this.Rb(a)};_.Tb=function(a){hm(this,a)};_.g=null;_.i=null;_.j=!1;
+var lm=E(5),mm;function nm(){nm=x;om=$doc.body;pm=yd();qm=new rm;sm=$doc;tm();um=(vm(),wm);xm=/^:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)$/;ym=/<([\w:-]+)/;zm();Am=(wh(),xh)}function Bm(a){a.c=te(Ud,l,0,0,2);a.d=[]}
+function X(a){var b;nm();var d,e;if(null!=a){if(Jd(a))return Cm(a,sm);if(A(a,19))return a;if(A(a,5))return new Dm(a.g);if(A(a,71))return new Dm(a.Vb());if(A(a,26)){a=new Em(T(G(I,1),l,1,3,[a]));b=Fm(null);for(d=new kl(a);d.b<d.d.Sc();)a=(P(d.b<d.d.Sc()),d.d.Me(d.c=d.b++)),be(a)?Gm(b,a):A(a,26)&&Gm(b,Hm(a.qc()));return new Im(b)}if(be(a)){if(Jm(a))return b=new Km(a),dm(b,b.f),new Im(Fm(null));if(!Lm(a,ea)&&!Mm(a)&&Nm(a)){b=a;a=Fm(null);for(d=0;d<b.length;d++)(e=null!=b[d]?Object(b[d]):null)&&Gm(a,
+e);return new Im(a)}if(b=Object.prototype.toString.call(a),"[object HTMLCollection]"==b||"[object NodeList]"==b||typeof a==ba&&a.length&&a[0]&&a[0].tagName?!0:!1)return new Om(a);Lm(a,"currentTarget")&&(a=(Q(),R).nb(a));return new Dm(a)}Pm(Qm(T(G(I,1),l,1,3,["Error: GQuery.$(Object o) could not wrap the type : ",Nd(Od(a)),a])))}return new Im(Fm(null))}
+function Cm(a,b){nm();var d;d=null;if(null==a||0==(d=xe(a)).length)d=new Im(Fm(null));else if(le(ve(d,0,1),"\x3c")){d=b&&Mm(b)?9==b.nodeType?b:b.ownerDocument:null;var e,f,g,h;if(e=ym.exec(a)){e=e[1];Rm||(f=new Sm(1,"\x3ctable\x3e","\x3c/table\x3e"),g=new Sm(1,'\x3cselect multiple\x3d"multiple"\x3e',"\x3c/select\x3e"),h=new Sm(3,"\x3ctable\x3e\x3ctbody\x3e\x3ctr\x3e","\x3c/tr\x3e\x3c/tbody\x3e\x3c/table\x3e"),Rm={},Tm(Rm,qa,g),Tm(Rm,"optgroup",g),g=new Sm(1,"\x3cfieldset\x3e","\x3c/fieldset\x3e"),
+Tm(Rm,"legend",g),Tm(Rm,"thead",f),Tm(Rm,"tbody",f),Tm(Rm,"tfoot",f),Tm(Rm,"colgroup",f),Tm(Rm,"caption",f),f=new Sm(2,"\x3ctable\x3e\x3ctbody\x3e","\x3c/tbody\x3e\x3c/table\x3e"),Tm(Rm,"tr",f),Tm(Rm,"td",h),Tm(Rm,"th",h),h=new Sm(2,"\x3ctable\x3e\x3ctbody\x3e\x3c/tbody\x3e\x3ccolgroup\x3e","\x3c/colgroup\x3e\x3c/table\x3e"),Tm(Rm,"col",h),h=new Sm(1,"\x3cmap\x3e","\x3c/map\x3e"),Tm(Rm,"area",h));e=e.toLowerCase();e=Um(Rm,e);!e&&(e=(Vm(),Wm));d=(Q(),d).createElement("div");h=e.b+xe(a)+e.a;d.innerHTML=
+h||"";for(e=e.c;0!=e--;)d=d.lastChild;d=Xm(X(d.childNodes),!1)}else d=X(d.createTextNode(a))}else d=new Ym,e=Zm((!$m&&($m=new an),$m),a,b?b:sm),d.b=a,d.a=b?b:sm,d=bn(d,e);return d}function cn(a,b){var d;if(b==dn)return a;if(en&&(d=fn(en,Wd(b))))return d.bc(a);throw new sh((de(b),"No plugin registered for class "+b.k));}
+function gn(a,b){var d,e,f,g,h;h=Fm(null);d=a.c;f=0;for(g=d.length;f<g;++f){e=d[f];e=ui((Q(),e));for(var n=h;e;)e&&hn(n,T(G(Ud,1),l,0,2,[e])),e=Ci((Q(),e))}d=new Im(jn(h));return kn(d,b)}function ln(a,b){var d,e,f,g,h;e=0;for(f=b.length;e<f;++e){d=b[e];try{mn();if(h=d.__gqueryevent){var n=h.a;if(n.__gwtlistener){var p=n,q=n.__gwtlistener;W();p.__listener=q}n.__gwtlistener=n.__gqueryevent=n.__gquery=null;h.b=[];h.c=0}nn(a,d,null)}catch(r){if(r=Ph(r),A(r,13))d=r,nh((g=d,g));else throw Qh(r);}}}
+function on(a,b){var d=T(G(Ud,1),l,0,2,[]),e,f,g,h,n,p,q,r;p=Fm(null);0==d.length&&(d=a.c);f=0;for(h=d.length;f<h;f++)for(e=d[f],9==e.nodeType&&(e=e.body),g=0,q=b.c.length;g<q;g++)if(n=pn(b,g),0<f&&(n=n.cloneNode(!0)),Gm(p,e.appendChild(n)),mn(),r=n.__gqueryevent)W(),n.__listener=r;qn(p)>=b.c.length&&bn(b,p)}
+function kn(a,b){var d;d=rn(", ",b);var e=(!$m&&($m=new an),$m);var f=a.d,g=e.a,h,n,p,q,r,t,s,B;B=Fm(null);if(d.length){p=null;s=new hl;n=new hl;q=0;for(r=f.length;q<r;q++)h=f[q],h==(nm(),Am)||h==sm||null==h.nodeName||me(mb,h.nodeName)||(il(n,h),g?(t=ii((Q(),h)))?s.a.Be(t)||il(s,t):(p||(p=Ji(),il(s,p)),t=p,t.appendChild(h)):0==s.a.Sc()&&il(s,sm));for(f=sn(new tn(s.a));f.a.Hc();)for(h=un(f),r=Zm(e,d,h),g=0,q=r.length;g<q;g++)h=r[g],null!=n.a.Ge(h)&&hn(B,T(G(Ud,1),l,0,2,[h]));p&&(p.innerHTML="")}return vn(a,
+B,d)}function wn(a,b){var d,e,f,g,h,n,p,q,r,t,s;d=Fm(null);t=0;for(s=b.length;t<s;++t)for(r=b[t],n=a.c,p=0,q=n.length;p<q;++p)for(e=n[p],f=Cm(r,e).c,g=0,h=f.length;g<h;++g)e=f[g],hn(d,T(G(Ud,1),l,0,2,[e]));return vn(a,jn(d),b[0])}function pn(a,b){var d;d=a.c.length;return 0<=b&&b<d?a.c[b]:0>b&&0<=d+b?a.c[d+b]:null}function rn(a,b){var d,e;e="";for(d=0;d<b.length;d++)e+=0<d?a+b[d]:b[d];return e}
+function xn(a){var b,d,e,f;f=Fm(null);a=a.c;d=0;for(e=a.length;d<e;++d)b=a[d],(b=ii((Q(),b)))&&hn(f,T(G(Ud,1),l,0,2,[b]));return new Im(jn(f))}function yn(a){var b,d,e;b=a.c;d=0;for(e=b.length;d<e;++d)(a=b[d])&&Tm(a,$a,"about:blank")}function vn(a,b,d){b=new Im(b);b.b=d;b.a=a.a;return b}function Xm(a,b){var d,e,f,g,h;e=a.c;f=0;for(g=e.length;f<g;++f)d=e[f],b&&(ln(a,Cm("*",d).c),ln(a,T(G(Ud,1),l,0,2,[d]))),(h=km(d))?zn(h):li(d);return a}
+function nn(a,b,d){var e;An||(Bn={},An={});b=b==Am||null==b.nodeName?Bn:b;e=Wd(b);if(null!=d){if(An[K(e)]){delete Um(An,K(e))[d];a:{d=Um(An,K(e));for(k in d)if(d.hasOwnProperty(k)){d=!1;break a}d=!0}d&&nn(a,b,null)}}else a=K(e),delete An[a]}function bn(a,b){var d,e;if(b){d=a.d;var f,g,h;f=Cn(d);g=0;for(h=f.length;g<h;++g)e=f[g],delete d[e];e=b.length;a.c=te(Ud,l,0,e,2);for(d=0;d<e;d++)a.c[d]=b[d],hn(a.d,T(G(Ud,1),l,0,2,[b[d]]))}return a}
+function Dn(a,b,d){var e,f;f=Fm(null);e=a.c.length;for((-1==d||d>e)&&(d=e);b<d;b++)Gm(f,pn(a,b));return new Im(f)}
+function En(a){var b,d,e,f,g;g="";b=a.c;d=0;for(e=b.length;d<e;++d)if(a=b[d],Am!=a){try{f=a&&"HTML"!==(a&&Mm(a)?9==a.nodeType?a:a.ownerDocument:null).documentElement.nodeName?(new XMLSerializer).serializeToString(a):(Q(),R).zb(a)}catch(h){if(h=Ph(h),A(h,13))f=h,f="\x3c "+(a?a.nodeName:xa)+"(gquery, error getting the element string representation: "+f.eb()+")/\x3e";else throw Qh(h);}g+=""+f}return g}function Fn(a,b){var d=T(G(I,1),l,1,3,[]);Gn(cn(a,um),b,d)}function Ym(){Bm(this)}
+function Dm(a){Om.call(this,Fm(a))}function Om(a){Bm(this);bn(this,a)}function Hn(a){nm();Bm(this);this.c=a.c;this.d=a.d;this.b=a.b;this.a=a.a}function Im(a){Om.call(this,a)}function In(a,b,d){nm();An||(Bn={},An={});if((a=a==Am||null==a.nodeName?Bn:a)&&null!=b){a=Wd(a);if(null==d)return An[K(a)]?Jn(Um(An,K(a)),b,null):null;An[K(a)]||Tm(An,K(a),{});Tm(Um(An,K(a)),b,d)}return d}
+function km(a){nm();var b;try{b=(W(),Kn(a));if(!b)return null;if(A(b,18))return b;if(A(b,136)&&Ln(b.a)&&A(Ln(b.a),18))return Ln(b.a)}catch(d){if(d=Ph(d),A(d,13))a=d,nh(a);else throw Qh(d);}return null}function Mn(a,b){nm();!en&&(en={});On(en,a,b);return a}y(19,1,ab,Ym,Dm,Om,Im);_.Ub=function(a,b){var d=cn(this,(Pn(),Qn));return Rn(d,a,b)};_.tS=function(){return En(this)};var um,om,pm,qm,An=null,sm,$m,en,xm,Sn,ym,Am,Bn=null,Rm,dn=E(19);function Vm(){Vm=x;Wm=new Sm(0,"","")}
+function Sm(a,b,d){Vm();this.c=a;this.a=d;this.b=b}y(55,1,{},Sm);_.c=0;var Wm;E(55);y(627,1,{});_.Wb=Tn;E(627);var Un=ke();function Vn(a,b,d){var e;for(e=0;e<b.length;e++){var f=b,g=e,h;h=Um(a,K(e));var n=d;h=(!mm&&(mm=new Wn),Xn(Yn(n),h));f[g]=h}return b}function Xn(a,b){if(null!=b&&Jd(b))return Xn(a,Zn(b));null!=b&&(a.a=b);return a}y(69,1,cb);_.Vb=$n;_.tS=function(){return $wnd.JSON.stringify(this.a)};E(69);function ao(){this.a={}}y(578,69,cb,ao);E(578);
+function Yn(a){if(a==Un)return new ao;if(a==bo)return new co;if(a==eo)return new fo;if(a==go)return new ho;if(a==io)return new jo;if(a==ko)return new lo;if(a==mo)return new no;oo((nm(),qm),"GQ.create: not registered class :"+a);return null}function Wn(){}y(140,1,{},Wn);E(140);function oo(a,b){a.a.Xb(Qm(T(G(I,1),l,1,3,[b])))}function Qm(a){var b,d,e,f;f=[];d=0;for(e=a.length;d<e;++d)b=a[d],hn(f,T(G(I,1),l,1,3,[b]));return f}function rm(){this.a=(nm(),pm).b?new po:pm.c?new qo:new ro}y(385,1,{},rm);
+E(385);function Pm(a){$wnd.console.log.apply($wnd.console,a)}function ro(){}y(386,1,{},ro);_.Xb=function(a){$wnd.console.error.apply($wnd.console,a)};_.Yb=function(a){$wnd.console.info.apply($wnd.console,a)};E(386);function qo(){this.Zb()}y(176,386,{},qo);_.Xb=function(a){this.a&&$wnd.console.error.apply($wnd.console,a)};_.Yb=function(a){this.a&&$wnd.console.info.apply($wnd.console,a)};
+_.Zb=function(){try{["log","info","warn",db,"dir","clear","profile","profileEnd"].forEach(function(a){$wnd.console[a]=this.call($wnd.console[a],$wnd.console)},Function.prototype.bind),this.a=!0}catch(a){}};_.a=!1;E(176);function po(){this.Zb()}y(387,176,{},po);_.Zb=function(){try{Function.prototype.call.call($wnd.console.log,$wnd.console,Array.prototype.slice.call(arguments)),this.a=!0}catch(a){}};E(387);
+function so(){so=x;to=/^(fillOpacity|fontWeight|lineHeight|opacity|orphans|widows|zIndex|zoom)$/i;uo=/^(client|offset|)(width|height)$/i}
+function vo(a,b,d){var e;if(Lm(b,ea)){if(v===d)return a=wo(a,b),(a.compatMode===Ca?a.documentElement:a.body).clientWidth|0;if(u===d)return a=wo(a,b),(a.compatMode===Ca?a.documentElement:a.body).clientHeight|0;b=(nm(),om)}if(!(uo.test(d)||null==wi(b,d)||b.style&&null!=Ui(b.style,d)))return parseFloat(b[d])||0;e=xo(a,b,d,!0);if(me("thick",e))return 5;if(me("medium",e))return 3;if(me("thin",e))return 1;oe(e,"^[\\d\\.]+.*$")||(e=xo(a,b,d,!1));e=pe(xe(e),eb,"");return e.length?yo(e):0}
+function xo(a,b,d,e){var f;if(!b)return"";d=zo(d);f=Ui(b.style,d);if(e){e=null;if(me(mb,b.nodeName)?0:!ji((b&&Mm(b)?9==b.nodeType?b:b.ownerDocument:null).body,b)){var g=X(b),h,n,p,q;e=Fm(null);g=g.c;n=0;for(p=g.length;n<p;++n)for(h=g[n],q=0,h=h.parentNode;h&&h!=sm;)hn(e,T(vl(Ud),l,0,2,[h])),h=h.parentNode,++q;e=new Im(jn(e));e=X(pn(e,e.c.length-1));e=pn(e,0);!e&&(e=b);$doc.body.appendChild(e)}if(uo.test(d)){var g=d,r;fn((Ao(),Bo),Vd(jb)).Wb(b,0)?a=Co(a,b,g):(f=xo(a,b,m,!1),r=xo(a,b,za,!1),d=xo(a,
+b,kb,!1),Do(b,m,"block"),Do(b,za,Aa),Do(b,kb,lb),a=Co(a,b,g),Do(b,m,f),Do(b,za,r),Do(b,kb,d));f=a+w}else if(me("opacity",d))H(),b=b.style,b=(Q(),b).opacity,f=""+(b?Eo(b):1);else{a=d.replace(/([A-Z])/g,"-$1").toLowerCase();try{f=(r=$doc.defaultView.getComputedStyle(b,null))&&r.getPropertyValue?r.getPropertyValue(a):null}catch(t){f=null}}e&&li(e)}return null==f?"":f}
+function Fo(a,b){0==(b.clientHeight|0)&&0==(b.clientWidth|0)&&le("inline",xo(a,b,m,!0))&&(Do(b,m,"inline-block"),Do(b,v,"auto"),Do(b,u,"auto"))}function zo(a){return me("float",a)?"cssFloat":me("for",a)?"htmlFor":Go(a)}function wo(a,b){var d=b.contentDocument||b.document||b.contentWindow.document;!d.body&&a.$b(d);return d}
+function Co(a,b,d){var e;e=0;v===d?e=(Fo(a,b),C((b.clientWidth|0)-Eo(xo(a,b,"paddingLeft",!0))-Eo(xo(a,b,fb,!0)))):u===d?e=(Fo(a,b),C((b.clientHeight|0)-Eo(xo(a,b,"paddingTop",!0))-Eo(xo(a,b,gb,!0)))):hb===d?e=b.clientWidth|0:ib===d?e=b.clientHeight|0:"offsetWidth"===d?e=(b.offsetWidth||0)|0:"offsetHeight"===d&&(e=(b.offsetHeight||0)|0);return e}function Eo(a){return(a=pe(xe(a),eb,""))?yo(a):0}
+function Do(a,b,d){a&&null!=b&&(b=zo(b),oe(b,"^[A-Z]+$")&&(b=b.toLowerCase()),b=Go(b),null==d||0==xe(d).length?a.style[b]="":(oe(d,"-?[\\d\\.]+")&&!to.test(b)&&(d+=w),a.style[b]=d))}function Ho(){so()}y(486,1,{},Ho);_.$b=function(a){a.open();a.write("\x3chead/\x3e\x3cbody/\x3e");a.close()};var to,uo,Io=E(486);
+function Ao(){Ao=x;Jo=0>$doc.location.href.indexOf("_force_no_native")&&"function"==typeof $doc.querySelectorAll;Bo={};On(Bo,jb,new Ko);On(Bo,lb,new Lo);On(Bo,"selected",new Mo);On(Bo,"input",new No);On(Bo,"header",new Oo)}
+function Zm(a,b,d){var e,f,g,h,n,p,q;if(a.d.test(b))for(;h=a.d.exec(b);)b=h[1]+":"+h[3],h[3]===h[2]||(b+=":"+h[2]),b+=h[4];if(a.b.test(b)){h=Fm(null);b=se(xe(b),"\\s*,\\s*",0);p=0;for(q=b.length;p<q;++p){n=b[p];if(e=a.b.exec(n))if(n=e[1].length?e[1]:"*",g=e[2],e=fn(Bo,Vd(g.toLowerCase()))){f=Zm(a,n,d);var r=void 0,t=g=n=void 0,s=void 0,s=Fm(null);n=0;t=f.length;for(g=0;n<t;n++)if(r=f[n],e.Wb(r,n)){var B=g++;Tm(s,K(B),r)}f=s}else a.d.test(g)?f=Zm(a,n,d):f=Zm(a,n+"[type\x3d"+g+"]",d);else f=Zm(a,n,
+d);Po(h,f,!1)}return h}return a.c._b(b,d)}function an(){Ao();this.b=RegExp("(.*):((visible|hidden|selected|input|header)|((button|checkbox|file|hidden|image|password|radio|reset|submit|text)\\s*(,|$)))(.*)","i");this.d=/(.*):([\w]+):(disabled|checked|enabled|empty|focus)\s*([:,].*|$)/i;this.c=ud();Nd(this.c.cZ);Qo=new Ho;de(Io)}function Ro(a,b){Ao();return b.querySelectorAll(a)}y(57,1,{},an);_._b=function(a,b){return Zm(this,a,b)};_.a=!0;var Bo,Jo=!1,Qo;E(57);function Ko(){}y(498,627,{},Ko);
+_.Wb=function(a){return 0<((a.offsetWidth||0)|0)+((a.offsetHeight||0)|0)&&!me(nb,xo((Ao(),Qo),a,m,!0))};E(498);function Lo(){}y(499,627,{},Lo);_.Wb=function(a,b){return!fn((Ao(),Bo),Vd(jb)).Wb(a,b)};E(499);function Mo(){}y(500,627,{},Mo);_.Wb=function(a){return!!a.selected};E(500);function No(){}y(501,627,{},No);_.Wb=function(a){return oe(a.nodeName.toLowerCase(),"input|select|textarea|button")};E(501);function Oo(){}y(502,627,{},Oo);_.Wb=function(a){return oe(a.nodeName.toLowerCase(),"h\\d")};E(502);
+y(647,1,{});E(647);
+function So(){So=x;To=new Uo;Vo=new Wo;Xo=new Yo;Zo=new $o;ap=T(G(I,1),l,1,3,["(['\\[])([^'\\]]*)([\\s\\.#])([^'\\]]*)(['\\]])",To,"\\[([^@\\]~\\$\\*\\^\\|\\!]+)(\x3d[^\\]]+)?\\]","[@$1$2]","\\s*,\\s*","|.//","\\s*(\\+|~|\x3e)\\s*","$1","([\\w\\-\\*])~([\\w\\-\\*])","$1/following-sibling::$2","([\\w\\-\\*])\\+([\\w\\-\\*])","$1/following-sibling::*[1]/self::$2","([\\w\\-\\*])\x3e([\\w\\-\\*])","$1/$2","\\[([^\x3d]+)\x3d([^'|\"][^\\]]*)\\]","[$1\x3d'$2']","(^|[^\\w\\-\\*])(#|\\.)([\\w\\-]+)","$1*$2$3",
+"([\\\x3e\\+\\|\\~\\,\\s])([a-zA-Z\\*]+)","$1//$2","\\s+//","//","([\\w\\-\\*]+):first-child","*[1]/self::$1","([\\w\\-\\*]+):last-child","$1[not(following-sibling::*)]","([\\w\\-\\*]+):only-child","*[last()\x3d1]/self::$1","([\\w\\-\\*]+):empty","$1[not(*) and not(normalize-space())]",":odd",":nth-child(even)",":even",":nth-child(odd)","(.+):not\\(([^\\)]*)\\)",Xo,"([a-zA-Z0-9\\_\\-\\*]*|\\]):nth-child\\(([^\\)]*)\\)",Zo,":contains\\(([^\\)]*)\\)","[contains(string(.),'$1')]","\\[([\\w\\-]+)\\|\x3d([^\\]]+)\\]",
+"[@$1\x3d$2 or starts-with(@$1,concat($2,'-'))]","\\[([\\w\\-]+)\\*\x3d([^\\]]+)\\]","[contains(@$1,$2)]","\\[([\\w\\-]+)~\x3d([^\\]]+)\\]","[contains(concat(' ',normalize-space(@$1),' '),concat(' ',$2,' '))]","\\[([\\w\\-]+)\\^\x3d([^\\]]+)\\]","[starts-with(@$1,$2)]","\\[([\\w\\-]+)\\$\x3d([^\\]]+)\\]",Vo,"\\[([\\w\\-]+)\\!\x3d([^\\]]+)\\]","[not(@$1) or @$1!\x3d$2]","#([\\w\\-]+)","[@id\x3d'$1']","\\.([\\w\\-]+)","[contains(concat(' ',normalize-space(@class),' '),' $1 ')]","\\]\\[([^\\]]+)"," and ($1)",
+":(enabled)","[not(@disabled)]",":(checked)","[@$1\x3d'$1']",":(disabled)","[@$1]",":(first)","[1]",":(last)","[last()]","(^|\\|[\\./]*)(\\[)","$1*$2","%S%"," ","%P%",".","%H%","#","'+","'"])}function bp(a){var b;b=a;for(a=0;a<ap.length;){var d=Xd(ap[a++]),e=ap[a++],f=void 0,g=void 0,h=f=void 0,n=void 0,n=RegExp(d);if(A(e,149))for(;n.test(b);){f=n.exec(b);g=new Ie;for(h=0;f&&h<f.length;h++)Le(g,f[h]);f=e.ac(g);b=re(b,d,f)}else b=pe(b,d,Xd(e))}return".//"+b}function cp(){So();dp=this}
+y(197,647,{},cp);_._b=function(a,b){var d,e;!ep&&(ep={});e=Um(ep,a);null==e&&(e=le(ve(a,0,2),"./")||le(ve(a,0,1),"/")?a:bp(a),Tm(ep,a,e));d=Fm(null);try{Ao();for(var f,g=b&&(b.ownerDocument||b),h=(g?g:$doc).evaluate(e,b,null,0,null);f=h.iterateNext();)d.push(f);return jn(d)}catch(n){n=Ph(n);if(A(n,13))return d;throw Qh(n);}};var ep,dp,Vo,Xo,Zo,To,ap;E(197);function Uo(){}y(589,1,ob,Uo);
+_.ac=function(a){return Wh(1,a.b.length),a.b[1]+(Wh(2,a.b.length),a.b[2])+(ue((Wh(3,a.b.length),a.b[3])," ")?"%S%":ue((Wh(3,a.b.length),a.b[3]),"#")?"%H%":"%P%")+(Wh(4,a.b.length),a.b[4])+(Wh(5,a.b.length),a.b[5])};E(589);function Wo(){}y(590,1,ob,Wo);_.ac=function(a){Wh(1,a.b.length);var b="[substring(@"+a.b[1]+",string-length(@"+(Wh(1,a.b.length),a.b[1])+")-",d=pe((Wh(2,a.b.length),a.b[2]),"'","");return b+(d.length-1)+")\x3d"+(Wh(2,a.b.length),a.b[2])+"]"};E(590);function Yo(){}y(591,1,ob,Yo);
+_.ac=function(a){return Wh(1,a.b.length),a.b[1]+"[not("+pe(bp((So(),!dp&&(dp=new cp),Wh(2,a.b.length),a.b[2])),"^[^\\[]+\\[([^\\]]*)\\].*$","$1)]")};E(591);function $o(){}y(592,1,ob,$o);
+_.ac=function(a){var b,d,e,f;e=(Wh(1,a.b.length),a.b[1]);f=(Wh(2,a.b.length),a.b[2]);d=(b="]"===e)?e:"*";a=b||null==e||0==e.length;if("n"===f)return e;if("even"===f)return d+"[position() mod 2\x3d0 and position()\x3e\x3d0]"+(a?"":"/self::"+e);if("odd"===f)return(b?d:a?"":e)+"[(count(preceding-sibling::*) + 1) mod 2\x3d1]";if(-1==f.indexOf("n"))return d+"[position() \x3d "+f+"]"+(a?"":"/self::"+e);f=se(pe(f,"^([0-9]*)n.*?([0-9]*)?$","$1+$2"),"\\+",0);b=f[0];f=1<f.length?f[1]:"0";return d+"[(position()-"+
+f+") mod "+b+"\x3d0 and position()\x3e\x3d"+f+"]"+(a?"":"/self::"+e)};E(592);y(593,1,{},function(){});E(593);function vd(){if(!fp){a:{switch(dd){case 4:case 5:fp=new gp;break a}fp=new cp}Nd(fp.cZ)}}y(575,647,{},vd);
+_._b=function(a,b){var d,e;-1!=a.indexOf("!\x3d")&&(!hp&&(hp={}),e=Um(hp,a),null==e&&(e=pe(a,"(\\[\\w+)!(\x3d[^\\]]+\\])",":not($1$2)"),Tm(hp,a,e)),a=e);if((Ao(),!Jo)||oe(a,ip))return fp._b(a,b);try{return Ro(a,b)}catch(f){f=Ph(f);if(A(f,13))return d=f,e=(nm(),qm),d="ERROR SelectorEngineNative "+d.eb()+" "+a+", falling back to "+pe(Nd(fp.cZ),".*\\.",""),e.a.Yb(Qm(T(vl(I),l,1,3,[d]))),fp._b(a,b);throw Qh(f);}};var ip="(^[\\./]/.*)|(.*(:contains|:first([^-]|$)|:last([^-]|$)|:even|:odd)).*",hp,fp;E(575);
+function xd(){}y(576,647,{},xd);_._b=function(a,b){var d;try{return Ro(a,b)}catch(e){e=Ph(e);if(A(e,13))return d=e,oo((nm(),qm),"GwtQuery: Selector '"+a+"' is unsupported in this SelectorEngineNativeMin engine. Do not use this syntax or configure your module to use a JS fallback. "+d.eb()),null;throw Qh(e);}};E(576);function wd(){}y(577,647,{},wd);
+_._b=function(a,b){var d;try{return Ro(a,b)}catch(e){e=Ph(e);if(A(e,13))return d=e,oo((nm(),qm),"GwtQuery: Selector '"+a+"' is unsupported in this SelectorEngineNativeMinIE8 engine, check that you are in 'standards mode' or configure your module to use JS fallback. "+d.eb()),null;throw Qh(e);}};E(577);function gp(){jp()}
+function jp(){(function(){function a(a,b){for(var d=[],e="",g,h=b.nodeType?[b]:b;g=t.match.PSEUDO.exec(a);)e+=g[0],a=a.replace(t.match.PSEUDO,"");a=t.relative[a]?a+"*":a;g=0;for(var n=h.length;g<n;g++)f(a,h[g],d);return f.filter(e,d)}function b(a,b){if(!a.sourceIndex||!b.sourceIndex)return a==b&&(r=!0),a.sourceIndex?-1:1;var d=a.sourceIndex-b.sourceIndex;0===d&&(r=!0);return d}function d(a,b){a=Array.prototype.slice.call(a,0);return b?(b.push.apply(b,a),b):a}function e(a,b){return"\\"+(b-0+1)}function f(b,
+e,g,h){g=g||[];var p=e=e||document;if(1!==e.nodeType&&9!==e.nodeType)return[];if(!b||typeof b!==ca)return g;var r=[],B,Cd,D,Nn,gy=!0,Jj=f.isXML(e),hy=b,fc;do if(n.exec(""),B=n.exec(hy))if(hy=B[3],r.push(B[1]),B[2]){Nn=B[3];break}while(B);if(1<r.length&&s.exec(b))if(2===r.length&&t.relative[r[0]])Cd=a(r[0]+r[1],e);else for(Cd=t.relative[r[0]]?[e]:f(r.shift(),e);r.length;)b=r.shift(),t.relative[b]&&(b+=r.shift()),Cd=a(b,Cd);else if(!h&&1<r.length&&9===e.nodeType&&!Jj&&t.match.ID.test(r[0])&&!t.match.ID.test(r[r.length-
+1])&&(B=f.find(r.shift(),e,Jj),e=B.expr?f.filter(B.expr,B.set)[0]:B.set[0]),e)for(B=h?{expr:r.pop(),set:d(h)}:f.find(r.pop(),1!==r.length||"~"!==r[0]&&"+"!==r[0]||!e.parentNode?e:e.parentNode,Jj),Cd=B.expr?f.filter(B.expr,B.set):B.set,0<r.length?D=d(Cd):gy=!1;r.length;)B=fc=r.pop(),t.relative[fc]?B=r.pop():fc="-",null==B&&(B=e),t.relative[fc](D,B,Jj);else D=[];!D&&(D=Cd);!D&&f.error(fc||b);if(q.call(D)===aa)if(gy)if(e&&1===e.nodeType)for(b=0;null!=D[b];b++)D[b]&&(!0===D[b]||1===D[b].nodeType&&f.contains(e,
+D[b]))&&g.push(Cd[b]);else for(b=0;null!=D[b];b++)D[b]&&1===D[b].nodeType&&g.push(Cd[b]);else g.push.apply(g,D);else d(D,g);Nn&&(f(Nn,p,g,h),f.uniqueSort(g));return g}function g(a,b,d,e,f,g){f=0;for(var h=e.length;f<h;f++){var n=e[f];if(n){for(var n=n[a],p=!1;n;){if(n.sizcache===d){p=e[n.sizset];break}1!==n.nodeType||g||(n.sizcache=d,n.sizset=f);if(n.nodeName.toLowerCase()===b){p=n;break}n=n[a]}e[f]=p}}}function h(a,b,d,e,g,h){g=0;for(var n=e.length;g<n;g++){var p=e[g];if(p){for(var p=p[a],q=!1;p;){if(p.sizcache===
+d){q=e[p.sizset];break}if(1===p.nodeType)if(h||(p.sizcache=d,p.sizset=g),typeof b!==ca){if(p===b){q=!0;break}}else if(0<f.filter(b,[p]).length){q=p;break}p=p[a]}e[g]=q}}}var n=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,p=0,q=Object.prototype.toString,r=!1;f.uniqueSort=function(a){if(b&&(r=!1,a.sort(b),r))for(var d=1;d<a.length;d++)a[d]===a[d-1]&&a.splice(d--,1);return a};f.matches=function(a,b){return f(a,null,
+null,b)};f.find=function(a,b,d){var e;if(!a)return[];for(var f=0,g=t.order.length;f<g;f++){var h=t.order[f],n;if(n=t.leftMatch[h].exec(a)){var p=n[1];n.splice(1,1);if("\\"!==p.substr(p.length-1)&&(n[1]=(n[1]||"").replace(/\\/g,""),e=t.find[h](n,b,d),null!=e)){a=a.replace(t.match[h],"");break}}}!e&&(e=b.getElementsByTagName("*"));return{set:e,expr:a}};f.filter=function(a,b,d,e){for(var g=a,h=[],n=b,p,q,r=b&&b[0]&&f.isXML(b[0]);a&&b.length;){for(var s in t.filter)if(null!=(p=t.leftMatch[s].exec(a))&&
+p[2]){var B=t.filter[s],D,fc;fc=p[1];q=!1;p.splice(1,1);if("\\"!==fc.substr(fc.length-1)){n===h&&(h=[]);if(t.preFilter[s])if(p=t.preFilter[s](p,n,d,h,e,r),!p)q=D=!0;else if(!0===p)continue;if(p)for(var Kj=0;null!=(fc=n[Kj]);Kj++)if(fc){D=B(fc,p,Kj,n);var iy=e^!!D;d&&null!=D?iy?q=!0:n[Kj]=!1:iy&&(h.push(fc),q=!0)}if(void 0!==D){!d&&(n=h);a=a.replace(t.match[s],"");if(!q)return[];break}}}if(a===g)if(null==q)f.error(a);else break;g=a}return n};f.error=function(a){throw pb+a;};var t=f.selectors={order:["ID",
+"NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},
+attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href",2)}},relative:{"+":function(a,b){var d=typeof b===ca,e=d&&!/\W/.test(b),d=d&&!e;e&&(b=b.toLowerCase());for(var e=0,g=a.length,h;e<g;e++)if(h=a[e]){for(;(h=h.previousSibling)&&1!==h.nodeType;);a[e]=d||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}d&&f.filter(b,a,!0)},"\x3e":function(a,b){var d=typeof b===ca,e,g=0,h=a.length;if(d&&!/\W/.test(b))for(b=b.toLowerCase();g<h;g++){if(e=a[g])d=e.parentNode,
+a[g]=d.nodeName.toLowerCase()===b?d:!1}else{for(;g<h;g++)(e=a[g])&&(a[g]=d?e.parentNode:e.parentNode===b);d&&f.filter(b,a,!0)}},"-":function(a,b,d){var e=p++,f=h,n;typeof b!==ca||/\W/.test(b)||(n=b=b.toLowerCase(),f=g);f("parentNode",b,e,a,n,d)},"~":function(a,b,d){var e=p++,f=h,n;typeof b!==ca||/\W/.test(b)||(n=b=b.toLowerCase(),f=g);f("previousSibling",b,e,a,n,d)}},find:{ID:function(a,b,d){if(typeof b.getElementById!==Ba&&!d)return(b=b.getElementById(a[1]))?b.id===a[1]||typeof b.getAttributeNode!==
+Ba&&b.getAttributeNode("id").nodeValue===a[1]?[b]:void 0:[]},NAME:function(a,b){if(typeof b.getElementsByName!==Ba){for(var d=[],e=b.getElementsByName(a[1]),f=0,g=e.length;f<g;f++)e[f].getAttribute("name")===a[1]&&d.push(e[f]);return 0===d.length?null:d}},TAG:function(a,b){var d=b.getElementsByTagName(a[1]);if("*"===a[1]){for(var e=[],f=0;d[f];f++)1===d[f].nodeType&&e.push(d[f]);d=e}return d}},preFilter:{CLASS:function(a,b,d,e,f,g){a=" "+a[1].replace(/\\/g,"")+" ";if(g)return a;g=0;for(var h;null!=
+(h=b[g]);g++)h&&(f^(h.className&&0<=(" "+h.className+" ").replace(/[\t\n]/g," ").indexOf(a))?!d&&e.push(h):d&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(/\\/g,"")},TAG:function(a){return a[1].toLowerCase()},CHILD:function(a){if("nth"===a[1]){var b=/(-?)(\d*)n((?:\+|-)?\d*)/.exec("even"===a[2]&&"2n"||"odd"===a[2]&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0;a[3]=b[3]-0}a[0]=p++;return a},ATTR:function(a,b,d,e,f,g){b=a[1].replace(/\\/g,"");!g&&t.attrMap[b]&&(a[1]=
+t.attrMap[b]);"~\x3d"===a[2]&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(a,b,d,e,g){if("not"===a[1])if(1<(n.exec(a[3])||"").length||/^\w/.test(a[3]))a[3]=f(a[3],null,null,b);else return a=f.filter(a[3],b,d,1^g),!d&&e.push.apply(e,a),!1;else if(t.match.POS.test(a[0])||t.match.CHILD.test(a[0]))return!0;return a},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return!1===a.disabled&&a.type!==lb},disabled:function(a){return!0===a.disabled},checked:function(a){return!0===a.checked},
+selected:function(a){return!0===a.selected},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,d){return!!f(d[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){return"text"===a.type},radio:function(a){return"radio"===a.type},checkbox:function(a){return ia===a.type},file:function(a){return"file"===a.type},password:function(a){return"password"===a.type},submit:function(a){return"submit"===a.type},image:function(a){return"image"===
+a.type},reset:function(a){return"reset"===a.type},button:function(a){return ha===a.type||a.nodeName.toLowerCase()===ha},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)}},setFilters:{first:function(a,b){return 0===b},last:function(a,b,d,e){return b===e.length-1},even:function(a,b){return 0===b%2},odd:function(a,b){return 1===b%2},lt:function(a,b,d){return b<d[3]-0},gt:function(a,b,d){return b>d[3]-0},nth:function(a,b,d){return d[3]-0===b},eq:function(a,b,d){return d[3]-0===
+b}},filter:{PSEUDO:function(a,b,d,e){var g=b[1],h=t.filters[g];if(h)return h(a,d,b,e);if("contains"===g)return 0<=(a.textContent||a.innerText||f.getText([a])||"").indexOf(b[3]);if("not"===g){b=b[3];d=0;for(e=b.length;d<e;d++)if(b[d]===a)return!1;return!0}f.error(pb+g)},CHILD:function(a,b){var d=b[1],e=a;switch(d){case "only":case "first":for(;e=e.previousSibling;)if(1===e.nodeType)return!1;if("first"===d)return!0;e=a;case "last":for(;e=e.nextSibling;)if(1===e.nodeType)return!1;return!0;case "nth":var d=
+b[2],f=b[3];if(1===d&&0===f)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){for(var n=0,e=h.firstChild;e;e=e.nextSibling)1===e.nodeType&&(e.nodeIndex=++n);h.sizcache=g}e=a.nodeIndex-f;return 0===d?0===e:0===e%d&&0<=e/d}},ID:function(a,b){var d=typeof a.getAttributeNode!==Ba&&a.getAttributeNode("id");return 1===a.nodeType&&d&&d.nodeValue===b},TAG:function(a,b){return"*"===b&&1===a.nodeType||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return-1<(" "+(a.className||a.getAttribute("class"))+
+" ").indexOf(b)},ATTR:function(a,b){var d=b[1],d=t.attrHandle[d]?t.attrHandle[d](a):null!=a[d]?a[d]:a.getAttribute(d),e=d+"",f=b[2],g=b[4];return null==d?"!\x3d"===f:"\x3d"===f?e===g:"*\x3d"===f?0<=e.indexOf(g):"~\x3d"===f?0<=(" "+e+" ").indexOf(g):g?"!\x3d"===f?e!==g:"^\x3d"===f?0===e.indexOf(g):"$\x3d"===f?e.substr(e.length-g.length)===g:"|\x3d"===f?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&!1!==d},POS:function(a,b,d,e){var f=t.setFilters[b[2]];if(f)return f(a,d,b,e)}}},s=t.match.POS,B;for(B in t.match)t.match[B]=
+RegExp(t.match[B].source+/(?![^\[]*\])(?![^\(]*\))/.source),t.leftMatch[B]=RegExp(/(^(?:.|\r|\n)*?)/.source+t.match[B].source.replace(/\\(\d+)/g,e));try{Array.prototype.slice.call(document.documentElement.childNodes,0)}catch(D){d=function(a,b){var d=b||[],e=0;if(q.call(a)===aa)Array.prototype.push.apply(d,a);else if(typeof a.length===qb)for(var f=a.length;e<f;e++)d.push(a[e]);else for(;a[e];e++)d.push(a[e]);return d}}f.getText=function(a){for(var b="",d,e=0;a[e];e++)d=a[e],3===d.nodeType||4===d.nodeType?
+b+=d.nodeValue:8!==d.nodeType&&(b+=f.getText(d.childNodes));return b};f.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)};f.isXML=function(a){return(a=(a?a.ownerDocument||a:0).documentElement)?"HTML"!==a.nodeName:!1};window.IES=f;$wnd.IES=f})()}y(588,647,{},gp);_._b=function(a,b){return $wnd.IES(a,b,[],null)};E(588);function Um(a,b){return kp([a&&a[b]])}
+function Jn(a,b,d){b=Um(a,b);if(null!=b&&d)if(A(b,12))if(a=b,d==lp)b=new mp(a.a);else if(d==np)b=K(C(a.a));else if(d==op){d=Ql(a.a);if(a=Wl(d,{l:4194175,m:Ma,h:Na}))a=!Ml(d,{l:128,m:0,h:0});a?(a=(d.l|d.m<<22)+128,b=(pp(),qp)[a],!b&&(b=qp[a]=new rp(d))):b=new rp(d)}else d==sp?(d=C(a.a)<<16>>16,-129<d&&128>d?(a=d+128,b=(tp(),up)[a],!b&&(b=up[a]=new vp(d))):b=new vp(d)):d==wp&&(d=C(a.a)<<24>>24,a=d+128,b=(xp(),yp)[a],!b&&(b=yp[a]=new zp(d)));else d!=Ap||A(b,56)?d==z&&!Jd(b)&&(b=(H(),""+b)):b=(em(),me(rb,
+(H(),""+b))?fm:Bp);return b}function Cp(a){var b=(H(),bb);a=a[b];return Object.prototype.toString.call(a)==aa?a:null}function Dp(a,b){var d;d=Um(a,b);return null!=d&&be(d)?d:null}function Cn(a){var b,d=[];for(b in a)a.hasOwnProperty(b)&&b!=tb&&"$H"!=b&&d.push(String(b));b=te(z,l,2,d.length,4);for(a=0;a<d.length;a++)b[a]=d[a];return b}function qn(a){if(typeof a.length==qb)return a.length;var b,d=0;for(b in a)b!=tb&&d++;return d}function Tm(a,b,d){A(d,56)?a[b]=d.a:(A(d,46)&&(d=d.pe()),a[b]=d)}
+function kp(a){if(typeof a==ba&&1==a.length){a=a[0];var b=typeof a;if("boolean"==b)return em(),a?fm:Bp;if(b==qb)return new Y(a)}return a||null}function fn(a,b){return Um(a,K(b))}function On(a,b,d){Tm(a,K(Pd(b)),d)}function Gm(a,b){hn(a,T(G(Ud,1),l,0,2,[b]))}function Fm(a){return a?[a]:[]}function hn(a,b){var d,e,f;e=0;for(f=b.length;e<f;++e)if(d=b[e],A(d,46)){var g=K(qn(a));d=d.pe();a[g]=d}else A(d,56)?(g=K(qn(a)),a[g]=d.a):Tm(a,K(qn(a)),d);return a}
+function Go(a){return a.replace(/\-(\w)/g,function(a,d){return d.toUpperCase()})}function Po(a,b,d){var e,f,g,h;h=!a||d?Fm(null):a;g={};for(f=0;a&&f<a.length;f++)e=a[f],Tm(g,K(Wd(e)),K(1)),d&&Tm(h,K(f),e);a=0;f=b.length;for(d=h.length;a<f;a++)if(e=b[a],!g[K(Wd(e))]){e=b[a];var n=d++;Tm(h,K(n),e)}return h}function Lm(a,b){var d=b.split("."),e;for(e in d){if(!(a&&d[e]in a))return!1;a=a[d[e]]}return!0}function Nm(a){return Object.prototype.toString.call(a)==aa||typeof a.length==qb}
+function Mm(a){return!!a&&"nodeType"in a&&"nodeName"in a}function Jm(a){return"[object Function]"==Object.prototype.toString.call(a)}function Ep(a,b,d){var e;a:{d=hn([],d);var f=a||$wnd;b=b.split(".");for(e in b)if(a=f,f=f[b[e]],!f){e=null;break a}e=Jm(f)&&kp([f.apply(a,d)])}return e}function Zn(a){try{var b;try{b=JSON.parse(a)}catch(d){throw new J("Error parsing JSON: "+d+"\n"+a);}return b}catch(e){e=Ph(e);if(A(e,13))return{};throw Qh(e);}}function Fp(a,b){return a?Um(a,b):null}
+function Gp(a){return function(b){var d=new Ie;for(i in arguments)b=kp([arguments[i]]),d.Le(b);d=d.ye();a.Tb(d);return a.Sb(d)}}function Km(a){jm.call(this);this.a=null;Jm(a)&&(this.a=a)}y(87,5,Wa,Km);_.eQ=function(a){return ce(this.a)===ce(a)};_.hb=Hp;_.Ob=Hp;_.hC=function(){return Wd(this.a)};E(87);function jn(a){var b,d,e,f,g;g=[];b={};for(e=0;e<a.length;e++)d=a[e],f=Wd(d),b[K(f)]||(f=K(f),b[f]=1,g[g.length]=d);return g}
+function Pn(){Pn=x;nm();Qn=Mn(Ip,new Jp);de(Ip);Kp=(de(Ip),Ip.k+".Queue-");Lp=Kp+"fx"}function Rn(a,b,d){var e=Lp,f,g,h,n;g=a.c;h=0;for(n=g.length;h<n;++h)f=g[h],Mp(a,f,e,new Np(a,f,e,b,d));return a}function Mp(a,b,d,e){var f;return b?(f=(nm(),In(b,d,null)),e&&(!f&&(f=In(b,d,new Op)),Pp(f,e,f.c.b,f.c),1==f.b&&Qp(a,b,d,f)),f):null}
+function Qp(a,b,d,e){var f,g;(e=0==e.b?null:(P(0!=e.b),e.a.a.c))?e.Pb(b):(Rp((f=d+".Empty",g=(nm(),In(b,f,null)),!g&&(g=In(b,f,new Sp(ub))),g),T(G(I,1),l,1,3,[])),nn(a,b,d),nn(a,b,d+".Empty"))}function Tp(a){Pn();Hn.call(this,a)}y(130,19,ab,Tp);_.Ub=function(a,b){return Rn(this,a,b)};var Lp,Kp,Qn,Ip=E(130);function tm(){tm=x;Pn();Mn(Up,new Vp)}function Wp(a){tm();Tp.call(this,a)}y(388,130,ab,Wp);var Up=E(388);function Vp(){}y(389,1,{},Vp);_.bc=function(a){return new Wp(a)};E(389);
+function vm(){vm=x;nm();wm=Mn(Xp,new Yp)}function Zp(a,b,d){var e,f,g;e=a.c;f=0;for(g=e.length;f<g;++f)a=e[f],(Lm(a,ea)||Mm(a)&&3!=a.nodeType&&8!=a.nodeType)&&$p(aq(a),b,d)}function bq(a,b,d){if(b&&!me(mb,(Q(),b).tagName)&&!d.cancelBubble){var e=aq(b);cq(e,d,(Q(),d).type);bq(a,ii((Q(),b)),d)}}function dq(a,b,d){var e,f,g;f=0;for(g=d.length;f<g;++f)e=d[f],im(e,b),e.Pb(a)}
+function eq(a,b,d,e){var f,g,h,n;g=a.c;h=0;for(n=g.length;h<n;++h)if(f=g[h],Lm(f,ea)||Mm(f)&&3!=f.nodeType&&8!=f.nodeType){for(var p=X(f),q=d,r=void 0,t=void 0,s=void 0,B=void 0,t=p.c,s=0,B=t.length;s<B;++s)r=t[s],In(r,Za,q);((nm(),pm).a||pm.b)&&-1==fq((Q(),b).type)?bq(a,f,b):(Q(),R).lb(f,b);b.defaultPrevented||!1===b.returnValue||b.getPreventDefault&&b.getPreventDefault()||dq(f,b,e);f=X(f);t=r=q=p=void 0;q=f.c;r=0;for(t=q.length;r<t;++r)p=q[r],nn(f,p,Za)}}
+function Gn(a,b,d){var e=T(G(lm,1),l,5,0,[]),f,g;for(b=new kl(gq(b));b.b<b.d.Sc();){g=(P(b.b<b.d.Sc()),b.d.Me(b.c=b.b++));f=(nm(),sm);var h=g.a;(f=(Q(),R).jb(f,h))&&Tm(f,"namespace",g.b);"submit"===g.a?(g=new hq(e),eq(a,f,d,T(G(lm,1),l,5,0,[g]))):eq(a,f,d,e)}}function iq(a){vm();Hn.call(this,a)}y(164,19,ab,iq);var wm,Xp=E(164);function Yp(){}y(309,1,{},Yp);_.bc=function(a){return new iq(a)};E(309);function hq(a){this.a=a;jm.call(this)}y(310,5,Wa,hq);
+_.Pb=function(a){a&&me("form",(Q(),a).tagName)&&a.submit();dq(a,this.i,this.a)};E(310);function Jp(){}y(392,1,{},Jp);_.bc=function(a){return new Tp(a)};E(392);function Np(a,b,d,e,f){this.e=a;jm.call(this);this.b=b;this.a=e;this.c=f;this.d=d}y(390,5,Wa,Np);_.Ob=function(){Me(new jq(this),this.a)};_.a=0;E(390);function jq(a){this.a=a}y(391,50,{},jq);
+_.db=function(){var a,b,d,e;b=this.a.c;d=0;for(e=b.length;d<e;++d)a=b[d],a.Pb(this.a.b);a=this.a.e;b=this.a.b;d=this.a.d;e=this.a;var f;(f=Mp(a,b,d,null))&&ce(e)===ce(0==f.b?null:(P(0!=f.b),f.a.a.c))&&(e=Mp(a,b,d,null))&&(0==e.b||(P(0!=e.b),kq(e,e.a.a)),Qp(a,b,d,e))};E(391);function lq(){lq=x;nm();a:{var a;a=(c='"position":"relative"',oe(c,"(^[\\[\\{].*[\\]\\}]$)")?c:"{"+c+"}");try{mq=Zn(a);break a}catch(b){if(b=Ph(b),!A(b,13))throw Qh(b);}mq={}}nq=Mn(oq,new pq);N((mn(),qq),Xa,new rq)}
+function sq(a){lq();Hn.call(this,a)}y(405,19,ab,sq);var nq,mq,oq=E(405);function pq(){}y(409,1,{},pq);_.bc=function(a){return new sq(a)};E(409);function rq(){this.a=new Ie}y(406,1,{},rq);_.cc=tq;_.dc=uq;
+_.ec=function(a){var b;if(!Lm(a,ea)&&1==a.nodeType&&-1==vq(this.a,a))if(oe((Q(),a).tagName.toLowerCase(),"iframe|object")){b=X(wo((nm(),!Sn&&(Sn=(!$m&&($m=new an),Ao(),Qo)),nm(),Sn),a));b=0==b.c.length?null:Fp(pn(b,0),"defaultView");b=X(b);var d=Xa;a=T(G(lm,1),l,5,0,[new wq(a)]);Zp(cn(b,um),d,a)}else if(b=X(a),0==wn(b,T(vl(z),l,2,4,[".resize-object"])).c.length){var d=(nm(),Cm("\x3cobject type\x3d'text/html' style\x3d'display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;'\x3e",
+sm)),e=T(vl(lm),l,5,0,[new xq]);Zp(cn(d,um),"load",e);pm.e||pm.d?(e=X(a),on(e,d),yn(d)):(yn(d),e=X(a),on(e,d));a=X(a);a=0==a.c.length?"":xo((!Sn&&(Sn=(!$m&&($m=new an),Ao(),Qo)),Sn),pn(a,0),za,!0);if(oe(a.toLowerCase(),"initial|static")){a=(lq(),mq);var f,g,d=Cn(a),e=0;for(g=d.length;e<g;++e){var h=f=d[e];f=wi(a,(H(),""+f));for(var n=void 0,p=void 0,q=void 0,r=void 0,p=b.c,q=0,r=p.length;q<r;++q)n=p[q],Do((!Sn&&(Sn=(!$m&&($m=new an),Ao(),Qo)),n),h,f)}}}return!1};
+_.fc=function(a){a=cn(wn(X(a),T(G(z,1),l,2,4,[".resize-object"])),(nm(),um));var b,d,e,f;d=a.c;e=0;for(f=d.length;e<f;++e)b=d[e],(Lm(b,ea)||Mm(b)&&3!=b.nodeType&&8!=b.nodeType)&&yq(aq(b),Xa,null);Xm(a,!0);return!1};E(406);function xq(){jm.call(this)}y(407,5,Wa,xq);_.Ob=function(){var a=X(this),b=Xa,d=T(G(lm,1),l,5,0,[]);Zp(cn(a,um),b,d)};E(407);function wq(a){this.a=a;jm.call(this)}y(408,5,Wa,wq);_.Ob=function(){Fn(xn(X(this.a)),Xa)};E(408);function zm(){zm=x;Pn();Mn(zq,new Aq)}
+function Bq(a){zm();Tp.call(this,a)}y(393,130,ab,Bq);var zq=E(393);function Aq(){}y(394,1,{},Aq);_.bc=function(a){return new Bq(a)};E(394);var bo=ke();function co(){this.a={}}y(579,69,cb,co);E(579);function Cq(a,b){var d,e,f;e=0;for(f=b.length;e<f;++e)if(d=b[e],a.a||!a.f||!d||a.d&&-1!=vq(a.f,d)||Le(a.f,d),a.b&&a.e){var g;g=a.e;g=wl(g.b,g.b.length);Dq(d,g)}}function Eq(a){a.f=null;a.a=!0}
+function Rp(a,b){var d,e;if(!a.a&&(a.a=a.c,a.b&&(a.e=new Fq(new Em(b))),a.f))for(e=new kl(a.f);e.b<e.d.Sc()&&(d=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++)),Dq(d,b)||!a.g););}function Dq(a,b){var d;null!=b&&1==b.length&&null!=b[0]&&0!=(Od(b[0]).e&4)&&(b=b[0]);return A(a,5)?(d=a.Rb(b),!A(d,56)||d.a):!0}function Sp(a){this.f=new Ie;this.c=-1!=a.indexOf("once");this.b=-1!=a.indexOf("memory");this.d=-1!=a.indexOf("unique");this.g=-1!=a.indexOf("stopOnFalse")}y(102,1,{},Sp);_.a=!1;_.b=!1;_.c=!1;_.d=!1;_.e=null;
+_.g=!1;E(102);function Gq(){this.a=new Sp("memory");this.c=new Sp(ub);this.d=new Sp(ub);Cq(this.d,T(G(lm,1),l,5,0,[new Hq(this)]));Cq(this.c,T(G(lm,1),l,5,0,[new Iq(this)]))}y(165,1,{},Gq);_.tS=function(){var a="Deferred this\x3d"+Wd(this)+" promise\x3d"+(!this.b&&(this.b=new Jq(this)),Wd(this.b))+" state\x3d"+this.b.a.e+" restatus\x3d",b;b=this.d;b="stack\x3d"+(b.f?K(b.f.b.length):xa)+" "+b.a;return a+b};_.b=null;_.e=wb;E(165);function Hq(a){this.a=a;jm.call(this)}y(315,5,Wa,Hq);
+_.Ob=function(){this.a.e="resolved";Eq(this.a.d);var a=this.a.a;a.b||Eq(a);a.f=null};E(315);function Iq(a){this.a=a;jm.call(this)}y(316,5,Wa,Iq);_.Ob=function(){this.a.e="rejected";Eq(this.a.c);var a=this.a.a;a.b||Eq(a);a.f=null};E(316);function Jq(a){new Kq(this);new Lq(this);this.a=a}y(84,1,{84:1},Jq);_.tS=function(){return"Promise this\x3d"+Wd(this)+" "+this.a};E(84);function Kq(a){this.a=a;jm.call(this)}y(313,5,Wa,Kq);_.Ob=function(){var a=this.a.a;a.e==wb&&Rp(a.d,this.f)};E(313);
+function Lq(a){this.a=a;jm.call(this)}y(314,5,Wa,Lq);_.Ob=function(){var a=this.a.a;a.e==wb&&Rp(a.c,this.f)};E(314);function Mq(a,b,d){if(0==b){var e=a.b;e.e==wb&&Rp(e.d,d)}1==b&&(e=a.b,e.e==wb&&Rp(e.c,d));2==b&&(a=a.b,a.e==wb&&Rp(a.a,d))}function Nq(a,b,d){jm.call(this);this.a=!1;this.d=d;this.c=b.length>this.d?b[this.d]:null;this.b=a;this.a=!1}y(124,5,Wa,Nq);
+_.Ob=function(){var a,b;b=this.f;if(this.c)if(a=hm(this.c,b).Rb(b),A(a,84))2==this.d?(b=T(G(lm,1),l,5,0,[new Oq(this)]),Cq(a.a.a,b)):(b=T(G(lm,1),l,5,0,[new Pq(this,a)]),Cq(a.a.d,b),Cq(a.a.c,b));else{var d=(em(),fm);a=A(a,56)&&a.a==d.a?b:(null!=a&&Od(a),a);Mq(this,this.d,T(G(I,1),l,1,3,[a]))}else Mq(this,this.d,b)};_.a=!1;_.d=0;E(124);function Oq(a){this.a=a;jm.call(this)}y(311,5,Wa,Oq);_.Ob=function(){Mq(this.a,2,this.f)};E(311);function Pq(a,b){this.a=a;this.b=b;jm.call(this)}y(312,5,Wa,Pq);
+_.Ob=function(){Mq(this.a,(0==this.a.d||1==this.a.d&&this.a.a)&&"resolved"===this.b.a.e?0:1,this.f)};E(312);function mn(){mn=x;qq=new kh;N(qq,Qq,new Rq(Qq,"mouseover"));N(qq,Sq,new Rq(Sq,xb))}
+function $p(a,b,d){var e,f,g,h,n,p,q;0!=d.length&&d[0]||yq(a,b,null);for(g=new kl(gq(b));g.b<g.d.Sc();)for(f=(P(g.b<g.d.Sc()),g.d.Me(g.c=g.b++)),q=Tq(qq,f.a),b=!q||!q.ec(a.a),n=0,p=d.length;n<p;++n){h=d[n];e=fq(f.a);if(b){var r=a,t=f.b,s=f.a,B=h,D=r,O=e,Ga=s;W();D.a.__listener=D;if(-1!=O){D.c|=O;O=void 0;if(O=6144==(D.c|6144)&&Mm(D.a))O=D.a,O=0==((Q(),O).getAttribute("tabIndex")||"").length;O&&D.a.setAttribute("tabIndex","0");Uq(D.a,D.c|(D.a.__eventBits||0))}else Vq(D.a,Ga);hn(r.b,T(vl(Wq),l,103,
+0,[new Xq(e,s,t,B)]))}q&&q.cc(a.a,f.a,f.b,null,h)}}function cq(a,b,d){var e,f,g,h,n,p,q;q=Yq((W(),d));e=X(a.a);e=0==e.c.length?null:In(pn(e,0),Za,null);f=0;for(g=qn(a.b);f<g;f++){h=fn(a.b,f);p=b?Um(b,"namespace"):null;p=(n=!!h&&(-1!=h.e&&-1!=q&&0!=(h.e&q)||null!=h.a&&me(h.a,d)))&&(null==p||!p.length||h.c===p);if(n=n&&p){a:{n=b;p=e;if(0!=h.d&&(--h.d,p=null!=p?p:te(I,l,1,0,3),h.b)){h=h.b.Qb(n,p);break a}h=!0}n=!h}n&&((Q(),b).stopPropagation(),R.qb(b))}}
+function Zq(a,b,d,e){var f,g,h;g=0;for(h=qn(a.b);g<h;g++)if(f=fn(a.b,g),(-1!=f.e&&-1!=b&&0!=(f.e&b)||null!=f.a&&me(f.a,d))&&e.eQ(f.b))return!0;return!1}
+function yq(a,b,d){var e,f,g;for(e=new kl(gq(b));e.b<e.d.Sc();){b=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++));f=Tq(qq,b.a);if(g=!f||!f.fc(a.a)){g=a;for(var h=fq(b.a),n=b.b,p=b.a,q=d,r=void 0,t=void 0,s=void 0,B=r=void 0,D=void 0,O=void 0,Ga=void 0,Ga=[],t=0;t<qn(g.b);t++){s=fn(g.b,t);O=null==n||!n.length||s.c===n;B=(r=0>=h||-1!=s.e&&-1!=h&&0!=(s.e&h))||null!=s.a&&me(s.a,p);D=!q||q.eQ(s.b);if(O&&r&&B&&D&&(r=(0>=h?s.e=0:s.e&=~h,s.e),0==r))continue;hn(Ga,T(vl(Wq),l,103,0,[s]))}g.b=Ga}f&&f.dc(a.a,b.a,b.b,d)}}
+function $q(a){this.b=[];this.a=a;a.__gwtlistener=(W(),Kn(a));a.__gqueryevent=this;a.__gwtlistener==this&&(a.__gwtlistener=null)}function Ln(a){mn();return a.__gwtlistener}function aq(a){mn();var b;return(b=a.__gqueryevent)?b:new $q(a)}function Vq(a,b){!a.__gquery&&(a.__gquery=[]);if(!a.__gquery[b]){a.__gquery[b]=!0;var d=function(b){a.__gqueryevent.gc(b)};a.addEventListener?a.addEventListener(b,d,!0):a.attachEvent("on"+b,d)}}y(136,1,{136:1,21:1},$q);
+_.gc=function(a){var b;if(!(a.defaultPrevented||!1===a.returnValue||a.getPreventDefault&&a.getPreventDefault())){b=Fe();var d;if(d=le(this.e,(Q(),a).type)&&10>b-this.d)d=this.a,d=(Q(),d).tagName,d=me("body",d);d||(this.d=b,this.e=a.type,Ln(this.a)&&Ln(this.a)!=this&&Ln(this.a).gc(a),cq(this,a,a.type))}};_.c=0;_.d=0;_.e="";var Qq="mouseenter",Sq="mouseleave",qq;E(136);function Xq(a,b,d,e){this.d=-1;this.a=b;this.e=a;this.b=e;this.c=null!=d?d:""}y(103,1,{103:1},Xq);
+_.tS=function(){return"bind function for event type "+(null!=this.a?this.a:""+this.e)};_.d=0;_.e=0;var Wq=E(103);function ar(a,b){this.b=a;this.a=b}function gq(a){var b,d,e,f,g;g=new Ie;f=se(a,"[\\s,]+",0);a=0;for(d=f.length;a<d;++a)b=f[a],e=se(b,"\\.",2),b=e[0],e=1<e.length?e[1]:null,Le(g,new ar(e,b));return g}y(466,1,{},ar);E(466);y(410,1,{});_.cc=tq;_.dc=uq;_.ec=function(a){Zq(aq(a),fq(this.c),this.c,this.b)||$p(aq(a),this.a,T(G(lm,1),l,5,0,[this.b]));return!1};
+_.fc=function(a){Zq(aq(a),fq(this.c),this.c,this.b)||yq(aq(a),this.a,this.b);return!1};E(410);function Rq(a,b){this.b=new br(this);this.c=a;this.a=b;this.b=new cr(a)}y(186,410,{},Rq);E(186);function cr(a){this.a=a;jm.call(this)}y(467,5,Wa,cr);_.Qb=function(a){var b,d;b=(b=(Q(),R).nb(a))?b:null;d=(d=R.ob(a))?d:null;var e;(e=d)&&!(e=d==b)&&(nm(),e=(!$m&&($m=new an),b),e=e.contains?e!=d&&e.contains(d):!!(e.compareDocumentPosition(d)&16));e||cq(aq(b),a,this.a);return!0};E(467);
+function br(a){this.a=a;jm.call(this)}y(411,5,Wa,br);_.Qb=function(a){im(this,a);cq(aq(this.g),a,this.a.c);return!0};E(411);function dr(){dr=x;vm();er=new kh;fr=new kh;gr=Mn(hr,new ir)}function jr(a){dr();iq.call(this,a)}
+function kr(a,b){function d(b){var d,g,h,n,p=eo,q={};Tm(q,(H(),bb),b);b=(!mm&&(mm=new Wn),Yn(p));Xn(b,q);if(A(a,5))a.Rb(T(vl(I),l,1,3,[(d=Cp(b.a),g=d?d.length:0,new Em(Vn(d,te(go,l,650,g,0),go)))]));else if(A(a,123)){d=(h=Cp(b.a),n=h?h.length:0,new Em(Vn(h,te(io,l,651,n,0),io)));n=h=!1;for(g=new kl(d);g.b<g.d.Sc();){d=(P(g.b<g.d.Sc()),g.d.Me(g.c=g.b++));q=X(Dp(d.a,(H(),"removedNodes")));b=X(Dp(d.a,(H(),"addedNodes")));var r=vn(q,Po(q.d,b.d,!0),rn(",",T(G(z,1),l,2,4,[q.b,b.b]))),q=null,t=void 0,s=
+p=b=t=void 0,B=void 0,D=void 0,O=void 0;!q&&(q=r.a);D=xm.test(Ya)?Cm(Ya,q):null;O=Fm(null);b=r.c;p=0;for(s=b.length;p<s;++p)for(t=b[p];t&&t.ownerDocument&&t!=q;){if(D){a:{for(var Ga=B=r=void 0,sb=void 0,Ha=void 0,Ha=0,B=D.c,Ga=0,sb=B.length;Ga<sb;++Ga){r=B[Ga];if(r==t){r=Ha;break a}++Ha}r=-1}r=-1<r}else r=0!=kn(X(t),T(G(z,1),l,2,4,[Ya])).c.length;if(B=r){hn(O,T(G(Ud,1),l,0,2,[t]));break}else t=ii((Q(),t))}q=X(jn(O));n||0==kn(q,T(G(z,1),l,2,4,["thead,tfoot"])).c.length&&null==wi(d.a,(H(),"attributeName"))||
+(n=!0);!h&&0!=kn(q,T(G(z,1),l,2,4,["tbody"])).c.length&&(h=!0)}if(n||!h)lr(a),mr(a.j.g,!0);h&&a.j.refresh()}}return b?new $wnd.MutationObserver(d):d}y(307,164,ab,jr);var gr,er,fr,hr=E(307);function ir(){}y(308,1,{},ir);_.bc=function(a){return new jr(a)};E(308);var eo=ke(),go=ke(),io=ke(),ko=ke(),mo=ke();function ho(){this.a={}}y(581,69,{79:1,71:1,650:1},ho);E(581);function fo(){this.a={}}y(580,69,cb,fo);E(580);function jo(){this.a={}}y(582,69,{79:1,71:1,651:1},jo);E(582);function lo(){this.a={}}
+y(583,69,cb,lo);E(583);function no(){this.a={}}y(584,69,cb,no);E(584);
+function nr(a,b){if(a&&!a.Z)if(b)if(A(b,198))b.Gc(a);else if(A(b,40))try{b.Ac(a)}catch(d){if(d=Ph(d),A(d,24))a.yc(b);else throw Qh(d);}else a.yc(b);else{a:{var e,f,g;f=hi((W(),a.$));for(e=$doc.body;f&&e!=f;){if(Kn(f)){b:{g=0;for(var h=void 0,n=void 0,p=void 0,q=void 0,h=void 0,n=X(f).c,p=0,q=n.length;p<q;++p)if(h=n[p],h=km(h)){if(0==g){g=h;break b}--g}g=null}if(g){b=g;break a}}f=ii((Q(),f))}b=null}b?nr(a,b):(Sk(),il(Uk,a),a.uc())}}function or(a){if(null==a)throw new ai("uri is null");this.a=a}
+y(108,1,{108:1},or);_.eQ=function(a){return A(a,108)?this.a===a.a:!1};_.hC=function(){return Vd(this.a)};E(108);function pr(){pr=x}function qr(a,b){this.a=a;this.b=b}y(139,1,{139:1},qr);_.eQ=function(a){return A(a,139)?this.a==a.a&&this.b==a.b:!1};_.hC=function(){return C(this.a)^C(this.b)};_.tS=function(){return"Point("+this.a+","+this.b+")"};_.a=0;_.b=0;E(139);function W(){W=x;rr=qd()}function sr(a){W();return Ki(a)}function tr(a,b,d){W();b==ur&&8192==Yq((Q(),a).type)&&(ur=null);d.gc(a)}
+function vr(a){W();var b;var d=wr,e,f,g;xr&&d&&yr(d.a.d,xr)?(b=zr.a,e=zr.b,f=zr.c,g=zr.d,Ar(zr),zr.d=a,Rk(d,zr),d=!(zr.a&&!zr.b),zr.a=b,zr.b=e,zr.c=f,zr.d=g,b=d):b=!0;!b&&a&&((Q(),a).stopPropagation(),R.qb(a));return b}function Br(a){W();return a.__gwt_resolve?a.__gwt_resolve():a}function Uq(a,b){W();rr.mc(a,b)}var rr,ur;function Cr(a){return W(),Yq((Q(),a).type)}function Dr(a){W();Er(rr);!xr&&(xr=new Gk);wr||(wr=new nl(null,!0),zr=new Fr);return bl(wr,xr,a)}function fq(a){return Yq((W(),a))}var wr;
+function Ar(a){a.f=!1;a.g=null;a.a=!1;a.b=!1;a.c=!0;a.d=null}function Fr(){}y(269,620,{},Fr);_.Bb=function(a){a.hc(this);zr.c=!1};_.Cb=function(){return xr};_.Eb=function(){Ar(this)};_.a=!1;_.b=!1;_.c=!1;var xr,zr;E(269);function Gr(){Gr=x;Hr=md()}function Ir(){Gr();Jr&&Nk()}function Kr(){Gr();var a;Jr&&(a=new Lr,Ok&&Rk(Ok,a));return null}var Jr=!1,Ok,Hr;function Mr(){Mr=x;Nr=new Gk}function Lr(){Mr()}y(376,620,{},Lr);_.Bb=Or;_.Cb=function(){return Nr};var Nr;E(376);
+function Pk(){nl.call(this,null,!1)}y(175,51,{25:1},Pk);E(175);
+function Yq(a){switch(a){case "blur":return 4096;case "change":return 1024;case Ja:return 1;case yb:return 2;case "focus":return 2048;case Ka:return 128;case zb:return 256;case Ab:return 512;case "load":return 32768;case "losecapture":return 8192;case Bb:return 4;case "mousemove":return 64;case xb:return 32;case "mouseover":return 16;case "mouseup":return 8;case Cb:return 16384;case db:return da;case Db:case Eb:return Fb;case "contextmenu":return 262144;case "paste":return Oa;case Gb:return Hb;case Ib:return Jb;
+case Kb:return Pa;case Lb:return Mb;case "gesturestart":return Nb;case "gesturechange":return Ob;case "gestureend":return Pb;default:return-1}}function Er(a){Pr||(a.ic(),Pr=!0)}function Kn(a){a=a.__listener;return!be(a)&&A(a,21)?a:null}y(639,1,{});var Pr=!1;E(639);
+function Qr(){Qr=x;Rr={_default_:Sr,dragenter:Tr,dragover:Tr};Ur={click:Vr,dblclick:Vr,mousedown:Vr,mouseup:Vr,mousemove:Vr,mouseover:Vr,mouseout:Vr,mousewheel:Vr,keydown:Wr,keyup:Wr,keypress:Wr,touchstart:Vr,touchend:Vr,touchmove:Vr,touchcancel:Vr,gesturestart:Vr,gestureend:Vr,gesturechange:Vr}}function Xr(){Yr=Ee(Sr);Zr=Ee($r);var a=Rr;as(a,function(b,e){a[b]=Ee(e)});var b=Ur;as(b,function(a,e){b[a]=Ee(e)});as(b,function(a,b){$wnd.addEventListener(a,b,!0)})}
+function bs(a,b){var d=Rr;a.addEventListener(b,d[b]||d._default_,!1)}
+function cs(a,b){var d=(a.__eventBits||0)^b;a.__eventBits=b;d&&(d&1&&(a.onclick=b&1?Yr:null),d&2&&(a.ondblclick=b&2?Yr:null),d&4&&(a.onmousedown=b&4?Yr:null),d&8&&(a.onmouseup=b&8?Yr:null),d&16&&(a.onmouseover=b&16?Yr:null),d&32&&(a.onmouseout=b&32?Yr:null),d&64&&(a.onmousemove=b&64?Yr:null),d&128&&(a.onkeydown=b&128?Yr:null),d&256&&(a.onkeypress=b&256?Yr:null),d&512&&(a.onkeyup=b&512?Yr:null),d&1024&&(a.onchange=b&1024?Yr:null),d&2048&&(a.onfocus=b&2048?Yr:null),d&4096&&(a.onblur=b&4096?Yr:null),
+d&8192&&(a.onlosecapture=b&8192?Yr:null),d&16384&&(a.onscroll=b&16384?Yr:null),d&32768&&(a.onload=b&32768?Zr:null),d&da&&(a.onerror=b&da?Yr:null),d&Fb&&(a.onmousewheel=b&Fb?Yr:null),d&262144&&(a.oncontextmenu=b&262144?Yr:null),d&Oa&&(a.onpaste=b&Oa?Yr:null),d&Hb&&(a.ontouchstart=b&Hb?Yr:null),d&Jb&&(a.ontouchmove=b&Jb?Yr:null),d&Pa&&(a.ontouchend=b&Pa?Yr:null),d&Mb&&(a.ontouchcancel=b&Mb?Yr:null),d&Nb&&(a.ongesturestart=b&Nb?Yr:null),d&Ob&&(a.ongesturechange=b&Ob?Yr:null),d&Pb&&(a.ongestureend=b&
+Pb?Yr:null))}function Wr(a){vr(a)}function Vr(a){Qr();if(vr(a)&&ds){var b;b=ds;W();var d;(d=Kn(b))?(tr(a,b,d),b=!0):b=!1;b&&(Q(),a).stopPropagation()}}function Tr(a){(Q(),R).qb(a);Sr(a)}function Sr(a){var b;for(b=(Q(),R).nb(a);b&&!Kn(b);)b=b.parentNode;b&&tr(a,1!=b.nodeType?null:b,Kn(b))}function $r(a){(Q(),R).nb(a).__gwtLastUnhandledEvent=a.type;Sr(a)}y(640,639,{});_.ic=function(){Xr()};_.jc=function(a){Er(this);ds==a&&(ds=null)};_.kc=function(a){Er(this);ds=a};
+_.lc=function(a,b){Er(this);this.nc(a,b)};_.nc=function(a,b){bs(a,b)};_.mc=function(a,b){Er(this);cs(a,b)};var Rr,ds,Ur,Yr,Zr;E(640);y(641,640,{});E(641);function rd(){Qr()}y(463,641,{},rd);_.nc=function(a,b){bs(a,b);"dragover"===b&&bs(a,"dragenter")};E(463);function es(){es=x;Qr();Ur[Db]=Vr}
+function fs(){$wnd.addEventListener(xb,Ee(function(a){var b=(Qr(),ds);if(b&&!a.relatedTarget&&mb==a.target.tagName.toLowerCase()){var d=$doc.createEvent("MouseEvents");d.initMouseEvent("mouseup",!0,!0,$wnd,0,a.screenX,a.screenY,a.clientX,a.clientY,a.ctrlKey,a.altKey,a.shiftKey,a.metaKey,a.button,null);b.dispatchEvent(d)}}),!0)}function td(){es()}y(464,640,{},td);_.ic=function(){Xr();fs()};_.mc=function(a,b){Er(this);cs(a,b);b&Fb&&a.addEventListener(Db,(Qr(),Yr),!1)};E(464);function sd(){Qr()}
+y(465,641,{},sd);E(465);function as(a,b){for(var d in a)a.hasOwnProperty(d)&&b(d,a[d])}function od(){}y(600,1,{},od);_.oc=function(){var a=$wnd.onbeforeunload,b=$wnd.onunload;$wnd.onbeforeunload=function(b){var e;try{e=Ee(Kr)()}finally{b=a&&a(b)}if(null!=e)return e;if(null!=b)return b};$wnd.onunload=Ee(function(a){try{Gr(),Jr&&Nk()}finally{b&&b(a),$wnd.onresize=null,$wnd.onscroll=null,$wnd.onbeforeunload=null,$wnd.onunload=null}})};E(600);function nd(){}y(601,600,{},nd);
+_.oc=function(){var a;a=$doc;a=(Q(),R).kb(a,'function __gwt_initWindowCloseHandler(beforeunload, unload) {\n var wnd \x3d window\n , oldOnBeforeUnload \x3d wnd.onbeforeunload\n , oldOnUnload \x3d wnd.onunload;\n \n wnd.onbeforeunload \x3d function(evt) {\n var ret, oldRet;\n try {\n ret \x3d beforeunload();\n } finally {\n oldRet \x3d oldOnBeforeUnload \x26\x26 oldOnBeforeUnload(evt);\n }\n // Avoid returning null as IE6 will coerce it into a string.\n // Ensure that "" gets returned properly.\n if (ret !\x3d null) {\n return ret;\n }\n if (oldRet !\x3d null) {\n return oldRet;\n }\n // returns undefined.\n };\n \n wnd.onunload \x3d function(evt) {\n try {\n unload();\n } finally {\n oldOnUnload \x26\x26 oldOnUnload(evt);\n wnd.onresize \x3d null;\n wnd.onscroll \x3d null;\n wnd.onbeforeunload \x3d null;\n wnd.onunload \x3d null;\n }\n };\n \n // Remove the reference once we\'ve initialize the handler\n wnd.__gwt_initWindowCloseHandler \x3d undefined;\n}\n');
+$doc.body.appendChild(a);$wnd.__gwt_initWindowCloseHandler(Ee(Kr),Ee(Ir));$doc.body.removeChild(a)};E(601);function pd(){}y(602,600,{},pd);E(602);function gs(){gs=x}function Hm(a){return W(),a.$}function hs(a){gs();var b;a=a.className||"";b=ne(a,ze(32));return 0<=b?ve(a,0,b):a}function is(a,b,d){gs();if(!a)throw new sh(Qb);b=xe(b);if(0==b.length)throw new J(Rb);d?mi(a,b):zi(a,b)}
+function js(a,b){gs();if(!a)throw new sh(Qb);b=xe(b);if(0==b.length)throw new J(Rb);var d=b,e=(a.className||"").split(/\s+/);if(e){var f=e[0],g=f.length;e[0]=d;for(var h=1,n=e.length;h<n;h++){var p=e[h];p.length>g&&"-"==p.charAt(g)&&0==p.indexOf(f)&&(e[h]=d+p.substring(g))}a.className=e.join(" ")}}y(22,1,{27:1,22:1});_.pc=ks;_.tS=function(){var a;this.$?(a=(W(),this.$),a=(Q(),R).zb(a)):a="(null handle)";return a};E(22);
+function ls(a,b,d){var e;e=fq(d.b);if(-1==e){e=d.b;var f=(W(),a.$);W();rr.lc(f,e)}else a.zc(e);bl(a.Y?a.Y:a.Y=new ml(a),d,b)}function ms(a,b,d){return bl(a.Y?a.Y:a.Y=new ml(a),d,b)}function Zk(a,b){a.Y&&Rk(a.Y,b)}function ns(a){var b;if(a.tc())throw new Z("Should only call onAttach when the widget is detached from the browser's document");a.W=!0;W();a.$.__listener=a;b=a.X;a.X=-1;0<b&&a.zc(b);a.rc();a.wc()}
+function os(a,b){var d;switch(W(),Yq((Q(),b).type)){case 16:case 32:if((d=R.ob(b))&&ji(a.$,d))return}d=a.$;var e,f,g,h;if(vk&&(e=(Q(),b).type,e=vk.a[e]))for(h=e.Bc();h.Hc();)g=h.Ic(),e=g.a.d,f=g.a.e,g.a.d=b,g.a.e=d,Zk(a,g.a),g.a.d=e,g.a.e=f}function zn(a){if(!a.Z){if(Sk(),ps(Uk,a)){Sk();try{a.vc()}finally{Uk.a.Ge(a)}}}else if(A(a.Z,40))a.Z.Cc(a);else if(a.Z)throw new Z("This widget's parent does not implement HasWidgets");}
+function qs(a,b){var d;d=a.Z;if(b){if(d)throw new Z("Cannot set a new parent without first clearing the old parent");a.Z=b;b.tc()&&a.uc()}else try{d&&d.tc()&&a.vc()}finally{a.Z=null}}y(18,22,Sb);_.qc=function(){return this};_.rc=rs;_.sc=rs;_.tc=function(){return this.W};_.uc=function(){ns(this)};_.gc=function(a){os(this,a)};_.vc=ss;_.wc=rs;_.xc=rs;_.yc=function(a){qs(this,a)};_.zc=function(a){-1==this.X?Uq((W(),this.$),a|(this.$.__eventBits||0)):this.X|=a};_.W=!1;_.X=0;var ts=E(18);y(616,18,Tb);
+_.Ac=function(){throw new us("This panel does not support no-arg add()");};_.rc=function(){Tk(this,(vs(),ws))};_.sc=function(){Tk(this,(vs(),xs))};E(616);function ys(a,b,d){zn(b);var e=a.b,f=e.c,g,h;if(0>f||f>e.c)throw new zs;if(e.c==e.a.length){h=te(ts,l,18,2*e.a.length,0);for(g=0;g<e.a.length;++g)h[g]=e.a[g];e.a=h}++e.c;for(g=e.c-1;g>f;--g)e.a[g]=e.a[g-1];e.a[f]=b;W();e=Br(b.$);d.appendChild(e);qs(b,a)}
+function As(a,b){var d;if(b.Z!=a)return!1;try{qs(b,null)}finally{d=(W(),b.$);ii((Q(),d)).removeChild(d);d=a.b;var e;a:{for(e=0;e<d.c;++e)if(d.a[e]==b)break a;e=-1}if(-1==e)throw new Vh;if(0>e||e>=d.c)throw new zs;for(--d.c;e<d.c;++e)d.a[e]=d.a[e+1];d.a[d.c]=null}return!0}y(160,616,Tb);_.Bc=function(){return new Bs(this.b)};_.Cc=function(a){return As(this,a)};E(160);y(400,160,Tb);_.Ac=function(a){ys(this,a,(W(),this.$))};
+_.Cc=function(a){var b;if(b=As(this,a))a=(W(),a.$),a.style[Ub]="",a.style.top="",a.style[za]="";return b};E(400);function vs(){vs=x;ws=new Cs;xs=new Ds}function Es(a){jl.call(this,a)}function Tk(a,b){vs();var d,e,f;d=null;for(f=a.Bc();f.Hc();){e=f.Ic();try{b.Dc(e)}catch(g){if(g=Ph(g),A(g,15))e=g,!d&&(d=new hl),il(d,e);else throw Qh(g);}}if(d)throw new Es(d);}y(265,162,La,Es);var ws,xs;E(265);function Cs(){}y(266,1,{},Cs);_.Dc=function(a){a.uc()};E(266);function Ds(){}y(267,1,{},Ds);_.Dc=function(a){a.vc()};
+E(267);function Fs(){Fs=x;gs();Gs()}function Hs(a,b){(W(),a.$)[Vb]=!b}y(319,18,Sb);_.Ec=function(){return yi((W(),this.$))};_.uc=function(){ns(this);-1==this.Ec()&&this.Fc(0)};_.Fc=function(a){(W(),this.$).tabIndex=a};E(319);function Is(a){a=(W(),a.$);return(Q(),R).tb(a)}function Js(a,b){Ai((W(),a.$),b)}y(166,319,Sb);E(166);function Ks(){Fs();var a;a=$doc;a=(Q(),R).ib(a,ha);this.$=(W(),a);pi((W(),this.$),"gwt-Button")}y(135,166,Sb,Ks);E(135);
+function Ls(a){return a.W?(em(),a.a.checked?fm:Bp):(em(),a.a.defaultChecked?fm:Bp)}function Ms(a,b){!b&&(b=(em(),Bp));em();a.a.checked=b.a;a.a.defaultChecked=b.a}
+function Ns(){Fs();var a=(W(),Ii());W();var b=$doc,b=(Q(),b).createElement("span");this.$=(W(),b);this.a=a;a=$doc;this.b=(Q(),a).createElement("label");this.$.appendChild(this.a);this.$.appendChild(this.b);a=$doc;!a.gwt_uid&&(a.gwt_uid=1);a="gwt-uid-"+a.gwt_uid++;this.a.id=a;this.b.htmlFor=a;new Os(this.b);this.a&&(this.a.tabIndex=0);pi(this.$,"gwt-CheckBox")}y(95,166,{29:1,25:1,21:1,95:1,27:1,26:1,22:1,18:1},Ns);_.Ec=function(){return yi(this.a)};_.wc=function(){W();this.a.__listener=this};
+_.xc=function(){W();this.a.__listener=null;Ms(this,this.W?(em(),this.a.checked?fm:Bp):(em(),this.a.defaultChecked?fm:Bp))};_.Fc=function(a){this.a&&(this.a.tabIndex=a)};_.zc=function(a){-1==this.X?Uq(this.a,a|(W(),this.a.__eventBits||0)):-1==this.X?Uq((W(),this.$),a|(this.$.__eventBits||0)):this.X|=a};_.c=!1;E(95);function Ps(a){this.a=a}y(320,1,{},Ps);_.Gb=function(){var a=this.a,b=Ls(this.a);al&&(b=new Yk(b),a.Y&&Rk(a.Y,b))};E(320);
+function Qs(a,b){var d;if(a.V)throw new Z("Composite.initWidget() may only be called once.");if(!b)throw new ai("widget cannot be null");zn(b);d=(W(),b.$);a.$=d;Rs();var e;W();try{e=!!d&&!!d.__gwt_resolve}catch(f){e=!1}e&&(Rs(),d.__gwt_resolve=Ss(a));a.V=b;qs(b,a)}function Ts(a){if(!a.V)throw new Z("initWidget() is not called yet");-1!=a.X&&(a.V.zc(a.X),a.X=-1);a.V.uc();W();a.$.__listener=a;a.rc()}y(617,18,Wb);_.tc=function(){return this.V?this.V.tc():!1};_.uc=function(){Ts(this)};
+_.gc=function(a){os(this,a);this.V.gc(a)};_.vc=function(){try{this.sc()}finally{this.V.vc()}};_.pc=function(){return this.$=(W(),this.V.pc())};E(617);function Os(a){a=wi(a,"dir");me("rtl",a)||me("ltr",a)}y(574,1,{},Os);E(574);function Us(){this.b=new Vs(this);this.$=(W(),Ki("div"))}y(118,160,Tb,Us);_.Ac=function(a){ys(this,a,(W(),this.$))};E(118);function Ws(a,b){if(a.a!=b)return!1;try{qs(b,null)}finally{(W(),a.$).removeChild(b.$),a.a=null}return!0}
+function Xs(a,b){if(b!=a.a&&(b&&zn(b),a.a&&Ws(a,a.a),a.a=b)){W();var d=Br(Hm(a.a));a.$.appendChild(d);qs(b,a)}}y(153,616,Xb);_.Ac=function(a){if(this.a)throw new Z("SimplePanel can only contain one child widget");Xs(this,a)};_.Bc=function(){return new Ys(this)};_.Cc=function(a){return Ws(this,a)};_.Gc=function(a){Xs(this,a)};E(153);function Zs(){Zs=x;gs();$s=(Gs(),Gs(),at)}var $s;
+function bt(a,b){var d;a:for(d=(W(),Q(),a),d=new kl(d.b);d.b<d.d.Sc();)if(P(d.b<d.d.Sc()),d.d.Me(d.c=d.b++),(W(),null.qf).pf())break a;switch(Yq(b.type)){case 1:(Zs(),$s).Lc(a.$);break;case 2048:ct(a);break;case 128:switch(d=b.keyCode|0,d){case 37:ct(a);b.stopPropagation();R.qb(b);break;case 39:ct(a);b.stopPropagation();R.qb(b);break;case 38:ct(a);b.stopPropagation();R.qb(b);break;case 40:ct(a);b.stopPropagation();R.qb(b);break;case 27:b.stopPropagation();R.qb(b);break;case 13:ct(a)||(b.stopPropagation(),
+R.qb(b))}}os(a,b)}function ct(a){for(a=new kl(a.b);a.b<a.d.Sc()&&(P(a.b<a.d.Sc()),a.d.Me(a.c=a.b++),!null.qf););return!0}y(161,18,Sb);_.gc=function(a){bt(this,a)};_.vc=ss;E(161);function dt(){}y(268,1,{},dt);E(268);function et(){et=x;pr();new or("data:image/gif;base64,R0lGODlhBQAJAIAAAAAAAAAAACH5BAEAAAEALAAAAAAFAAkAAAIMRB5gp9v2YlJsJRQKADs\x3d")}function Rs(){Rs=x;ft()}function Ss(a){return function(){this.__gwt_resolve=gt;return a.pc()}}
+function gt(){throw"A PotentialElement cannot be resolved twice.";}function ft(){function a(){}a.prototype={className:"",clientHeight:0,clientWidth:0,dir:"",getAttribute:function(a){return this[a]},href:"",id:"",lang:"",nodeType:1,removeAttribute:function(a){this[a]=void 0},setAttribute:function(a,d){this[a]=d},src:"",style:{},title:""};$wnd.GwtPotentialElementShim=a}y(618,617,Wb);E(618);function Sk(){Sk=x;gs();Vk=new ht;Xk=new kh;Uk=new hl}function it(){Sk();return $doc.body}y(401,400,Tb);
+var Vk,Xk,Uk;E(401);function ht(){}y(403,1,{},ht);_.Dc=function(a){a.tc()&&a.vc()};E(403);function jt(){}y(404,1,{},jt);E(404);function kt(){var a=it();gs();this.b=new Vs(this);this.$=(W(),a);ns(this)}y(402,401,Tb,kt);E(402);function Ys(a){this.c=a;this.a=!!this.c.a}y(215,1,{},Ys);_.Hc=$n;_.Ic=function(){if(!this.a||!this.c.a)throw new Vh;this.a=!1;return this.b=this.c.a};_.Jc=function(){this.b&&Ws(this.c,this.b)};_.a=!1;_.b=null;E(215);y(216,1,{},function(){});E(216);
+function Vs(a){this.b=a;this.a=te(ts,l,18,4,0)}y(485,1,{},Vs);_.Bc=function(){return new Bs(this)};_.c=0;E(485);function Bs(a){this.c=a}y(189,1,{},Bs);_.Hc=function(){return this.b<this.c.c};_.Ic=function(){if(this.b>=this.c.c)throw new Vh;this.a=this.c.a[this.b];++this.b;return this.a};_.Jc=function(){if(!this.a)throw new di;this.c.b.Cc(this.a);--this.b;this.a=null};_.b=0;E(189);
+function lt(){var a,b;lt=x;pr();new or((b="__gwtDevModeHook:"+$moduleName+":moduleBase",a=$wnd||self,a[b]||$moduleBase)+"clear.cache.gif")}function mt(){mt=x;lt()}function Gs(){Gs=x;at=id();A(at,107)&&new jd}function jd(){Gs()}y(196,1,{},jd);_.Kc=function(){var a;a=Ji();a.tabIndex=0;return a};_.Lc=function(a){a.focus()};var at;E(196);function nt(){return function(){var a=this.parentNode;a.onfocus&&$wnd.setTimeout(function(){a.focus()},0)}}function ld(){Gs()}y(107,196,{107:1},ld);
+_.Kc=function(){var a=ot?ot:ot=nt(),b=$doc.createElement("div");b.tabIndex=0;var d=$doc.createElement("input");d.type="text";d.tabIndex=-1;d.setAttribute("role",ra);var e=d.style;e.opacity=0;e.height="1px";e.width="1px";e.zIndex=-1;e.overflow=lb;e.position=Aa;d.addEventListener("focus",a,!1);b.appendChild(d);return b};var ot;E(107);function kd(){Gs()}y(587,107,{107:1},kd);_.Lc=function(a){$wnd.setTimeout(function(){a.focus()},0)};E(587);y(597,1,{},function(){});E(597);
+function pt(){pt=x;navigator.userAgent.indexOf("Macintosh")}y(603,597,{},function(){pt()});E(603);function qt(){var a,b;b=ed();a=b.Mc();b=b.Nc();if(a!==b)throw new rt(a,b);}y(111,15,va);E(111);y(33,111,va);E(33);function rt(a,b){var d=(H(),""+(Yb+a+") "+Zb+b+").\n"+$b));this.e=A(Yb+a+") "+Zb+b+").\n"+$b,15)?Yb+a+") "+Zb+b+").\n"+$b:null;this.f=d;lh(this)}y(200,33,va,rt);E(200);function hd(){}y(493,1,{},hd);_.Mc=function(){return"gecko1_8"};
+_.Nc=function(){var a=navigator.userAgent.toLowerCase(),b=$doc.documentMode;return-1!=a.indexOf(vb)?ac:-1!=a.indexOf(bc)&&10<=b&&11>b?"ie10":-1!=a.indexOf(bc)&&9<=b&&11>b?"ie9":-1!=a.indexOf(bc)&&8<=b&&11>b?"ie8":-1!=a.indexOf(cc)||11<=b?"gecko1_8":"unknown"};E(493);function fd(){}y(491,1,{},fd);_.Mc=function(){return"ie10"};
+_.Nc=function(){var a=navigator.userAgent.toLowerCase(),b=$doc.documentMode;return-1!=a.indexOf(vb)?ac:-1!=a.indexOf(bc)&&10<=b&&11>b?"ie10":-1!=a.indexOf(bc)&&9<=b&&11>b?"ie9":-1!=a.indexOf(bc)&&8<=b&&11>b?"ie8":-1!=a.indexOf(cc)||11<=b?"gecko1_8":"unknown"};E(491);function gd(){}y(492,1,{},gd);_.Mc=function(){return ac};
+_.Nc=function(){var a=navigator.userAgent.toLowerCase(),b=$doc.documentMode;return-1!=a.indexOf(vb)?ac:-1!=a.indexOf(bc)&&10<=b&&11>b?"ie10":-1!=a.indexOf(bc)&&9<=b&&11>b?"ie9":-1!=a.indexOf(bc)&&8<=b&&11>b?"ie8":-1!=a.indexOf(cc)||11<=b?"gecko1_8":"unknown"};E(492);function st(a){var b=a.a,d=a.d,e=a.c;a=a.b;0<b.b?(d=new tt(b,d,e,a),!b.a&&(b.a=new Ie),Le(b.a,d)):rl(b,d,e,a)}function fl(a,b,d){this.a=a;this.d=b;this.c=null;this.b=d}y(379,1,{},fl);E(379);
+function cl(a,b,d){this.a=a;this.d=b;this.c=null;this.b=d}y(380,1,{},cl);_.hb=function(){dl(this.a,this.d,this.c,this.b)};E(380);function tt(a,b,d,e){this.a=a;this.d=b;this.c=d;this.b=e}y(381,1,{},tt);_.hb=function(){rl(this.a,this.d,this.c,this.b)};E(381);
+function ut(){ut=x;var a;a=(!vt&&(vt=new wt),vt);var b,d,e,f;null==xt&&(b=f=e=d="",a.a.d?(d="ff",e="ff"+a.a.a,f=e+a.a.b,b=cc):a.a.c?(d="sa",e="ch",b=vb):a.a.n?(d="sa",e="sa"+a.a.a,f=e+a.a.b,b=vb):a.a.f?(d="ie",e="ie"+a.a.a,f=e+a.a.b,b="trident"):a.a.j&&(d="op",e="op"+a.a.a,f=e+a.a.b,b="presto"),xt="v-"+d,""===e||(xt=xt+" v-"+e),""===f||(xt=xt+" v-"+f),""===b||(xt=xt+" v-"+b),b=5==a.a.q?"v-android":4==a.a.q?"v-ios v-ios"+a.a.r:1==a.a.q?"v-win":3==a.a.q?"v-lin":2==a.a.q?"v-mac":null,null!=b&&(xt=xt+
+" "+b),a.b&&(xt+=" v-touch"));a=xt;Sk();Sk();b=pl(Xk,null);b||(0==Xk.e&&(b=new jt,Gr(),Jr||(Hr.oc(),Jr=!0),d=Qk?Qk:Qk=new Gk,bl((!Ok&&(Ok=new Pk),Ok),d,b)),b=new kt,ql(Xk,null,b),il(Uk,b));is((W(),b.$),a,!0)}function yt(a){return a.a.f&&8==a.a.a}function zt(){var a=(!vt&&(vt=new wt),vt);return a.a.f&&9==a.a.a}
+function wt(){ut();var a;this.a=new At(Bt());if(this.a.f&&(a=(a=$wnd.document.documentMode)?a:-1,-1!=a)){var b=this.a;b.a=a;b.b=0}if(this.a.c)this.b="ontouchstart"in window;else if(this.a.f)this.b=!!navigator.msMaxTouchPoints;else{if(a=!this.a.k)try{document.createEvent("TouchEvent"),a=!0}catch(d){a=!1}this.b=a}}function Bt(){ut();return $wnd.navigator.userAgent}y(58,1,{},wt);_.b=!1;var xt=null,vt;E(58);function Ct(a,b){++a.a;a.b=Mh(a.b,[b,!1]);Hh(a);a.b=Mh(a.b,[new Dt(a),!1]);Hh(a)}
+function Gh(){this.a=0}y(472,425,{},Gh);_.a=0;E(472);function Dt(a){this.a=a}y(473,1,{},Dt);_.hb=function(){--this.a.a};E(473);function Et(){Et=x;W();Ji()}function Ft(a){Et();return a.getBoundingClientRect()}function Gt(){Et();var a;0>Ht&&(a=(W(),Ji()),a.style[v]="50px",a.style[u]="50px",a.style.overflow=Cb,a.style[za]=Aa,a.style.marginLeft="-5000px",it().appendChild(a),Ht=((a.offsetWidth||0)|0)-(parseInt(a[hb])|0),it().removeChild(a));return Ht}
+function It(a){Et();null!=a.getBoundingClientRect?(a=a.getBoundingClientRect(),a=a.bottom-a.top):a=a.offsetHeight;return a}function Jt(a){Et();return a.getBoundingClientRect?(a=a.getBoundingClientRect(),a.right-a.left):a.offsetWidth}function Kt(a){Et();-1!=(Q(),a).type.indexOf("touch")?(a=a.changedTouches[0],a=Ei((Q(),a).clientX||0)):a=Ei(a.clientX||0);return a}function Lt(a){Et();-1!=(Q(),a).type.indexOf("touch")?(a=a.changedTouches[0],a=Ei((Q(),a).clientY||0)):a=Ei(a.clientY||0);return a}
+function Mt(a,b){Et();return 0.49>=(0>=a-b?0-(a-b):a-b)}var Ht=-1;function Nt(a){var b;b=Ot(a.g,Pt(a));Qt(a,b[0]);a.g=b[1];Qt(a,b[2])}function Qt(a,b){var d,e;for(d=b.b;d<b.a;d++)e=sl(a.o,K(d)),sl(a.p,a.Oc(e))}function Rt(a){a.i||(a.i=!0,Ct((Eh(),Fh),a.j))}function St(a){var b;b=a.Sc();-1==b&&(b=Tt(a.s));return $(0,b)}
+function Ut(a,b){var d;d=Id(a,a.getRowKey,a.Oc).bind(a)(b);if(null==d)throw new ai("key may not be null (row: "+b+")");if(yr(a.r,d))return pl(a.r,d);if(yr(a.p,d))return new Vt(a,b,d);throw new Z("The cache of this DataSource does not currently contain the row "+b);}function Pt(a){var b;b=St(a);var d=a.s;a=(d.a-d.b)*a.f.a;return Wt(new Xt(d.b-a,d.a+a),b)}function Yt(a,b){return pl(a.o,K(b))}function Zt(a,b){b.b>=b.a||(a.k=new $t(a,b),a.Pc(b.b,b.a-b.b,a.k))}
+function au(a,b){var d;d=Id(a,a.getRowKey,a.Oc).bind(a)(b);return yr(a.p,d)?pl(a.p,d).a:-1}function bu(a,b){var d,e;e=b.a;d=pl(a.q,e);d||(d=K(0),ql(a.r,e,b));ql(a.q,e,K(d.a+1))}
+function cu(a,b){a.t=b;Qt(a,a.g);a.g=$(0,0);if(a.n){var d=a.n,e,f;e=d.a.u.a;f=e.k;if(b>f){du(e,f,b-f);e=d.a.c;f=$(f,b-f);var g,h;g=e.c==e.j.u.a;h=f.b<=e.g;g&&h&&(e.g+=f.a-f.b,e.g=ph(e.g,e.j.u.a.k-1),e.c.cd(e.g))}else if(b<f)a:if(eu(e,b,f-b),e=d.a.c,f=$(b,f-b),e.c==e.j.u.a){if(fu(f,e.g))e.c.ad()>f.a?e.g=f.b:0<f.b?e.g=f.b-1:0<e.j.u.j.k?(e.g=ph(e.f,e.j.u.j.k-1),e.c=e.j.u.j):0<e.j.u.f.k&&(e.g=ph(e.e,e.j.u.f.k-1),e.c=e.j.u.f);else{if(f.b>e.g)break a;e.g-=f.a-f.b}e.c.cd(e.g)}0<b?(d.a.p=!0,e=gu(d.a.u),d=
+d.b,d.s=$(e.b,e.a-e.b),Rt(d)):(d.a.o=$(0,0),Zk(d.a,new hu(d.a.o)))}}function iu(a,b){(a.n=b)&&!ju(a.g)&&(ku(b.a.u.a,a.g.b,Tt(a.g)),lu(b,a.g.b,Tt(a.g)))}function mu(a,b,d){var e,f,g;f=$(b,d.Sc());a.k&&(Fe(),a.k=null);e=Pt(a);f=Ot(f,e)[1];if(f.b<f.a){for(e=f.b;e<f.a;e++)g=d.Me(e-b),ql(a.o,K(e),g),ql(a.p,a.Oc(g),K(e));a.n&&ku(a.n.a.u.a,f.b,f.a-f.b);ju(a.g)?a.g=f:(Nt(a),ju(a.g)?a.g=f:a.g=nu(a.g,f));a.n&&lu(a.n,a.g.b,Tt(a.g));for(d=d.Bc();d.Hc();)b=d.Ic(),e=a.Oc(b),(e=pl(a.r,e))&&(e.b=b)}Rt(a)}
+function ou(a,b){var d,e;e=b.a;if(d=pl(a.q,e)){var f=K(1);A(f,83)&&f.a==d.a?(sl(a.r,e),sl(a.q,e)):ql(a.q,e,K(d.a-1))}else throw new Z("Row "+pu(b)+" with key "+e+" was not pinned to begin with");}y(297,1,{});_.Qc=function(a){cu(this,a)};_.Rc=function(a,b){mu(this,a,b)};_.Sc=function(){return this.t};_.i=!1;_.t=-1;E(297);function qu(a){this.a=a}y(299,1,{},qu);
+_.hb=function(){this.a.i=!1;var a=this.a,b;if(!a.k){b=St(a);var d=a.s,e;e=(d.a-d.b)*a.f.b;b=Wt(new Xt(d.b-e,d.a+e),b);!ru(b,a.g)||ju(a.g)?(Wk(a.o),Wk(a.p),a.g=new Xt(0,0),Zt(a,Pt(a))):(Nt(a),su(b,a.g)?a.n&&lu(a.n,a.g.b,Tt(a.g)):(b=Ot(Pt(a),a.g),Zt(a,b[0]),Zt(a,b[2])))}};E(299);function tu(a,b,d){a.c.t!=d&&a.c.Qc(d);a.c.Rc(a.b.b,b)}function $t(a,b){this.c=a;this.b=b;this.a=Fe()}y(298,1,{},$t);_.a=0;E(298);y(626,1,{});_.eQ=function(a){return uu(this,a)};_.hC=function(){return Pd(this.a)};E(626);
+function uu(a,b){return A(b,122)?Rd(a.a,b.a):!1}function pu(a){if(yr(a.c.r,a.a))return a.b;throw new Z("The row handle for key "+a.a+" was not pinned");}function Vt(a,b,d){this.c=a;this.b=b;this.a=d}y(122,626,{122:1},Vt);E(122);y(631,1,{});E(631);function vu(){this.b=3;this.a=4}y(170,631,{},vu);_.a=0;_.b=0;E(170);function wu(a,b){var d,e,f;d=a.a.c;for(f=0;f<d.childNodes.length;f++)if((e=d.childNodes[f])&&1==e.nodeType)if(b)e.style[kb]="";else{var g=(ok(),lb);e.style[kb]=g}}y(638,1,{});E(638);
+function xu(a,b){var d=a.a;!d.d&&(d.d=Dr(new yu(d)));zu(d.o.b);Au(a.a);Bu(a);b.a=!0;Si(b.d)}function Cu(a){a.d&&(st(a.d.a),a.d=null)}function Bu(a){a.e=!1;a.c&&(st(a.c.a),a.c=null);var b=it();W();ur&&b==ur&&(ur=null);rr.jc(b);a.a&&(Au(a.a),a.a=null)}function Du(){this.b=new Eu(this)}y(270,1,{},Du);_.e=!1;E(270);function Eu(a){this.a=a}y(271,1,{},Eu);
+_.hc=function(a){var b;if(this.a.e)switch(b=Cr(a.d),b){case 128:b=Qi(a.d);27==b&&xu(this.a,a);break;case 64:case Jb:Fu(this.a.a,a);Si(a.d);break;case Mb:xu(this.a,a);break;case Pa:Si(a.d);case 8:Fu(this.a.a,a);b=this.a.a;var d,e,f,g;g=b.o.v.d;e=Gu(Hu(b.o.C,b.o.v.f.c),b.o.v.c).a;b.i!=g&&b.i!=g+e&&(f=Iu(new Fq(b.o.n)),d=new Ie,g<b.i?(Ju(d,new Ku(f.a.Te(0,g))),Ju(d,Lu(f,g+e,b.i)),Ju(d,new Ku(f.a.Te(g,g+e))),Ju(d,Lu(f,b.i,f.b.Sc()))):(Ju(d,Lu(f,0,b.i)),Ju(d,new Ku(f.a.Te(g,g+e))),Ju(d,Lu(f,b.i,g)),Ju(d,
+Lu(f,g+e,f.b.Sc()))),Se(d,b.o.Q),e=Mu(b.o.c),b.g=Nu(Iu(new Fq(b.o.n)),Ou(b.o,e.a)),d=Qe(d,te(Pu,l,72,d.b.length,0)),Qu(b.o,d),g=Mu(b.o.c),f=g.a,d=g.c,e=b.o.v.d,g=Ru(b.o.u,g.b),b.g==e?(e=b.i>e?b.i-1:b.i,e=Nu(Su(b.o),Tu(b.o,e)),Uu(b.o.c,d,e,g)):b.i<=b.g&&e>b.g?Uu(b.o.c,d,f+1,g):b.i>b.g&&e<b.g&&Uu(b.o.c,d,f-1,g));Bu(this.a);a.a=!0}else Bu(this.a)};E(271);function Vu(a,b,d){this.c=a;this.e=b;this.d=d;this.a=(Et(),Kt(this.e));this.b=Lt(this.e)}y(272,1,{},Vu);
+_.hc=function(a){var b,d;b=Cr(a.d);(d=-1!=b)||(d=a.d,d=-1==(Q(),d).type.toLowerCase().indexOf("pointer"));if(d)switch(b){case 16:case 32:break;case 128:case 256:case 512:case 4096:case 2048:break;case 64:case Jb:b=(Et(),Kt(a.d));d=Lt(a.d);if(3<Wu(this.a-b)||3<Wu(this.b-d)){Cu(this.c);b=this.c;d=this.d;var e;e=this.e;b:{var f,g,h,n,p,q,r,t,s,B,D,O,Ga,sb,Ha;s=d.j;s.b=null;s.c=0;t=d.o.v.d;r=Hu(d.o.C,d.o.v.f.c);s=t+Gu(r,d.o.v.c).a;p=d.o.R.yd()?L(0,d.o.A)+1:L(0,d.o.A);q=new Xt(t,s);s=-1;O=d.o.n.b.length+
+1;Ha=new hl;g=new Ie;Ju(g,d.o.C.d);Ju(g,d.o.w.d);for(sb=new kl(g);sb.b<sb.d.Sc();)if(Ga=(P(sb.b<sb.d.Sc()),sb.d.Me(sb.c=sb.b++)),0!=Ga.b.e)for(D=Ga==r,g=p;g<d.o.n.b.length;g++)if(f=Gu(Ga,Tu(d.o,g)),n=f.a,!(1>=n))if(f=g+n,h=new Xt(g,f),(B=q.b<h.a&&h.b<q.a)&&!D){if(!su(h,q)){if(!su(q,h))break b;g<=t&&g>s&&(s=g);f<O&&(O=f)}g=f-1}else for(;1<n;)++g,--n,il(Ha,K(g));if(s!=O-1){r=Xu(d);for(t=p;t<d.o.n.b.length;t++)p=Tu(d.o,t),!ps(Ha,K(t))&&(-1!=s?t>=s&&t<=O&&Yu(d.j,new Y(r),K(t)):Yu(d.j,new Y(r),K(t))),
+r+=Zu(p.g.u.c,Nu(Su(p.g),p));-1==s&&Yu(d.j,new Y(r),K(d.o.n.b.length))}}if(0==d.j.c)e=!1;else{d.k||(d.n=(W(),Mi()),d.f=Ji(),d.n.appendChild(d.f),d.k=Oi(),d.k.appendChild(d.n),pi(d.k,"header-drag-table"));pi(d.n,d.o.u.j.j.className||"");pi(d.f,hs(Hm(d.o))+"-drop-marker");for(s=O=0;s<d.o.v.f.c;s++)O+=(ti($u(d.o.u.j,s)).offsetHeight||0)|0;d.n.style.top=O+(U(),w);(W(),d.o.$).appendChild(d.k);d.e=(W(),d.o.v.a.cloneNode(!0));d.e.style[v]="";s=d.f.style;O=u;Ha=d.e.style;Ha=(Q(),Ha)[u];s[O]=Ha;d.n.appendChild(d.e);
+mi(d.o.v.a,"dragged");mi(d.e,"dragged-column-header");d.o.b.i=60;s=d.o.b;O=(av(),bv);Ha=d.b;s.j=O;s.b=Ha;cv(s);s.g=Dr(new dv(s));O=s.j==(av(),ev)?fv(Hm(s.e))+((gv(s).offsetHeight||0)|0):hv(iv(s));s.j==(av(),ev)?Ha=fv(jv(s))-1:(Ha=iv(s),Ha=hv(Ha)+((Ha.offsetWidth||0)|0)-1);O+=kv(s);p=(W(),s.e.$);for(r=0;p;)r-=s.j==(av(),ev)?(p.scrollTop||0)|0:(Q(),R).ub(p),p=ii((Q(),p));p=r;s.n=p+O+s.i;s.c=p+Ha-s.i;s.d=s.i;50>s.c-s.n&&(O=50-(s.c-s.n),s.n-=O/2,s.c=C(s.c+O/2),s.d=C(s.d-O/2));s.f=Dr(s.k);s.a=new lv(s,
+C(mv(s.n)),s.c,s.d);s=s.a;s.i=!0;s.i&&10<=s.d&&(s.e=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(s,Hm(s.p.e)));(Q(),R).qb(e);e.stopPropagation();e=!0}e&&(b.e=!0,e=it(),W(),ur=e,rr.kc(e),b.a=d,b.c=Dr(b.b),Fu(d,a))}break;default:Cu(this.c)}};_.a=0;_.b=0;E(272);function nv(a,b,d){this.c=a;this.a=b;this.b=d}y(134,1,{},nv);_.a=0;_.c=0;E(134);function ov(){ov=x;pv=new qv}var pv;function qv(){}y(264,1,{},qv);_.Uc=rv;_.Vc=rv;_.Wc=rv;_.Xc=rv;_.Yc=rv;E(264);
+function sv(a,b){var d;a.b=b;b.b&&(d=a.d.c.cells[a.a],d[dc]=1,0<=a.d.b[a.a]&&(d.style[v]=a.d.b[a.a]+(U(),w)),d.style[m]="",a.c=d)}function tv(a,b){this.d=a;this.a=b}y(81,1,{81:1},tv);_.a=0;_.b=null;_.c=null;var uv=E(81);function vv(a){return new wv(a,0,a.a.b.length)}function xv(a,b,d,e){a.c=b;a.d=d;a.b=e}function yv(a,b){var d;for(d=b;d<a.a.b.length;d++)zv(a.a,d,new tv(a,d))}function Av(){this.a=new Ie}y(510,1,{},Av);_.b=null;_.d=0;E(510);function wv(a,b,d){this.a=a;this.c=b;this.b=d}y(145,1,{},wv);
+_.Bc=function(){return new Bv(new Cv(this.a.a,this.c,this.c+this.b),!0)};_.b=0;_.c=0;E(145);function Dv(a,b,d){this.a=a;this.c=b;this.b=d}y(195,1,{},Dv);_.Bc=function(){return new Bv(new Cv(this.a.a,this.c,this.c+this.b),!1)};_.b=0;_.c=0;E(195);function Ev(a){var b;for(b=0;b<a.d;b++)Fv(a.a,a.c);a.d=0;b=Gv(a.a,a.c++);sv(b,a);return b}
+function Hv(a,b){var d,e,f;f=new Cv(a.a,ph(a.c,a.a.b.length),ph(a.c+b,a.a.b.length));for(e=new kl(f);e.b<e.d.Sc();)d=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++)),sv(d,a);return f}function Bv(a,b){this.a=new Fq(a);this.b=b}y(92,1,{},Bv);_.Hc=function(){return this.c+this.d<this.a.b.length};_.Ic=function(){return Ev(this)};_.Jc=function(){throw new us("Cannot remove cells via iterator");};_.b=!1;_.c=0;_.d=0;E(92);function Iv(){}y(104,1,{104:1},Iv);_.Zc=function(a){a.style[Ub]="";a.style.top=""};
+_.$c=function(a,b,d){a.style[Ub]=b+(U(),w);a.style.top=d+w};E(104);function Jv(){}y(494,1,{},Jv);_.Zc=Kv;_.$c=function(a,b,d){a.style[ec]="translate3d("+b+"px, "+d+"px, 0)"};E(494);function Lv(){}y(495,1,{},Lv);_.Zc=Kv;_.$c=function(a,b,d){a.style[ec]="translate("+b+"px,"+d+"px)"};E(495);function Mv(){}y(496,1,{},Mv);_.Zc=function(a){a.style[gc]=""};_.$c=function(a,b,d){a.style[gc]="translate3d("+b+"px,"+d+"px,0)"};E(496);function Nv(){Nv=x;Ov=new Gk}function Pv(a,b){Nv();this.a=a;this.b=b}
+y(188,620,{},Pv);_.Bb=function(a){var b;a.a.q&&0!=(b=a.a.q,Id(b,b.size,b.Sc).bind(b)())&&(a.a.p=!0,a=a.a.q,a.s=$(this.a,this.b),Rt(a))};_.Cb=function(){return Ov};_.a=0;_.b=0;var Ov;E(188);function Qv(a,b){return bl((!a.a&&(a.a=new ml(a)),a.a),(Rv(),Sv),b)}function Tv(a){var b;b=a.j;a.j=Uv(a.fd())<Uv(a.hd());b!=a.j&&(b=new Vv,Rk((!a.a&&(a.a=new ml(a)),a.a),b))}function Wv(a){return a.c?0:Uv(a.jd())}function Xv(a){return!!a.o||!!a.f}
+function Yv(a){var b,d;d=Uv(a.hd());b=Uv(a.fd());a.e=0>d-b?0:d-b;Zv(a,a.k)}function $v(a,b){var d;d=b>Uv(a.hd());Uv(a.fd())<Uv(a.hd())&&d&&0!=a.k?(a.f=Qv(a,new aw(a,b)),Zv(a,0)):bw(a,b)}function bw(a,b){a.kd(L(0,0<b?cw(b):mv(b)));Yv(a);var d=Uv(a.fd())<Uv(a.hd());a.g.style[m]=d?"":(Yi(),nb);a.ed(d);Tv(a);a.f&&(st(a.f.a),a.f=null)}function Zv(a,b){var d;a.d||(d=a.k,a.k=L(0,ph(a.e,0<b?cw(b):mv(b))),Mt(d,a.k)||(a.c&&dw(a.b),a.ld(a.k|0)))}
+function ew(a,b){var d;d=b<=Uv(a.fd());Uv(a.fd())<Uv(a.hd())&&d&&0!=a.k?(a.o=Qv(a,new fw(a,b)),Zv(a,0)):gw(a,b)}function gw(a,b){a.md(0>b?0:b);Yv(a);var d=Uv(a.fd())<Uv(a.hd());a.g.style[m]=d?"":(Yi(),nb);a.ed(d);Tv(a);a.o&&(st(a.o.a),a.o=null)}function hw(a,b){a.c=0==b;a.c?(Uq(a.g,16384),W(),a.g.__listener=new iw(a),a.g.style[kb]=(ok(),lb)):(Uq(a.g,0),W(),a.g.__listener=null,a.g.style[kb]="");a.nd(1>b?1:b)}function jw(a){return Uv(a.fd())<Uv(a.hd())}
+function kw(a){var b;b=a.gd();a.d?a.k!=b&&a.ld(a.k|0):(a.k=b,a=a.i,a.b||(Ct((Eh(),Fh),a.a),a.b=!0))}function lw(){this.g=(W(),Ji());this.n=Ji();this.b=new mw(this);this.i=new nw(this);this.g.appendChild(this.n);this.g.style[m]=(Yi(),nb);this.g.tabIndex=-1}function Uv(a){return a.length?yo(ve(a,0,a.length-2)):0}y(174,1,{});_.dd=uk;_.od=function(){kw(this)};_.c=!1;_.d=!1;_.e=0;_.j=!1;_.k=0;E(174);function aw(a,b){this.a=a;this.b=b}y(373,1,{},aw);_.pd=function(){bw(this.a,this.b)};_.b=0;E(373);
+function fw(a,b){this.a=a;this.b=b}y(374,1,{},fw);_.pd=function(){gw(this.a,this.b)};_.b=0;E(374);function iw(a){this.a=a}y(375,1,{21:1},iw);_.gc=function(){dw(this.a.b)};E(375);function ow(){ow=x;pw=new qw("VERTICAL",0);rw=new qw(hc,1)}function qw(a,b){S.call(this,a,b)}y(100,4,{100:1,3:1,6:1,4:1},qw);var rw,pw,sw=F(100,function(){ow();return T(G(sw,1),l,100,0,[pw,rw])});function tw(){lw.call(this)}y(369,174,{},tw);_.ed=function(a){this.g.style.overflowX=a?(Lj(),Cb):""};
+_.fd=function(){return Ui(this.g.style,v)};_.gd=function(){return xi(this.g)};_.hd=uw;_.jd=vw;_.kd=function(a){this.g.style[v]=a+(U(),w)};_.ld=function(a){var b=this.g;(Q(),R).yb(b,a)};_.md=function(a){this.n.style[v]=a+(U(),w)};_.nd=function(a){this.g.style[gb]=a+(U(),w);this.g.style[u]="0.0px";this.n.style[u]=a+w};E(369);function nw(a){this.c=a;this.a=new ww(this)}y(365,1,{},nw);_.b=!1;E(365);function ww(a){this.a=a}y(370,1,{},ww);
+_.hb=function(){kw(this.a.c);var a=this.a.c;!a.a&&(a.a=new ml(a));Rk(a.a,new xw);this.a.b=!1};E(370);function dw(a){a.a.nd(13);a.a.g.style[kb]=(ok(),jb);Me(a.b,1E3)}function mw(a){this.a=a;this.b=new yw(this)}y(366,1,{},mw);E(366);function yw(a){this.a=a}y(371,50,{},yw);_.db=function(){this.a.a.nd(1);this.a.a.g.style[kb]=(ok(),lb)};E(371);function zw(){lw.call(this)}y(368,174,{},zw);_.ed=function(a){this.g.style.overflowY=a?(Lj(),Cb):""};_.fd=function(){return Ui(this.g.style,u)};
+_.gd=function(){return(this.g.scrollTop||0)|0};_.hd=vw;_.jd=uw;_.kd=function(a){this.g.style[u]=a+(U(),w)};_.ld=function(a){this.g.scrollTop=a};_.md=function(a){this.n.style[u]=a+(U(),w)};_.nd=function(a){this.g.style[fb]=a+(U(),w);this.g.style[v]="0.0px";this.n.style[v]=a+w};E(368);function Aw(){Aw=x;Bw=new Cw}function Vv(){Aw()}y(367,620,{},Vv);_.Bb=function(a){Dw(a.a)};_.Cb=function(){return Bw};var Bw;E(367);function Cw(){this.c=++Fk}y(372,37,{},Cw);_.tS=function(){return"VisibilityChangeEvent"};
+E(372);function Ew(){Ew=x;Fw=new Gw}var Fw;function Gw(){}y(263,1,{},Gw);_.qd=Ak;_.rd=Ak;E(263);function hv(a){var b;for(b=0;a;)b+=(a.offsetLeft||0)|0,a=a.offsetParent;return b}function fv(a){var b;for(b=0;a;)b+=(a.offsetTop||0)|0,a=a.offsetParent;return b}function kv(a){var b,d;d=0<=a.e.A&&a.e.R.yd()?(ti(ti(gv(a))).offsetWidth||0)|0:0;for(b=0;b<a.e.A;b++)d+=Hw(Tu(a.e,b));return d}function Iw(a){return(a=Hm(a.e).childNodes[2])?ui((Q(),a)):null}function iv(a){return(a=Iw(a))?a.tBodies[0]:null}
+function jv(a){return(a=Iw(a))?a.tFoot:null}function gv(a){return(a=Iw(a))?a.tHead:null}function cv(a){a.g&&(st(a.g.a),a.g=null)}function zu(a){a.f&&(st(a.f.a),a.f=null);if(a.a){var b=a.a;b.i=!1;b.e&&(b.e.bb(),b.e=null);a.a=null}cv(a)}function Jw(a){this.k=new Kw(this);this.e=a}y(273,1,{},Jw);_.c=-1;_.d=0;_.i=100;_.n=-1;E(273);function Kw(a){this.a=a}y(276,1,{},Kw);
+_.hc=function(a){var b,d;if(this.a.a)switch(b=a.d,Cr(a.d)){case 64:case Jb:a=(Et(),Lt(b));d=Kt(b);b=this.a.a;var e;b.p.j==(av(),ev)?e=a:e=d;a=e;var f;-1==b.o?(b.o=ph(b.c,a),b.a=L(b.b,a)):(d=b.o,b.o<b.c&&(b.o=L(b.o,ph(b.c,a))),f=b.a,b.a>b.b&&(b.a=ph(b.a,L(b.b,a))),d=d==b.o,f=f==b.a,a=a!=b.n,b.j=d&&f&&a);Lw(b,e);b.n=e;break;case 8:case Pa:case Mb:zu(this.a)}else zu(this.a)};E(276);function Lw(a,b){var d;b<a.o?(d=b-a.o,d=L(-1,d/a.d)):b>a.a?(d=b-a.a,d=ph(1,d/a.d)):d=0;a.k=500*d}
+function lv(a,b,d,e){this.p=a;this.c=b;this.b=d;this.d=e}y(275,1,{},lv);
+_.ab=function(a){var b,d;b=a-this.g;this.g=a;this.j&&(a=C(Math.ceil(0.001*b)),this.o<this.c?(this.o+=a,this.o=ph(this.o,this.c),Lw(this,this.n)):this.a>this.b&&(this.a-=a,this.a=L(this.a,this.b),Lw(this,this.n)));this.f+=b/1E3*this.k;b=C(this.f);this.f-=b;if(0!=b&&(this.p.j==(av(),ev)?(d=this.p.e.u.F.k,a=this.p,a=Uv(Ui(a.e.u.F.n.style,u))-((jv(a).offsetHeight||0)|0)-((gv(a).offsetHeight||0)|0)):(d=this.p.e.u.r.k,a=this.p,a=Uv(Ui(a.e.u.r.n.style,v))-(((hi(Iw(a)).offsetWidth||0)|0)-kv(a))),0<b&&d<a||
+0>b&&0<d)){d+=b;this.p.j==ev?Zv(this.p.e.u.F,d):Zv(this.p.e.u.r,d);var e=this.p.b;e.a.a=b;Fu(e.a,null);0>=d?(b=this.p.b,b.a.a=0,Mw(b.a,b.a.c)):d>=a&&(b=this.p.b,b.a.a=0,Mw(b.a,b.a.c))}this.i&&10<=this.d&&(this.e=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(this,Hm(this.p.e)))};_.a=-1;_.b=0;_.c=0;_.d=0;_.f=0;_.g=0;_.i=!1;_.j=!1;_.k=0;_.n=0;_.o=-1;E(275);function av(){av=x;ev=new Nw("VERTICAL",0);bv=new Nw(hc,1)}function Nw(a,b){S.call(this,a,b)}y(93,4,{93:1,3:1,6:1,4:1},Nw);
+var bv,ev,Ow=F(93,function(){av();return T(G(Ow,1),l,93,0,[ev,bv])});function dv(a){this.a=a}y(274,1,{},dv);_.hc=function(a){switch(Cr(a.d)){case Hb:1==Ri(a.d).length&&zu(this.a);break;case Jb:a.a=!0;break;case Pa:case Mb:zu(this.a)}};E(274);function Pw(a,b,d,e){a.e=b;a.d=d;a.c=e}function Qw(a){this.f=a}y(125,1,{},Qw);_.sd=function(){return this.f.a.cells[this.e]};_.d=0;_.e=0;E(125);function Rw(){Rw=x;Sw=new Gk}function hu(a){Rw();this.a=a}y(138,620,{},hu);_.Bb=function(a){a.td(this)};_.Cb=function(){return Sw};
+var Sw;E(138);var Tw=ke();function Uw(a){this.f=new Vw;this.b=a}y(462,125,{},Uw);_.sd=$n;E(462);function Ww(a){this.f=a}y(482,125,{},Ww);_.sd=function(){return this.a.c};E(482);function Vw(){}y(167,1,{},Vw);_.c=0;E(167);function Xw(){Xw=x;Yw=new Gk}function Zw(){Xw()}y(417,620,{},Zw);_.Bb=Or;_.Cb=function(){return Yw};var Yw;E(417);y(157,624,{});_.Bb=function(a){var b,d;b=Pi(this.d);Bi(b)&&!$w(this.b,b)&&(b=Ru(this.b.u,b))&&(d=(ax(),bx),b==this.b.u.j?d=cx:b==this.b.u.a&&(d=dx),this.vd(a,d))};
+_.Fb=$n;E(157);function ex(a,b){this.a=new yk(this.wd(),this);this.b=a;this.c=b}y(480,157,{},ex);_.vd=function(a,b){var d;b==(ax(),dx)&&a&&(d=this.c.f.b,a.a.c.R.zd(d)?a.a.b&&fx(a.a.c,d):gx(a.a.c,d))};_.wd=function(){return Ja};E(480);function hx(a,b){this.a=new yk(this.wd(),this);this.b=a;this.c=b}y(481,157,{},hx);_.vd=ix;_.wd=function(){return yb};E(481);function jx(a,b){this.a=new yk(this.wd(),this);this.b=a;this.c=b}y(116,622,{});
+_.Bb=function(a){var b,d;b=Pi(this.d);Bi(b)&&!$w(this.b,b)&&(d=(ax(),bx),b=this.b.c.c,b==this.b.u.j?d=cx:b==this.b.u.a&&(d=dx),this.xd(a,d))};_.Fb=$n;E(116);function kx(a,b){jx.call(this,a,b)}y(477,116,{},kx);_.xd=function(a,b){if(b==(ax(),dx)&&a){var d;32!=Qi(this.d)||a.b.c||(Si(this.d),a.b.c=!0,d=this.c.f.c,a.a&&(st(a.a.a),a.a=null),a.a=lx(a.b.b,new mx(a,d)),nx(a.b.b,d,(ox(),px)))}};_.wd=function(){return Ka};E(477);function qx(a,b){jx.call(this,a,b)}y(479,116,{},qx);_.xd=ix;_.wd=function(){return zb};
+E(479);function rx(a,b){jx.call(this,a,b)}y(478,116,{},rx);_.xd=function(a,b){(b==(ax(),dx)&&A(a,131)||b==cx&&A(a,119))&&a.ud(this)};_.wd=function(){return Ab};E(478);function Rv(){Rv=x;Sv=new Gk}function xw(){Rv()}y(137,620,{},xw);_.Bb=function(a){a.pd(this)};_.Cb=function(){return Sv};var Sv;E(137);function sx(){sx=x;tx=new Gk}function $k(a){sx();this.a=a}y(94,620,{},$k);
+_.Bb=function(a){var b;a.updating||(a.updating=!0,this.a!=a.getSelectionModel()?ux(a.e,this.a):(b=Ls(vx(a)).a,a.setSelectionMode(b?Vi((wx(),xx)):Vi((wx(),yx)))),zx(a),a.updating=!1,zx(a),a.updating||Fn(X(a.c),"select"),a.getSelectionModel().Ad())};_.Cb=function(){return tx};var tx;E(94);y(628,1,{});E(628);function Ax(a){this.c=a;this.a=ms(a,new Bx(this),a.i.a)}y(398,1,{},Ax);_.b=!0;E(398);function Bx(a){this.a=a}y(399,1,{},Bx);E(399);function Cx(){var a;a=new hl;il(a,Bb);il(a,Gb);return a}
+function Dx(a,b){var d;if(!b)return-1;d=Ex(a);for(d=ui((Q(),d));d;){if(R.wb(d,b))return d=ui(d),d=ui(d),parseInt(d[ic])|0;d=Ci(d)}return-1}function Fx(a){return(a=Hm(a.b).childNodes[2])?ui((Q(),a)):null}function Ex(a){return(a=Fx(a))?a.tBodies[0]:null}function Gx(a){return(a=Fx(a))?a.tFoot:null}function Hx(a){return(a=Fx(a))?a.tHead:null}function Ix(a){a.c&&(st(a.c.a),a.c=null)}function Jx(a,b,d){var e;e=ti(b.a.c);e.checked=d.a;e.disabled=0!=a.b.s.w;e[ic]=b.f.c}
+function Kx(a,b,d){b=Yt(a.b.q,b);d?gx(a.b,b):fx(a.b,b)}function Lx(a){this.a=new Mx(this);this.b=a}y(67,638,{67:1},Lx);_.Tc=function(a,b){Jx(this,a,b)};E(67);function Nx(a){var b;a.d&&(st(a.d.a),a.d=null);a.a&&(b=a.a,b.p=!1,b.g&&(b.g.bb(),b.g=null),a.a=null);b=a.f.b.R;A(b,148)&&b.Gd();Ix(a.f)}function Mx(a){this.f=a;this.e=new Ox(this)}y(508,1,{},Mx);_.b=-1;_.c=0;_.g=-1;E(508);function Ox(a){this.a=a}y(509,1,{},Ox);
+_.hc=function(a){var b;if(this.a.a)switch(b=a.d,Cr(a.d)){case 64:case Jb:a=(Et(),Lt(b));b=Kt(b);var d=this.a.a,e,f,g;-1==d.u?(d.u=ph(d.e,a),d.c=L(d.d,a)):(f=d.u,d.u<d.e&&(d.u=L(d.u,ph(d.e,a))),e=d.c,d.c>d.d&&(d.c=ph(d.c,L(d.d,a))),f=f==d.u,e=e==d.c,g=a!=d.k,d.q=f&&e&&g);Px(d,a);d.k=a;-1==d.i&&(d.i=b);break;case 8:case Pa:case Mb:Nx(this.a)}else Nx(this.a)};E(509);function Px(a,b){var d;b<a.u?(d=b-a.u,d=L(-1,d/a.f)):b>a.c?(d=b-a.c,d=ph(1,d/a.f)):d=0;a.r=500*d}
+function Qx(a,b,d,e,f){this.t=a;this.e=b;this.d=d;this.f=e;this.s=f;this.b=fv(Hm(a.b))+((Hx(a).offsetHeight||0)|0);this.a=fv(Gx(a))-1}y(507,1,{},Qx);
+_.ab=function(a){var b;b=a-this.o;this.o=a;this.q&&(a=C(Math.ceil(0.001*b)),this.u<this.e?(this.u+=a,this.u=ph(this.u,this.e),Px(this,this.k)):this.c>this.d&&(this.c-=a,this.c=L(this.c,this.d),Px(this,this.k)));this.n+=b/1E3*this.r;b=C(this.n);this.n-=b;0!=b&&Zv(this.t.b.u.F,this.t.b.u.F.k+b);b=this.t;a=this.i;var d=L(this.b,ph(this.a,this.k));Et();var e=$wnd.document.elementFromPoint(a,d),e=$wnd.document.elementFromPoint(a,d);null!=e&&3==e.nodeType&&(e=e.parentNode);a=Dx(b,e);for(b=a>this.j?1:-1;-1!=
+a&&this.j!=a;)this.j+=b,Kx(this.t,this.j,this.s);this.p&&10<=this.f&&(this.g=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(this,Hm(this.t.b)))};_.a=0;_.b=0;_.c=-1;_.d=0;_.e=0;_.f=0;_.i=-1;_.j=-1;_.k=0;_.n=0;_.o=0;_.p=!1;_.q=!1;_.r=0;_.s=!1;_.u=-1;E(507);function Rx(a){this.a=a}y(506,1,{},Rx);
+_.hc=function(a){var b;switch(Cr(a.d)){case Hb:1==Ri(a.d).length&&Nx(this.a.a);break;case Jb:a.a=!0;break;case Pa:case Mb:b=Pi(a.d);var d;if(b)if((d=Ex(this.a))&&(Q(),R).wb(d,b)){for(;ii((Q(),b))&&hi(ii(b))!=d;)b=ii(b);d=ui(ii(b))==b}else d=!1;else d=!1;d&&(Ix(this.a),a.a=!0)}};E(506);function Sx(){Sx=x;Tx=new Gk}function Ux(a,b,d){Sx();this.a=a;null!=b?V():(V(),V());null!=d?V():(V(),V())}function Vx(a,b,d){Sx();this.a=a;b?new Fq(b):(V(),V());d?new Fq(d):(V(),V())}y(31,620,{},Ux,Vx);_.Bb=function(a){a.Cd(this)};
+_.Cb=function(){return Tx};_.Db=$n;var Tx;E(31);function Wx(a){var b,d;d=new Xx(a.a.Sc());for(b=sn(new tn(a.a));b.a.Hc();)a=un(b),Le(d,pu(a));return d}function Yx(a,b){if(a.f&&b)throw new Z(jc);a.f=b;if(a.f)a.k=new Zx(b),a.g=new Lx(b);else{var d=a.k;st(d.d.a);st(d.e.a);a.k=null;a.g=null}}function $x(){this.j=new ay;this.e=new ay;this.g=this.f=null;this.i=new ay}y(190,628,kc);
+_.Gd=function(){var a,b,d,e;if(this.d){this.d=!1;a=Wx(this.j);this.j.a.He();e=Wx(this.e);for(d=sn(new tn(this.e.a));d.a.Hc();)b=un(d),ou(b.c,b);this.e.a.He();Zk(this.f,new Vx(this.f,a,e))}};_.Dd=function(a){var b=new Em(a),d,e;a=new ay;for(e=new kl(b);e.b<e.d.Sc();)d=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++)),b=Ut(this.f.q,d),this.Kd(b)&&il(a,d);0<a.a.Sc()&&Zk(this.f,new Vx(this.f,null,a))};
+_.Ed=function(){var a,b;if(0<this.i.a.Sc()){b=new by(this.i);a=this.f;var d,e,f;f=new ay;for(e=sn(new tn(this.i.a));e.a.Hc();)d=un(e),il(f,pu(d));d=(V(),new cy(f));a=new Vx(a,null,d);this.i.a.He();this.d&&(this.j.a.He(),this.e.a.He(),dy(this.e,b));Zk(this.f,a);return!0}return!1};_.Kd=function(a){return null!=this.i.a.Ge(a)?(this.d?(this.j.a.Ge(a),il(this.e,a)):ou(a.c,a),!0):!1};_.yd=uk;_.zd=function(a){a=Ut(this.f.q,a);return ps(this.i,a)};_.Ad=function(){this.Ed()};
+_.Fd=function(a){var b=new Em(a),d,e;a=new ay;for(e=new kl(b);e.b<e.d.Sc();)d=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++)),b=Ut(this.f.q,d),this.Ld(b)&&il(a,d);0<a.a.Sc()&&Zk(this.f,new Vx(this.f,a,null))};_.Ld=function(a){return il(this.i,a)?(bu(a.c,a),this.d&&(this.e.a.Ge(a),il(this.j,a)),!0):!1};_.Bd=function(a){Yx(this,a)};_.Hd=function(){this.d=!0};_.d=!1;E(190);y(644,628,{});_.yd=ey;_.zd=jy;_.Ad=rs;_.Bd=Ak;E(644);
+function ky(a,b){if(null==b)throw new J(lc);a.zd(b)&&(a.Kd(a.g),Zk(a.f,new Ux(a.f,null,b)))}function ly(a,b){if(a.f&&b)throw new Z(jc);a.f=b;if(a.f)a.i=new Zx(b),a.d=new Ax(b),a.i&&(a.i.a=a.e),a.d&&(a.d.b=a.e);else{var d=a.i;st(d.d.a);st(d.e.a);st(a.d.a.a);a.i=null;a.d=null}}function my(){}y(168,628,{199:1},my);_.Id=function(a){ky(this,a)};_.Kd=function(a){return a&&uu(a,this.g)?(a=this.g,ou(a.c,a),this.g=null,!0):!1};_.yd=ey;_.zd=function(a){return!!this.g&&uu(this.g,Ut(this.f.q,a))};
+_.Ad=function(){this.g&&ky(this,this.g?pu(this.g):null)};_.Jd=function(a){var b;if(null==a)throw new J(lc);b=this.g?pu(this.g):null;this.Ld(Ut(this.f.q,a))&&Zk(this.f,new Ux(this.f,a,b))};_.Ld=function(a){return a&&!uu(a,this.g)?(this.Kd(this.g),a=this.g=a,bu(a.c,a),!0):!1};_.Bd=function(a){ly(this,a)};_.e=!0;E(168);function Zx(a){this.b=a;this.d=ms(a,new ny(this),a.F.a);this.e=ms(a,new oy(this),a.G.a)}y(177,1,{},Zx);_.a=!0;_.c=!1;E(177);function oy(a){this.a=a}y(131,1,{131:1},oy);
+_.ud=function(a){32==Qi(a.d)&&(this.a.c=!1)};E(131);function ny(a){this.b=a}y(396,1,{},ny);_.a=null;E(396);function mx(a,b){this.a=a;this.b=b}y(397,1,{},mx);_.td=function(a){if(fu(a.a,this.b)){a=this.a;var b=this.a.b.b,d;d=Yt(b.q,this.b);b.R.zd(d)?a.b.a&&fx(b,d):gx(b,d);st(this.a.a.a);this.a.a=null}};_.b=0;E(397);function py(){py=x;qy=new Gk}function ry(a,b){py();this.a=a;this.b=b}y(163,620,{},ry);_.Bb=function(a){a.sort(this)};_.Cb=function(){return qy};_.Db=$n;var qy;E(163);
+function sy(a){ty.call(this,a,(uy(),vy))}function ty(a,b){if(!a)throw new J("Grid column reference can not be null!");if(!b)throw new J("Direction value can not be null!");this.a=a;this.b=b}y(76,1,{},sy,ty);E(76);function wy(){wy=x;gs();xy=1/Math.sqrt(3);yy=Math.tan(0.6981317007977318)}function Dw(a){var b,d,e,f;a.p==(zy(),Ay)&&(e=L(0,a.j.b),d=L(0,a.f.b),b=a.a.f*a.o,f=jw(a.r)?Wv(a.r):0,By(a,e+b+f+d+w))}
+function Ru(a,b){return a.j.j!=b&&ji(a.j.j,b)?a.j:a.a.j!=b&&ji(a.a.j,b)?a.a:a.f.j!=b&&ji(a.f.j,b)?a.f:null}function Cy(a){var b,d;0==a.a.e.b?Zk(a,new Pv(0,0)):(d=Dy(a.a,Ey(a.a.e)),b=Dy(a.a,Fy(a.a.e))+1,Zk(a,new Pv(d,b-d)))}function gu(a){return 0==a.a.e.b?$(0,0):$(a.a.d,a.a.e.b)}function Gy(a){return(0<a.j.k||0<a.a.k||0<a.f.k)&&0<a.c.a.b.length}function Hy(a){return a.i.hasChildNodes()||a.b.hasChildNodes()||a.e.hasChildNodes()}
+function Iy(a){if(a.W){a.G=L(0,Jt((W(),a.$)));a.q=L(0,It(a.$));Jy(a.j);Jy(a.f);Ky(a.v);Ly(a.a);var b=a.a.b,d;a=Jt(b.f.D)-b.b;for(d=My(new Ny(b.a));d.a.Hc();)b=Oy(d),b.e.style[v]=a+(U(),w)}}function Py(a,b){null!=b&&b.length?a.n=b:a.n=nc;a.p==(zy(),Qy)&&By(a,b)}function By(a,b){var d;d=a.a.e.b;null!=b&&b.length?(W(),a.$).style[u]=b:(W(),a.$).style[u]=nc;Iy(a);d!=a.a.e.b&&Cy(a)}function Ry(a,b,d){switch(b.g){case 1:a.r.d=d;break;case 0:a.F.d=d;break;default:throw new us("Unexpected value: "+b);}}
+function Sy(a,b){js((W(),a.$),b);var d=a.F;pi(d.g,b+"-scroller");mi(d.g,b+"-scroller-vertical");d=a.r;pi(d.g,b+"-scroller");mi(d.g,b+"-scroller-horizontal");js(a.D,b+"-tablewrapper");js(a.k,b+"-header-deco");js(a.g,b+"-footer-deco");js(a.s,b+"-horizontal-scrollbar-deco");js(a.w,b+"-spacer-deco-container");d=a.j;Ty(d,b);js(d.j,b+"-header");d=a.a;Ty(d,b);js(d.j,b+"-body");var e;for(e=My(new Ny(d.b.a));e.a.Hc();)d=Oy(e),js(d.e,b+wc),js(d.a,b+xc);d=a.f;Ty(d,b);js(d.j,b+uc)}
+function Uy(){wy();var a,b;this.d=new Av;this.i=(W(),Mi());this.b=Li();b=$doc;this.e=(Q(),b).createElement("tfoot");this.F=new zw;this.r=new tw;this.j=new Vy(this,this.i);this.a=new Wy(this,this.b);this.f=new Xy(this,this.e);this.v=new Yy(this);this.c=new Zy(this);this.s=Ji();this.k=Ji();this.g=Ji();this.w=Ji();this.p=(zy(),Qy);this.A=new $y(this);this.u=new az(this);-1!=$wnd.navigator.userAgent.indexOf("Firefox")?this.t=new Iv:(b=$doc.body.style,void 0!==b[ec]?void 0!==b.transformStyle?this.t=new Jv:
+this.t=new Lv:void 0!==b[gc]?this.t=new Mv:this.t=new Iv);de(bz);fe(this.t.cZ);this.$=b=Ji();var d,e;a=new cz(this);d=Gt();(ut(),!vt&&(vt=new wt),ut(),vt).a.f&&(zt()?d+=2:d+=1);b.appendChild(this.F.g);Qv(this.F,a);hw(this.F,d);yt((!vt&&(vt=new wt),vt))&&(e=this.F.g.style,e.right=Wv(this.F)-1+(U(),w));b.appendChild(this.r.g);Qv(this.r,a);hw(this.r,d);a=this.r;d=new dz(this);bl((!a.a&&(a.a=new ml(a)),a.a),(Aw(),Bw),d);0==Gt()&&(this.F.g.style.zIndex="90",this.r.g.style.zIndex="90");this.D=Ji();b.appendChild(this.D);
+a=Oi();this.D.appendChild(a);a.appendChild(this.i);a.appendChild(this.b);a.appendChild(this.e);a=this.k.style;a[v]=Wv(this.F)+(U(),w);d=(Yi(),nb);a[m]=d;b.appendChild(this.k);a=this.g.style;a[v]=Wv(this.F)+w;a[m]=nb;b.appendChild(this.g);a=this.s.style;a[m]=nb;a[u]=Wv(this.r)+w;b.appendChild(this.s);Sy(this,"v-escalator");this.w.setAttribute("aria-hidden",rb);this.n=nc;this.p==Qy&&By(this,null);this.$.style[v]="500.0px";Iy(this)}
+function ez(a,b,d,e,f,g){wy();var h;h=f-e;switch(a.g){case 0:return a=b-g,a<e?a:d+g>f?d+g-h:e;case 3:return d+g-h;case 2:return b+(d-b)/2-h/2;case 1:return b-g;default:throw new J("Internal: ScrollDestination has been modified, but Escalator.getScrollPos has not been updated to match new values.");}}function fz(a,b,d){wy();var e,f,g;g=te(gz,l,648,2,7);0!=a&&0!=b?(e=0>=a?0-a:a,f=0>=b?0-b:b,g[0]=e/f<d?0:a,g[1]=f/e<d?0:b):(g[0]=a,g[1]=b);return g}
+function hz(a,b){if(!a)throw new J("Destination cannot be null");if(a==(ox(),iz)&&0!=b)throw new J("You cannot have a padding with a MIDDLE destination");}y(343,18,Sb,Uy);
+_.wc=function(){var a,b,d;jz(this.j);jz(this.a);jz(this.f);kz(this.j,0,this.j.k);kz(this.f,0,this.f.k);Ct((Eh(),Fh),new lz(this));d=!1;for(b=new kl(this.c.a);b.b<b.d.Sc();)a=(P(b.b<b.d.Sc()),b.d.Me(b.c=b.b++)),a.c?(a.c=!1,mz(a,a.b),a=!0):a=!1,a&&(d=!0);d&&(nz(this.j),nz(this.a),nz(this.f));b=this.F;b.ld(b.k|0);b=this.r;b.ld(b.k|0);oz(this.v,this.F.g);oz(this.v,this.r.g);b=this.v;d=(W(),this.$);d.addEventListener?d.addEventListener("onmousewheel"in d?Eb:"wheel",b.d):d.attachEvent("onmousewheel",b.d);
+b=this.v;d=this.$;d.addEventListener&&(d.addEventListener(Gb,b.j),d.addEventListener(Ib,b.i),d.addEventListener(Kb,b.f),d.addEventListener(Lb,b.f))};
+_.xc=function(){var a,b,d,e;pz(this.v,this.F.g);pz(this.v,this.r.g);a=this.v;d=(W(),this.$);d.addEventListener?d.removeEventListener(void 0===d.onwheel?Eb:"wheel",a.d):d.detachEvent("onmousewheel",a.d);a=this.v;d=this.$;d.removeEventListener&&(d.removeEventListener(Gb,a.j),d.removeEventListener(Ib,a.i),d.removeEventListener(Kb,a.f),d.removeEventListener(Lb,a.f));qz(this.j,0,this.j.k);qz(this.f,0,this.f.k);d=rz(this.a);for(a=0;a<d;a++)b=d-a-1,e=this.b.rows[b],sz(this.a,e,b),b=this.u,sl(b.b,e),sl(b.a,
+e);tz(this.a.e);a=this.a;Zl();a.d=0};_.n="";_.o=10;_.q=0;_.B=0;_.C=0;var xy=_.G=0,yy=0,bz=E(343);y(361,1,{},function(a){this.a=a});_.hb=uz;E(361);function cz(a){this.a=a}y(362,1,{},cz);_.pd=function(){vz(this.a.v);Zk(this.a,new xw)};E(362);function dz(a){this.a=a}y(363,1,{},dz);E(363);function lz(a){this.a=a}y(364,1,{},lz);_.hb=uz;E(364);
+function wz(a,b,d){if(1>d)throw new J(pc+d+")");if(0>b||b+d>a.k)throw new Xh("The given row range ("+b+".."+(b+d)+") was outside of the current number of rows ("+a.k+")");}function jz(a){Ct((Eh(),Fh),new xz(a))}function yz(a){var b,d;a.n.W?(d=(W(),Ni()),pi(d,a.i+qc),b=sr(a.Md()),pi(b,a.i+"-cell"),(Q(),R).xb(b,"Ij"),d.appendChild(b),a.j.appendChild(d),b=It(b),a.f=1>b?1:b,a.j.removeChild(d),a.j.hasChildNodes()&&(a.Rd(),Dw(a.n))):a.g=!0}
+function zz(a,b){var d;d=sr(a.Md());d.style[u]=a.f+(U(),w);0<=b&&(d.style[v]=b+w);mi(d,a.i+"-cell");return d}function Az(a,b){var d,e,f,g;if(!b)throw new J("Element cannot be null");if(a.j==b||ii((Q(),b))==a.j||!ji(a.j,b))return null;for(d=b;hi(ii((Q(),d)))!=a.j;)d=ii(d);e=-1;for(f=d;f;f=Di(f))++e;f=-1;for(g=ii(d);g;g=Di(g))++f;return new nv(f,e,d)}
+function Bz(a,b){var d,e,f,g,h,n,p,q;f=-1;n=a.j.rows;for(g=0;g<n.length;g++)h=n[g],!(e=h.cells[b])||(p=1<e.colSpan,q=le((Yi(),nb),Ti(e.style)),p||q)||(d=e.cloneNode(!0),d.style[u]="",d.style[v]="",h.insertBefore(d,e),e=Jt(d),(ut(),!vt&&(vt=new wt),ut(),vt).a.f&&(e+=0.01),f=e>f?e:f,li(d));return f}function Cz(a,b){return Dz(a.n.u,b)}function Ez(a,b,d){d?(d=d?d.nextSibling:null)?a.insertBefore(b,d):a.appendChild(b):a.insertBefore(b,a.firstChild);return b}
+function du(a,b,d){var e,f;if(0>b||b>a.k)throw new Xh("The given index ("+b+") was outside of the current number of rows (0.."+a.k+")");if(1>d)throw new J(pc+d+")");a.k+=d;if(a.n.W&&(a.Pd(b,d),a.k==d)){d=new kh;for(e=0;e<a.n.c.a.b.length;e++)f=new Y(Fz(a.n.c,e)),b=K(e),Gz(d.d,b,f);Hz(a.n.c,d)}}
+function Iz(a,b,d,e){var f,g;for(f=0;f<a.Nd();f++){g=a.Od(f);var h=a,n=b,p=d,q=void 0,r=void 0,t=r=void 0,s=void 0,B=t=void 0;xv(h.n.d,g,f,Jz(h.n.c));s=new Dv(h.n.d,n,p);for(r=new Bv(new Cv(s.a.a,s.c,s.c+s.b),!1);r.c+r.d<r.a.b.length;)q=Ev(r),t=Zu(h.n.c,q.a),t=zz(h,t),q.c=t;h.o.Wc(h.n.d,s);0!=n?B=g.childNodes[n-1]:B=null;for(r=new Bv(new Cv(s.a.a,s.c,s.c+s.b),!1);r.c+r.d<r.a.b.length;)q=Ev(r),B=Ez(g,q.c,B);h.o.Uc(h.n.d,s);h.o.Yc(h.n.d,s)}Kz(a);if(e)for(e=b;e<b+d;e++)Lz(a,e,!0)}
+function kz(a,b,d){var e,f,g,h,n,p;e=new Ie;if(1>d)return e;0!=a.j.childNodes.length&&0!=b?h=a.j.childNodes[b-1]:h=null;for(n=b;n<b+d;n++){p=(W(),Ni());e.b[e.b.length]=p;mi(p,a.i+qc);for(g=0;g<a.n.c.a.b.length;g++)f=Zu(a.n.c,g),f=zz(a,f),p.appendChild(f),g<a.n.c.b&&(mi(f,rc),a.n.t.$c(f,a.n.v.b,0));g=a;xv(g.n.d,p,n,Jz(g.n.c));g.o.Wc(g.n.d,vv(g.n.d));h=Ez(g.j,p,h);g.o.Uc(g.n.d,vv(g.n.d));g.o.Yc(g.n.d,vv(g.n.d))}Kz(a);a.Sd();return e}
+function Mz(a,b,d){var e,f,g;for(g=0;g<a.Nd();g++){f=a.Od(g);xv(a.n.d,f,g,Jz(a.n.c));e=new wv(a.n.d,b,d);a.o.Xc(a.n.d,e);for(e=0;e<d;e++)li(f.cells[b]);f=new Dv(a.n.d,b,d);a.o.Vc(a.n.d,f)}}function sz(a,b,d){xv(a.n.d,b,d,Jz(a.n.c));a.o.Xc(a.n.d,vv(a.n.d));li(b);a.o.Vc(a.n.d,vv(a.n.d))}
+function nz(a){var b,d,e,f,g,h;for(e=ti(a.j);e;){b=ui((Q(),e));for(d=0;b;)f=(g=parseInt(b[dc])|0,h=$(d,g),h.a>a.n.c.a.b.length&&(h=new Xt(d,a.n.c.a.b.length)),Nz(a.n.c,h)),b.style[v]=f+(U(),w),b=Ci(b),++d;e=Ci(e)}Kz(a)}function Oz(a,b){var d;for(d=ui((Q(),a));d;)d.style[u]=b+(U(),w),d=Ci(d)}function Kz(a){var b;b=Pz(a.n.c);if(!(0>b))for(a=ti(a.j);a;)a.style[v]=b+(U(),w),a=Ci((Q(),a))}function Qz(a,b,d,e){xv(a.n.d,b,d,Jz(a.n.c));a.o.Yc(a.n.d,new wv(a.n.d,e.b,e.a-e.b))}
+function ku(a,b,d){d=$(b,d);b=$(0,a.n.c.a.b.length);a.Td(d,b)}function eu(a,b,d){wz(a,b,d);a.k-=d;a.n.W&&Hy(a.n)&&a.Qd(b,d)}function Lz(a,b,d){var e,f,g;f=a.j.rows;for(g=0;g<f.length;g++)e=f[g],a.Ud(e)&&(e=e.cells[b],d?mi(e,rc):(zi(e,rc),a.n.t.Zc(e)));d&&Rz(a,b,a.n.v.b)}function Sz(a,b){a.o=b;Gy(a.n)&&0<a.k&&ku(a,0,a.k)}function Ty(a,b){var d,e;d=a.i;if(null==d?null!=b:d!==b)for(a.i=b,e=a.j.rows[0];e;){js(e,b+qc);for(d=e.cells[0];d;)js(d,b+"-cell"),d=Ci((Q(),d));e=Ci((Q(),e))}}
+function Rz(a,b,d){var e,f,g;f=a.j.rows;for(g=0;g<f.length;g++)e=f[g],a.Ud(e)&&(e=e.cells[b],a.n.t.$c(e,d,0))}function Tz(a,b){this.n=a;this.o=(ov(),pv);this.j=b}y(172,1,{});_._c=function(a){return Az(this,a)};_.ad=Uz;_.bd=function(a){return this.Od(a)};_.cd=function(a){ku(this,a,1)};_.f=20;_.g=!0;_.i=null;_.k=0;E(172);function xz(a){this.a=a}y(358,1,{},xz);_.hb=function(){this.a.g&&this.a.n.W&&(yz(this.a),this.a.g=!1)};E(358);
+function $u(a,b){if(0<=b&&b<a.j.childNodes.length)return a.j.rows[b];throw new Xh(sc+b);}function qz(a,b,d){var e,f;for(e=b;e<b+d;e++)f=a.j.rows[b],sz(a,f,b);Jy(a)}function Jy(a){var b;b=a.f*a.k;b!=a.b&&(a.b=b,a.Vd(),$v(a.c.F,a.c.q-L(0,a.c.j.b)-L(0,a.c.f.b)),Ly(a.c.a),Vz(a.c.a.b))}y(173,172,{});_.Nd=function(){return this.j.childNodes.length};_.Od=function(a){return $u(this,a)};_.Pd=function(a,b){kz(this,a,b)};_.Qd=function(a,b){qz(this,a,b)};
+_.Rd=function(){var a;if(0!=this.j.childNodes.length){for(a=this.j.rows[0];a;)Oz(a,this.f),a=Ci((Q(),a));Jy(this)}};_.Sd=function(){Jy(this)};_.Td=function(a,b){var d,e;wz(this,a.b,a.a-a.b);if(this.c.W&&Gy(this.c))for(d=a.b;d<a.a;d++)e=$u(this,d),Qz(this,e,d,b)};_.Ud=function(){return!0};_.b=0;E(173);function Wz(a,b){var d,e;if(b.b>=b.a)return b;if(0==a.e.b)return $(0,0);e=Xz(a);d=Dy(a,Ey(a.e));e=Ot(b,$(d,e))[1];return 0==-d?e:new Xt(e.b+-d,e.a+-d)}
+function Yz(a,b,d){var e,f,g;e=Xz(a)-(a.j.childNodes.length-(V(),(new Zz(new Ny(a.b.a))).b.Sc()));d=d<e?d:e;if(0<d){d=kz(a,b,d);$z(a.e,b,d);g=b*a.f+aA(new Ny(bA(a.b.a,K(b))));for(e=b;e<a.e.b;e++)e-b<d.b.length?f=(Wh(e-b,d.b.length),d.b[e-b]):f=cA(a.e,e),dA(a.n.u,f,0,g),g+=a.f,g+=eA(a.b,e);return d}return tl}function rz(a){return a.j.childNodes.length-(V(),(new Zz(new Ny(a.b.a))).b.Sc())}function fA(a){a=((a.c.D.offsetHeight||0)|0)-L(0,a.c.f.b)-L(0,a.c.j.b);return 0>a?0:a}
+function gA(a,b){var d;d=hA(a.b,0,(iA(),jA),b);return C((b-d)/a.f)}function Dy(a,b){var d;d=kA(a.e,b);return a.d+d}function Xz(a){a=C(mv(fA(a)/a.f))+1;return 0>a?0:a}function lA(a,b){var d;if(0>b||b>=a.k)throw new Xh("No such logical index: "+b);d=b-Dy(a,Ey(a.e));if(0<=d&&d<a.e.b)return mA(a,d);throw new Z("Row with logical index "+b+" is currently not available in the DOM");}function nA(a,b,d){var e;e=d-b;a=hA(a.b,b,(iA(),jA),d);return e-a}
+function oA(a,b){return aA(new Ny(bA(a.b.a,K(b))))+b*a.f}function mA(a,b){if(0<=b&&b<a.e.b)return cA(a.e,b);throw new Xh(sc+b);}
+function pA(a,b,d,e){var f,g,h,n;if(!(b.b>=b.a)){b.b<d?f=d-(b.a-b.b):f=d;if(b.b!=f){h=new Xx(b.a-b.b);for(g=0;g<b.a-b.b;g++)d=qA(a.e,b.b),h.b[h.b.length]=d;$z(a.e,f,h)}h=rA(a.e,f);for(g=e;g<e+(b.a-b.b);g++)d=(P(h.b!=h.d.c),h.c=h.b,h.b=h.b.a,++h.a,h.c.c),Qz(a,d,g,$(0,a.n.c.a.b.length));n=oA(a,e);h=rA(a.e,f);for(g=0;g<b.a-b.b;g++)d=(P(h.b!=h.d.c),h.c=h.b,h.b=h.b.a,++h.a,h.c.c),dA(a.n.u,d,0,n),n+=a.f,n+=eA(a.b,e+g)}}
+function sA(a,b){var d,e,f,g,h;if(0!=b){e=a.c.C+b;Zv(a.c.F,e);d=a.f;f=b-b%d;d=C(b/d);Et();if(0.49<(0>=f?0-f:f)){a:{var n=a.b;g=a.c.C;h=(iA(),jA);var p,q,r;q=new Fq(new Ny(n.a));for(n=0;n<q.b.length;n++){p=(Wh(n,q.b.length),q.b[n]);r=Dz(p.i.f.u,p.e);p=r+p.d;if(r>g){g=new Cv(q,n,q.b.length);break a}if(p>g){g=h==(iA(),tA)?new Cv(q,n+1,q.b.length):new Cv(q,n,q.b.length);break a}}g=(V(),V(),uA)}for(h=g.Bc();h.Hc();)g=h.Ic(),vA(g,wA(g.i.f.u,g.e),Dz(g.i.f.u,g.e)+f),xA(g,g.f+d);for(g=rA(a.e,0);g.b!=g.d.c;)d=
+(P(g.b!=g.d.c),g.c=g.b,g.b=g.b.a,++g.a,g.c.c),h=Dz(a.n.u,d)+f,dA(a.n.u,d,0,h)}yA(a,a.c.B,e)}}function yA(a,b,d){a.c.B=b;a.c.C=d;a.c.t.$c(a.c.b,-a.c.B,-a.c.C);a.c.t.$c(a.c.w,0,-a.c.C)}
+function zA(a){var b,d,e,f,g;b=null;Et();if((e=$wnd.document.activeElement?$wnd.document.activeElement:null)&&ji(a.j,e))for(;e&&e!=a.j;)e&&me("tr",(Q(),e).tagName)&&(b=e),e=ii((Q(),e));d=new Fq(a.e);g=new AA(a.c.a.b.a);for(e=-1;e<a.e.b;e++)if(f=sl(g,K(a.d+e)))BA(d,e+1,f.e),f.e.style[m]="",f.a.style[m]="";for(f=My(new Ny(g));f.a.Hc();)e=Oy(f),e.e.style[m]=(Yi(),nb),e.a.style[m]=nb;e=!b;for(d=new CA(d,d.b.length);0<d.b;)if(g=(P(0<d.b),d.a.Me(d.c=--d.b)),g==b)e=!0;else if(e)f=a.j,f.insertBefore(g,f.firstChild);
+else{f=a.j;var h=void 0;(h=b?b.nextSibling:null)?f.insertBefore(g,h):f.appendChild(g)}}
+function Ly(a){var b,d,e,f;if(a.c.W){f=Xz(a);f=ph(f,a.c.a.k);f-=a.e.b;if(0<f)e=a.e.b,0==a.e.b?d=0:d=Dy(a,Fy(a.e))+1,(b=d<a.k-f)?(b=Yz(a,e,f),pA(a,$(e,b.Sc()),e,d)):(d=a.c.F.k,Zv(a.c.F,0),vz(a.c.v),Yz(a,e,f),Zv(a.c.F,d),vz(a.c.v));else if(0>f){e=rA(a.e,a.e.b);for(d=0;d<-f;d++)b=(P(e.b.b!=e.d.a),e.c=e.b=e.b.b,--e.a,e.c.c),li(b),DA(e);0!=a.e.b&&(e=Cz(a,Ey(a.e)),d=a.c.C-a.f,e<d&&(d=Dy(a,Fy(a.e))+1,pA(a,new Xt(0,1),a.e.b,d)))}0!=f&&Cy(a.c)}}
+function Wy(a,b){this.c=a;Tz.call(this,a,b);this.e=new Op;this.d=0;this.a=new EA(this);this.b=new FA(this.c)}y(349,172,{},Wy);_._c=function(a){var b;a=Az(this,a);if(!a)return null;b=hi(a.b);return new nv(Dy(this,b),a.a,a.b)};_.Md=GA;_.Nd=function(){return rz(this)};_.bd=function(a){return lA(this,a)};_.Od=function(a){return mA(this,a)};
+_.Pd=function(a,b){var d,e,f,g,h;if(0!=b)if(HA(this.b,a,b),d=Yz(this,a,b),Ky(this.c.v),e=a*this.f<this.c.F.k,f=a*this.f>this.c.F.k+fA(this),e)e=b*this.f,sA(this,e),e=this.d+b,Zl(),this.d=e;else if(!f){e=a+d.Sc();f=Dy(this,Ey(this.e));d=b-d.Sc();if(0<d)for(g=Wz(this,$(e,d)),d=this.j.childNodes.length-(V(),(new Zz(new Ny(this.b.a))).b.Sc()),g=d-(g.a-g.b),h=e-f,pA(this,new Xt(g,d),h,e),f=(e+(d-g))*this.f,d=rA(this.e,h+(d-g));d.b!=d.d.c;)f+=eA(this.b,e++),g=(P(d.b!=d.d.c),d.c=d.b,d.b=d.b.a,++d.a,d.c.c),
+dA(this.n.u,g,0,f),f+=this.f;Cy(this.c);zA(this)}};
+_.Qd=function(a,b){var d,e,f,g,h,n,p,q,r;if(0!=b){h=gu(this.c);p=$(a,b);d=this.b;f=K(p.b);q=K(p.a);f=new IA(d.a,(JA(),KA),f,!0,q);if(LA(f)){for(e=My(new Ny(f));e.a.Hc();)q=Oy(e),d.e.qd(q),MA(q,0),li(q.e),li(q.a);for(f=(new NA(f,f)).b.Ye();OA(f.a);)f.b=PA(f.a),QA(f);0==d.a.c&&(st(d.d.a),d.d=null)}HA(d,p.b,-(p.a-p.b));h=Ot(p,h);p=h[0];h=h[1];d=Wz(this,h);f=d.b<d.a&&0==d.b;if(p.b<p.a||f)q=(p.a-p.b)*this.f,e=this.f,e=this.c.F.k-q<e,!(d.b>=d.a)||e&&f?e&&sA(this,-this.c.F.k):sA(this,-q);if(d.b<d.a){f=rz(this.c.a);
+q=this.k;if(q<f){e=f-q;for(g=0;g<e;g++)q=qA(this.e,d.b),sz(this,q,a),r=this.n.u,sl(r.b,q),sl(r.a,q);f-=e;yA(this.c.a,this.c.B,0);d=h.b;for(h=oA(this,d);d<f;d++)q=cA(this.e,d),dA(this.n.u,q,0,h),h+=this.f,h+=eA(this.b,d);h=b-e;for(g=0>f-h?0:f-h;g<f;g++)q=cA(this.e,g),Qz(this,q,g,$(0,this.n.c.a.b.length))}else if(e=this.k*this.f,r=this.c.C+fA(this),r<=e)for(f=this.e.b,q=Dy(this,Fy(this.e))-(d.a-d.b-1),pA(this,d,f,q),e=rA(this.e,d.b),r=oA(this,h.b),q=d.b;q<f-(d.a-d.b);q++)g=(P(e.b!=e.d.c),e.c=e.b,e.b=
+e.b.a,++e.a,e.c.c),dA(this.n.u,g,0,r),r+=this.f,r+=eA(this.b,q+h.b);else if(0>=d.b&&0<d.a&&b>=this.e.b)h=this.c.r.k,d=e-this.e.b*this.f,yA(this,h,d),d=$(0,this.e.b),h=this.k-(d.a-d.b),pA(this,d,0,h);else if(e+b*this.f-r<this.f){f=Dy(this,Ey(this.e))-(d.a-d.b);pA(this,d,0,f);d=d.a;q=rA(this.e,d);e=oA(this,h.b);for(f=0;q.b!=q.d.c;)r=(P(q.b!=q.d.c),q.c=q.b,q.b=q.b.a,++q.a,q.c.c),dA(this.n.u,r,0,e),e+=this.f,e+=eA(this.b,d+f++);h=this.d+-(h.a-h.b);Zl();this.d=h}else{n=Cz(this,cA(this.e,d.b));for(g=0;g<
+d.a-d.b;g++){q=qA(this.e,d.b);var t=this.e;Pp(t,q,t.c.b,t.c)}for(g=d.b;g<f;g++)q=cA(this.e,g),t=C(n),dA(this.n.u,q,0,t),n+=this.f,n+=eA(this.b,g+h.b);h=e-fA(this);Zv(this.c.F,h);vz(this.c.v);pA(this,new Xt(f-1,f-1+1),0,Dy(this,Ey(this.e))-1);h=this.d+-1;Zl();this.d=h;h=C(mv((r-e)/this.f));d=f-(d.a-d.b-h);f=new Xt(d,f);h=Dy(this,Ey(this.e))+d;pA(this,f,d,h)}Cy(this.c);zA(this)}p=this.d+-(p.a-p.b);Zl();this.d=p;Ky(this.c.v)}};
+_.Rd=function(){var a,b,d;if(0!=this.e.b){for(a=0;a<this.e.b;a++)d=cA(this.e,a),Oz(d,this.f),b=this.d+a,dA(this.n.u,d,0,b*this.f);a=this.c.F.k/Uv(Ui(this.c.F.n.style,u));Ky(this.c.v);Zv(this.c.F,C(this.f*this.k*a));yA(this,this.c.r.k,this.c.F.k);vz(this.c.v);Ly(this);a=C(Cz(this,Ey(this.e))/this.f);Zl();this.d=a}};_.Sd=rs;_.Td=function(a,b){var d,e,f;f=Wz(this,a);if(f.b<f.a)for(d=Dy(this,Ey(this.e)),e=f.b;e<f.a;e++)Qz(this,cA(this.e,e),d+e,b)};_.Ud=function(a){return RA(this.e,a,!1)};_.d=0;E(349);
+function SA(a){a.f=!0;TA(a);a.a=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(a.b,null)}function TA(a){a.a&&(a.a.bb(),a.a=null);a.d=Fe();a.c=0}function EA(a){this.e=a;this.b=new UA(this)}y(350,1,{},EA);_.c=0;_.d=0;_.f=!1;E(350);function UA(a){this.a=a}y(359,1,{},UA);_.ab=function(){++this.a.c;var a=this.a,b,d,e;b=3<=a.c;d=50<=Fe()-a.d;e=!a.e.c.v.a;if(b=b&&d&&e)TA(a),zA(a.e);b?this.a.f=!1:this.a.a=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(this,null)};E(359);function Pz(a){return Nz(a,new Xt(0,a.a.b.length))}
+function VA(a,b){if(!fu($(0,a.a.b.length),b))throw new J("The given column index ("+b+") does not exist");}function Jz(a){var b;if(null==a.d||a.d.length!=a.a.b.length)for(a.d=te(gz,l,648,a.a.b.length,7),b=0;b<a.a.b.length;b++)a.d[b]=WA(Gv(a.a,b));return a.d}function Nz(a,b){var d,e,f;f=0;for(e=b.b;e<b.a;e++)d=WA(Gv(a.a,e)),f+=d;return f}function Fz(a,b){VA(a,b);return Gv(a.a,b).b}function Zu(a,b){return WA(Gv(a.a,b))}
+function XA(a,b,d){var e,f,g,h;e=a.c.A;YA(e,0.1);e.a=!1;if(0>b||b>a.a.b.length)throw new Xh("The given index("+b+") was outside of the current number of columns (0.."+a.a.b.length+")");if(1>d)throw new J("Number of columns must be 1 or greater (was "+d);e=a.c.d;for(g=0;g<d;g++)f=b+g,BA(e.a,f,new tv(e,f));yv(e,b+d);for(e=0;e<d;e++)BA(a.a,b,new ZA(a));(e=b<a.b)&&(a.b+=d);g=Uv(Ui(a.c.r.g.style,v))<Uv(Ui(a.c.r.n.style,v));Ky(a.c.v);f=Uv(Ui(a.c.r.g.style,v))<Uv(Ui(a.c.r.n.style,v));!g&&f&&Ly(a.c.a);Iz(a.c.j,
+b,d,e);Iz(a.c.a,b,d,e);Iz(a.c.f,b,d,e);if(0<a.c.j.k||0<a.c.a.k||0<a.c.f.k){f=new kh;h=new Y(100);for(g=b;g<b+d;g++)e=K(g),Gz(f.d,e,h);Hz(a.c.c,f)}e=Nz(a.c.c,$(0,b));a.c.v.b>e&&(b=Nz(a.c.c,$(b,d)),Zv(a.c.r,a.c.v.b+b))}
+function $A(a,b,d){if(1>d)throw new J("Number of columns can't be less than 1 (was "+d+")");if(0>b||b+d>a.a.b.length)throw new Xh("The given column range ("+b+".."+(b+d)+") was outside of the current number of columns ("+a.a.b.length+")");var e,f,g;Uv(Ui(a.c.r.g.style,v))>=Uv(Ui(a.c.r.n.style,v))||(e=Nz(a,new Xt(0,b)),g=Nz(a,$(b,d)),f=a.c.r.k,f<=e||Zv(a.c.r,e>f-g?e:f-g));Mz(a.c.j,b,d);Mz(a.c.a,b,d);Mz(a.c.f,b,d);e=a.c.d;aB(new Cv(e.a,b,b+d));yv(e,b);aB(new Cv(a.a,b,b+d));b<a.b&&(b+d<a.b?a.b-=d:a.b=
+b);Ky(a.c.v);Ly(a.c.a);0<a.c.c.a.b.length&&(b=a.c.j,0<b.k&&Kz(b),b=a.c.a,0<b.k&&Kz(b),a=a.c.f,0<a.k&&Kz(a))}
+function Hz(a,b){var d,e,f;if(!b.xe()){for(e=b.De().Bc();e.Hc();){d=e.Ic();f=d.We().a;d=d.ke().a;if(f==a.a.b.length-1){var g=a.c.A;YA(g,0.1);g.a=!1}VA(a,f);mz(Gv(a.a,f),d)}a.d=null;nz(a.c.j);nz(a.c.a);nz(a.c.f);e=a.c.A;if(f=!e.a)a:{var h,n;if(0<e.b.j.k)d=e.b.j;else if(0<e.b.a.k)d=e.b.a;else if(0<e.b.f.k)d=e.b.f;else{f=!1;break a}f=0;if(n=d.j.rows[0]){g=n.cells;for(h=0;h<g.length;h++)d=g[h],le(Ti(d.style),(Yi(),nb))||(f+=Ft(d).width);d=Ft(n).width;f=f>=d}else f=!1}f&&(YA(e,-0.1),bB(e.b.j),bB(e.b.a),
+bB(e.b.f),e.a=!0);Iy(a.c)}}function Zy(a){this.c=a;this.a=new Ie}y(351,1,{},Zy);_.b=0;_.d=null;E(351);function WA(a){return a.c?-1:a.a}function mz(a,b){a.b=b;if(0>b)if(a.d.c.W){var d=a.d,e=vq(a.d.a,a),f,g;g=Bz(d.c.j,e);f=Bz(d.c.a,e);d=Bz(d.c.f,e);a.a=g>(f>d?f:d)?g:f>d?f:d}else a.c=!0;else a.a=b}function ZA(a){this.d=a}y(352,1,{},ZA);_.a=100;_.b=-1;_.c=!1;E(352);function wA(a,b){var d;d=pl(a.a,b);if(!d)throw new J("Element "+b+tc);return d.a}
+function Dz(a,b){var d;d=pl(a.b,b);if(!d)throw new J("Element "+b+tc);return d.a}function dA(a,b,d,e){a.c.t.$c(b,d,e);ql(a.b,b,new Y(e));ql(a.a,b,new Y(d))}function az(a){this.c=a;this.b=new kh;this.a=new kh}y(356,1,{},az);E(356);
+function cB(a,b,d,e){this.f=a;this.g=-7<(7>b/e?b/e:7)?7>b/e?b/e:7:-7;this.i=-7<(7>d/e?d/e:7)?7>d/e?d/e:7:-7;this.b=a.r.k;this.c=a.F.k;a=fz(this.g,this.i,(wy(),xy));this.g=a[0];this.i=a[1];0.005<this.g*this.g+this.i*this.i?(this.d=1500,this.j=this.g/this.d,this.k=this.i/this.d):this.d=0}y(345,1,{},cB);
+_.ab=function(){var a,b,d,e,f;0>=this.d||this.a?this.f.v.a=null:(f=Fe(),0==this.e?this.e=f:(a=this.f.r.k,b=this.f.F.k,e=f-this.e,d=a-this.g*e,Zv(this.f.r,d),this.g-=this.j*e,d=b-this.i*e,Zv(this.f.F,d),this.i-=this.k*e,this.b==this.f.r.k&&this.c==this.f.F.k&&(this.a=!0),this.e=f,this.d=C(this.d-e),this.b=a,this.c=b),(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(this,null))};_.a=!1;_.b=0;_.c=0;_.d=0;_.e=0;_.g=0;_.i=0;_.j=0;_.k=0;E(345);function Xy(a,b){this.c=this.a=a;Tz.call(this,a,b);this.b=0}
+y(348,173,{},Xy);_.Md=GA;_.Vd=function(){var a;a=C(cw(this.a.q-L(0,this.a.j.b)-L(0,this.a.f.b)));Pz(this.a.c)>this.a.G&&(a=C(a-Wv(this.a.r)));this.a.g.style[u]=L(0,this.a.f.b)+(U(),w);$v(this.a.F,a)};E(348);function Vy(a,b){this.c=this.a=a;Tz.call(this,a,b);this.b=0}y(347,173,{},Vy);_.Md=function(){return"th"};_.Vd=function(){var a;a=L(0,this.b);this.a.b.style.marginTop=a+(U(),w);this.a.w.style.marginTop=a+w;this.a.F.g.style.top=a+w;this.a.k.style[u]=a+w};E(347);
+function dB(a,b,d,e){if(!isNaN(b)){var f=a.r;0!=b&&Zv(f,f.k+b)}isNaN(d)||(f=a.F,0!=d&&Zv(f,f.k+d));d=0!=d&&jw(a.F);a=0!=b&&jw(a.r);(d||a)&&(Q(),R).qb(e)}function eB(a){return Ee(function(b){a.Wd(b)})}function fB(a){return Ee(function(b){a.Xd(b)})}function gB(a){return Ee(function(b){a.Yd(b)})}function hB(a){this.q=new iB(this);this.d=a}y(344,1,{},hB);
+_.Wd=function(a){var b,d;this.s=Ri(a).length;if(0==this.s){a=this.k-this.j;(b=0>this.f||0>this.i)?(b=this.p.targetTouches[0].pageX,d=this.p.targetTouches[0].pageY):(d=this.i,b=this.f);b-=this.e;d-=this.g;var e=this.d.v;e.a=new cB(e.c,b,d,a);(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(e.a,null);SA(this.d.a.a)}};_.Xd=function(a){this.p=a;this.a&&this.a.bb();this.a=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(this.q,this.d.b);Si(a)};
+_.Yd=function(a){this.s=Ri(a).length;if(1==this.s){var b=this.d.v;b.a&&(b.a.a=!0);this.n=a.targetTouches[0].pageX;this.o=a.targetTouches[0].pageY;this.e=this.n;this.f=-1;this.g=this.o;this.i=-1;this.j=Xl(Ql(Fe()));this.k=0;this.r=!0}};_.b=0;_.c=0;_.e=-1;_.f=-1;_.g=-1;_.i=-1;_.j=0;_.k=0;_.n=0;_.o=0;_.r=!0;_.s=0;E(344);function iB(a){this.a=a}y(357,1,{},iB);
+_.ab=function(){var a,b,d;1==this.a.s&&(a=this.a.p.targetTouches[0].pageX,b=this.a.p.targetTouches[0].pageY,100<Xl(Ql(Fe()))-this.a.k&&(this.a.k=Xl(Ql(Fe())),this.a.i=b,this.a.f=a),this.a.b=a-this.a.n,this.a.c=b-this.a.o,this.a.n=a,this.a.o=b,this.a.r&&(a=this.a.b,b=this.a.c,d=fz(this.a.b,this.a.c,(wy(),yy)),this.a.b=d[0],this.a.c=d[1],0!=a&&this.a.b==a&&0!=b&&this.a.c==b&&(this.a.r=!1)),dB(this.a.d,-this.a.b,-this.a.c,this.a.p))};E(357);y(342,1,{});E(342);
+function oz(a,b){b.addEventListener?b.addEventListener(Cb,a.e):b.attachEvent("onscroll",a.e)}function jB(a){return Ee(function(b){var d=b.deltaX?b.deltaX:-0.5*b.wheelDeltaX,e=b.deltaY?b.deltaY:-0.5*b.wheelDeltaY;isNaN(e)&&(e=-0.5*b.wheelDelta);dB(a,d,e,b)})}function kB(a){var b=a.F,d=b.dd(),e=a.r,f=e.dd();return Ee(function(a){a=a.target||a.srcElement;a===d?b.od():a===f?e.od():$wnd.console.error("unexpected scroll target: "+a)})}
+function pz(a,b){b.addEventListener?b.removeEventListener(Cb,a.e):b.detachEvent("onscroll",a.e)}
+function vz(a){var b,d,e;e=a.c.F.k;d=a.c.r.k;if(a.b!=d){for(b=0;b<a.c.c.b;b++)Rz(a.c.j,b,d),Rz(a.c.a,b,d),Rz(a.c.f,b,d);a.c.t.$c(a.c.i,-d,0);A(a.c.t,104)?a.c.e.style[Ub]=-d+(U(),w):a.c.t.$c(a.c.e,-d,0);a.b=d}yA(a.c.a,d,e);b=a.c.a;var f,g,h,n;0!=b.e.b&&(e=!1,(d=lB(b.b.a,K(b.d-1)))?(h=Dz(d.i.f.u,d.e),g=d.d+b.f):(h=Cz(b,Ey(b.e)),g=b.f),d=b.c.C,n=h-d,0<n?(e=nA(b,d,h),e=C(mv(e/b.f)),h=ph(e,b.e.b),e=b.e.b,h=e-h,f=gA(b,d),pA(b,new Xt(h,e),0,f),Zl(),b.d=f,e=!0):0>=n+g&&(e=nA(b,h,d),e=C(e/b.f),h=ph(e,b.e.b),
+h<b.e.b?f=Dy(b,Fy(b.e))+1:f=gA(b,d),g=b.e.b,d=!1,f+h>b.k&&(--h,d=!0),h=L(0,ph(h,b.k-f)),pA(b,new Xt(0,h),g,f),d&&(f=new Xt(0,1),d=b.k-b.e.b,pA(b,f,0,d)),d=b.d+e,f=b.k-b.e.b,Zl(),b.d=d<f?d:f,e=!0),e&&(Cy(b.c),0==b.c.v.g.s&&SA(b.a)));Vz(a.c.a.b)}
+function Ky(a){var b,d,e,f,g,h;b=a.c.a;g=b.f*b.k+aA(new Ny(a.c.a.b.a));e=Pz(a.c.c);h=a.c.q;b=a.c.G;f=g>h+0.49-L(0,a.c.j.b)-L(0,a.c.f.b);d=e>b+0.49;f!=d&&(!f&&d?f=g>h+0.49-L(0,a.c.j.b)-L(0,a.c.f.b)-Wv(a.c.r):d=e>b+0.49-Wv(a.c.F));f&&(b-=Wv(a.c.F),b=0>b?0:b);d&&(h-=Wv(a.c.r),h=0>h?0:h);a.c.D.style[u]=h+(U(),w);a.c.D.style[v]=b+w;d=L(0,a.c.f.b);f=L(0,a.c.j.b);$v(a.c.F,0>h-d-f?0:h-d-f);ew(a.c.F,g);g=a.c.r.k;h=Nz(a.c.c,new Xt(a.c.c.b,a.c.c.a.b.length));e-=h;$v(a.c.r,b-e);ew(a.c.r,h);a.c.r.g.style[Ub]=
+e+w;Zv(a.c.r,g);jw(a.c.r)?a.c.s.style[m]="":a.c.s.style[m]=(Yi(),nb);e=a.c.k.style;b=a.c.g.style;jw(a.c.F)?(e[m]="",b[m]="",jw(a.c.r)?(a=Wv(a.c.r),b[vc]=a+w):b[vc]=""):(a=(Yi(),nb),e[m]=a,b[m]=nb)}function Yy(a){this.c=a;this.e=kB(a);this.d=jB(a);this.g=new hB(a);this.j=gB(this.g);this.i=fB(this.g);this.f=eB(this.g)}y(346,342,{},Yy);_.b=0;E(346);function aA(a){var b,d;b=0;for(d=My(a);d.a.Hc();)a=Oy(d),b+=a.d;return b}function eA(a,b){var d;return(d=lB(a.a,K(b)))?d.d:0}
+function hA(a,b,d,e){var f=jA,g,h,n,p,q,r,t,s,B,D;r=0;for(a=My(new Ny(a.a));a.a.Hc();)if(g=Oy(a),t=Dz(g.i.f.u,g.e),q=g.d,g=t+q,s=t<b,D=b<=t&&t<=e,B=e<t,h=g<b,p=b<=g&&g<=e,n=e<g,!h)if(B)break;else if(s&&p)switch(d.g){case 1:r+=g-b;break;case 0:r+=q}else if(s&&n)switch(d.g){case 2:return 0;case 0:return q;case 1:return e-b;default:throw new J("Unexpected inclusion state :"+d);}else if(D&&p)r+=q;else if(D&&n){switch(f.g){case 1:r+=e-t;break;case 0:r+=q}break}return r}
+function HA(a,b,d){var e;e=d*a.f.a.f;b=K(b);a=new IA(a.a,(JA(),mB),b,!0,null);for(b=new kl(new Fq(new Ny(a)));b.b<b.d.Sc();)a=(P(b.b<b.d.Sc()),b.d.Me(b.c=b.b++)),vA(a,wA(a.i.f.u,a.e),Dz(a.i.f.u,a.e)+e),xA(a,a.f+d)}
+function Vz(a){var b,d,e,f;f=gu(a.f);b=K(f.b-1);f=K(f.a+1);b=new IA(a.a,(JA(),KA),b,!0,f);e=new Ny(b);if(0!=e.a.Sc())for(f=si(a.f.D)+L(0,a.f.j.b),b=qi(a.f.D)-L(0,a.f.f.b),e=My(e);e.a.Hc();){d=Oy(e);var g=f,h=b,n=a.b,p=void 0,q=p=p=void 0,q=void 0,q=si(d.a),p=qi(d.a);q<g||p>h?(q=0>g-q?0:g-q,p=d.b-(0>p-h?0:p-h),p=gi(gi(gi(gi(gi(gi(new ul("rect("),q),"px,"),n),"px,"),p),"px,0)").a,d.a.style.clip=p):d.a.style.clip="auto"}}function FA(a){this.f=a;this.a=new nB;this.e=(Ew(),Fw);this.c=new oB(this)}
+y(354,1,{},FA);_.b=0;E(354);function oB(a){this.b=a}y(360,1,{},oB);_.pd=function(){var a,b;if(!Mt(this.b.f.r.k,this.a))for(this.a=this.b.f.r.k,b=My(new Ny(this.b.a));b.a.Hc();)a=Oy(b),vA(a,this.a,Dz(a.i.f.u,a.e))};_.a=0;E(360);function pB(a){var b,d;d=C(mv(Dz(a.i.f.u,a.e)));b=C(cw(a.d));b=$(d,b);d=a.i.f;a=C(cw(d.F.k));d=C(fA(d.a));a=$(a,d);return ru(a,b)}
+function MA(a,b){var d,e,f,g,h,n;d=b-L(0,a.d);g=a.d;a.d=b;if(0>a.c){Et();h=ti(lA(a.i.f.a,gu(a.i.f).b));n=T(vl(z),l,2,4,["borderBottomWidth"]);Et();if("function"===typeof $wnd.getComputedStyle){e=$wnd.getComputedStyle(h);for(i=h=0;i<n.length;i++)h+=parseFloat(e[n[i]]);n=h}else{e=h.offsetParent;h=h.cloneNode(!1);h.style.boxSizing="content-box";e.appendChild(h);h.style.height="10px";var p=h.offsetHeight;for(i=0;i<n.length;i++)h.style[n[i]]="0";n=h.offsetHeight;e.removeChild(h);n=p-n}a.c=n}a.e.style[u]=
+b+a.c+(U(),w);n=K(a.f);n=new IA(a.i.a,(JA(),mB),n,!1,null);for(e=My(new Ny(n));e.a.Hc();)n=Oy(e),vA(n,wA(n.i.f.u,n.e),Dz(n.i.f.u,n.e)+d);(n=0<d)&&ew(a.i.f.F,Uv(Ui(a.i.f.F.n.style,u))+d);e=n&&-1==a.f&&0==a.i.f.a.d;if(a.f<a.i.f.a.d&&!e){for(h=rA(a.i.f.a.e,0);h.b!=h.d.c;)e=(P(h.b!=h.d.c),h.c=h.b,h.b=h.b.a,++h.a,h.c.c),p=Cz(a.i.f.a,e)+d,dA(a.i.f.a.n.u,e,0,p);h=Dz(a.i.f.u,a.e);e=a.i.f.F.k;(g=h<e&&e<h+g)&&!n?f=d>h-e?d:h-e:f=d;yA(a.i.f.a,a.i.f.B,a.i.f.C+f);g=a.i.f.F;0!=f&&Zv(g,g.k+f)}else for(f=a.i.f.a,
+g=a.f,p=gu(f.c),e=g<p.b,h=g>=p.a-1,e?g=Iu(f.e):h?g=(V(),V(),tl):(g=new Cv(f.e,g-p.b+1,p.a-p.b),g=(V(),new Ku(g))),e=g.Bc();e.Hc();)g=e.Ic(),h=Dz(f.n.u,g)+d,dA(f.n.u,g,0,h);n||ew(a.i.f.F,Uv(Ui(a.i.f.F.n.style,u))+d);d=a.a.style;a.b=b+a.i.f.a.f;d[u]=a.b+w}function vA(a,b,d){dA(a.i.f.u,a.e,b,d);dA(a.i.f.u,a.a,0,d-a.i.f.a.f)}function xA(a,b){qB(a.i.a,K(a.f));a.f=b;a.e[yc]=b;Yu(a.i.a,K(a.f),a)}
+function rB(a,b){this.i=a;this.f=b;this.e=(W(),Ni());var d=$doc;this.g=(Q(),d).createElement("td");this.e.appendChild(this.g);this.e[yc]=b;this.a=Ji()}y(355,1,{},rB);_.b=0;_.c=-1;_.d=-1;_.f=0;E(355);function iA(){iA=x;sB=new tB("COMPLETE",0);jA=new tB("PARTIAL",1);tA=new tB("NONE",2)}function tB(a,b){S.call(this,a,b)}y(90,4,{90:1,3:1,6:1,4:1},tB);var sB,tA,jA,uB=F(90,function(){iA();return T(G(uB,1),l,90,0,[sB,jA,tA])});
+function YA(a,b){var d;d=a.b.c.a.b.length-1;0>d||(Gv(a.b.c.a,d).a+=b,null!=a.b.c.d&&(a.b.c.d[d]+=b))}function bB(a){var b,d,e,f,g;if(0!=a.k)for(g=a.j.rows,a=0;a<g.length;a++){d=g[a].cells;f=null;for(e=d.length-1;0<=e;e--)if(b=d[e],!le(Ti(b.style),(Yi(),nb))){f=b;break}b=Ft(f).width;b-=0.1;f.style[v]=b+(U(),w)}}function $y(a){this.b=a}y(353,1,{},$y);_.a=!1;E(353);
+function vB(a,b,d){BA(a.n,d,b);wB(a.C,b);wB(a.w,b);xB(b,a);XA(a.u.c,d,1);b.g&&yB(b.g.a);d=new hl;var e=b.d;b=new hl;A(e,67)&&(e=Cx(),dy(b,e));dy(d,b);zB(a,d)}function lx(a,b){Lh((Eh(),Fh),new AB(a,b));return ms(a,b,(Rw(),Sw))}function fx(a,b){if(A(a.R,199))a.R.Id(b);else if(A(a.R,70))a.R.Dd(T(G(I,1),l,1,3,[b]));else throw new Z(zc);}function Tu(a,b){if(0>b||b>=a.n.b.length)throw new Z(Ac);return Gv(a.n,b)}
+function BB(a){var b,d,e;d=gu(a.u).b;e=qi(a.u.j.j);for(b=lA(a.u.a,d);(Q(),R).sb(b)+((b.offsetHeight||0)|0)<e;)b=lA(a.u.a,++d);return d}function CB(a){var b,d,e;e=gu(a.u).a;b=si(a.u.f.j);do d=lA(a.u.a,--e);while((Q(),R).sb(d)>b);return e}function Ou(a,b){var d;d=Su(a);if(0>b||b>=d.b.Sc())throw new Z(Ac);return d.a.Me(b)}function Su(a){var b,d;d=new Ie;for(b=new kl(a.n);b.b<b.d.Sc();)a=(P(b.b<b.d.Sc()),b.d.Me(b.c=b.b++)),d.b[d.b.length]=a;return V(),new DB(d)}
+function EB(a,b,d){if(d!=a.u.j||!Hu(a.C,a.v.f.c).a||!a.v.c.n)return!1;le(Bb,(Q(),b).type)&&b.shiftKey&&R.qb(b);if(Gb===b.type){if(1<b.touches.length)return!1;R.qb(b);d=b.changedTouches[0];a.I=new qr(Ei(d.clientX||0),Ei(d.clientY||0));a=a.U;a.a=a.c.v.c;a.b=!0;Me(a.d,500);return!0}if(Ib===b.type){if(1<b.touches.length)return!1;R.qb(b);d=b.changedTouches[0];b=FB(Ei(d.clientX||0)-a.I.a);d=FB(Ei(d.clientY||0)-a.I.b);(3<b||3<d)&&Ne(a.U.d);return!0}if(Kb===b.type){if(1<b.touches.length)return!1;a.U.d.p&&
+(Ne(a.U.d),GB(a.U,a.v.c,!1));return!0}if(Lb===b.type){if(1<b.touches.length)return!1;Ne(a.U.d);return!0}Ja===b.type&&GB(a.U,a.v.c,!!b.shiftKey);return!1}function $w(a,b){var d;a:{d=b;Et();var e;if(d){for(e=null;!e&&d;)e=(W(),Kn(d)),!e&&(d=ii((Q(),d)));if(A(e,18))for(d=e;d;)break a}d=null}if(d==a)return!1;for(;d&&d!=a;)d=d.Z;return!!d}function HB(a){ku(a.u.a,0,a.u.a.k)}function IB(a){JB(a.u.f,a.w)}function KB(a){JB(a.u.j,a.C)}
+function JB(a,b){var d,e;d=(b.e?b.d.b.length:0)-a.k;0<d?(du(a,0,d),Iy(a.c),Dw(a.c)):0>d&&(e=a.c.F.k,eu(a,0,-d),Iy(a.c),Dw(a.c),Zv(a.c.F,e));0<a.k&&ku(a,0,a.k)}function LB(a,b){var d;d=vq(a.n,b);$A(a.u.c,Nu(Su(a),b),1);MB(a);NB(a.C,b);NB(a.w,b);xB(b,null);Fv(a.n,d)}function nx(a,b,d){OB(a,b,d,(ox(),0))}
+function OB(a,b,d,e){var f;f=a.u.a.k-1;if(0>b)throw new J(Bc+b+") is below zero!");if(b>f)throw new J(Bc+b+") is above maximum ("+f+")!");a=a.u;var g;hz(d,e);if(-1!=b&&(0>b||b>=a.a.k))throw new Xh("The given row index "+b+oc);-1!=b?(g=C(cw(oA(a.a,b))),f=C(mv(a.a.f)),f=$(g,f)):f=$(0,0);g=lB(a.a.b.a,K(b));if(-1==b&&!g)throw new J("Cannot scroll to row index -1, as there is no spacer open at that index.");g&&(b=C(cw(Dz(g.i.f.u,g.e))),g=C(mv(g.d)),b=$(b,g),f=nu(f,b));b=f.b;f=f.a;g=a.F.k;d=ez(d,b,f,g,
+g+fA(a.a),e);Zv(a.F,d)}function gx(a,b){if(A(a.R,199))a.R.Jd(b);else if(A(a.R,70))a.R.Fd(T(G(I,1),l,1,3,[b]));else throw new Z(zc);}
+function Qu(a,b){var d,e,f,g,h,n;f=a.Zd().c;$A(f,0,f.a.b.length);n=new Ie;a.Q&&Le(n,a.Q);e=h=0;for(g=b.length;e<g;++e)if(d=b[e],-1!=vq(a.n,d))n.b[n.b.length]=d,++h;else throw new J("Given column at index "+h+" does not exist in Grid");if(a.n.b.length!=n.b.length){d=a.n;Yh(n);for(d=new kl(d);d.b<d.d.Sc();)e=(P(d.b<d.d.Sc()),d.d.Me(d.c=d.b++)),-1!=vq(n,e)&&PB(d);Ju(n,a.n)}a.n=n;n=Su(a);XA(f,0,n.b.Sc());MB(a);for(f=new kl(a.n);f.b<f.d.Sc();)d=(P(f.b<f.d.Sc()),f.d.Me(f.c=f.b++)),d.g&&yB(d.g.a);for(n=
+new kl(a.C.d);n.b<n.d.Sc();)f=(P(n.b<n.d.Sc()),n.d.Me(n.c=n.b++)),QB(f);for(n=new kl(a.w.d);n.b<n.d.Sc();)f=(P(n.b<n.d.Sc()),n.d.Me(n.c=n.b++)),QB(f);f=a.j;if(!f.a)for(f=new RB(Iu(new Fq(f.b.n)).b.Bc());f.b.Hc();)f.b.Ic();Zk(a,new Zw)}function SB(a,b){var d;if(!b)throw new J("dataSource can't be null.");a.R.Ad();a.q&&iu(a.q,null);a.q=b;iu(b,new TB(a,b));d=a.u.a.k;0!=d&&eu(a.u.a,0,d);UB(a)}
+function UB(a){var b,d;d=(b=a.q,Id(b,b.size,b.Sc).bind(b)());-1==d&&a.V&&a.V.tc()&&(d=Xz(a.Zd().a));0<d&&du(a.u.a,0,d)}
+function ux(a,b){if(!b)throw new J("Selection model can't be null");a.R&&a.R.Bd(null);a.R=b;b.Bd(a);var d=a.R.yd(),e;if(a.P!=d){a.P&&(a.P&&(e=a.P,e.c&&Ix(e)),e=a.Q,a.Q=null,LB(a,e),VB(a.c,-1));if(a.P=d){VB(a.c,1);a.Q=new WB(a,d);vB(a,a.Q,0);d=a.Q;XB(d);YB(d,-1);if(d.a)throw new us("can't set the selection column editable");ZB(d,!1);d.a=!0}else a.Q=null,ku(a.u.a,0,a.u.a.k);MB(a)}}
+function zB(a,b){var d,e,f,g;d=0;for(g=b.Bc();g.Hc();)f=g.Ic(),e=Yq((W(),f)),0>e?(e=a.$,W(),rr.lc(e,f)):d|=e;0<d&&(-1==a.X?Uq((W(),a.$),d|(a.$.__eventBits||0)):a.X|=d)}function MB(a){var b,d;d=a.A;for(b=0;b<a.A;b++)Tu(a,b);-1==d?d=0:a.Q&&++d;a=a.u.c;var e=d,f;if(0>e||e>a.a.b.length)throw new J("count must be between 0 and the current number of columns ("+a.a.b.length+")");f=a.b;if(e!=f){a.b=e;if(Hy(a.c))for((d=e>f)?b=f:(b=e,e=f);b<e;b++)Lz(a.c.j,b,d),Lz(a.c.a,b,d),Lz(a.c.f,b,d);Ky(a.c.v)}}
+function $B(a,b){gs();var d;d=wi(a,Cc);if(null==d?null!=b:d!==b)null!=d&&zi(a,d),null!=b&&mi(a,b),a[Cc]=b}function aC(a,b){gs();a.yc(b)}y(217,618,Dc);_.Ac=function(){throw new us("Cannot add widgets to Grid with this method");};_.rc=function(){this.S.Z==this&&this.S.uc()};_.sc=function(){this.S.Z==this&&this.S.vc()};_.Zd=bC;_.Bc=function(){throw new us("Cannot iterate through widgets in Grid this way");};_.uc=function(){Ts(this);0==this.Zd().a.k&&this.q&&UB(this)};
+_.gc=function(a){var b,d,e,f;if(this.t){f=(Q(),R).pb(a);if(d=Bi(f)){a:{for(d=f;d&&d!=(W(),this.$);){if(e=!!d&&1==d.nodeType)if(e=d.className||"",-1!=ne(e,hs((W(),this.$))+wc)){d=!0;break a}d=d.parentNode}d=!1}d=!d}if(d){d=Ru(this.u,f);e=a.type;if(d)b=d._c(f),e===Bb?this.e=b:!b&&e===Ja&&(b=this.e);else if(e===Ka||e===Ab||e===zb)b=Mu(this.c),d=this.c.c;else return;e=this.v;var g,h,n;h=b.c;n=b.a;g=Su(e.b).a.Me(n);var p=e.f,q=Yt(e.b.q,h);p.c=h;p.b=q;p.a=null;h=Nu(Iu(new Fq(e.b.n)),g);Pw(e,n,h,g);e.a=
+b.b;a:if(e=d,0!=this.s.w)W(),128==Yq((Q(),a).type)&&27==(a.keyCode|0)&&cC(this.s),e=!0;else{if(e==this.u.a&&this.s.j){W();if(2==Yq((Q(),a).type)){dC(this.s,this.v.f.c);e=!0;break a}if(128==Yq(a.type)&&13==(a.keyCode|0)){dC(this.s,this.c.g);e=!0;break a}}e=!1}if(!e){os(this,a);this.V.gc(a);(f=$w(this,f))||(!this.k||d!=this.u.j||this.v.d<this.u.c.b?f=!1:(W(),4==Yq((Q(),a).type)&&1==R.mb(a)||Yq(a.type)==Hb?(f=this.r,f.d=Dr(new Vu(f,a,this.D)),R.qb(a),a.stopPropagation(),f=!0):f=!1));if(!f&&!(f=EB(this,
+a,d))){a:{if(d==this.u.a&&(f=this.v.c,Q(),A(f.d,67))){d=f.d;if(f=ps(Cx(),a.type))if(le(Gb,(Q(),a).type)||Bb===a.type&&1==R.mb(a)){Ix(d);d.c=Dr(new Rx(d));f=Dx(d,R.pb(a));d=d.a;e=d.f.b.R;A(e,148)&&e.Hd();e=d.f;b=fv(Hm(e.b))+((Hx(e).offsetHeight||0)|0);e=fv(Gx(d.f))-1;g=(W(),d.f.b.$);for(n=0;g;)n-=(g.scrollTop||0)|0,g=ii((Q(),g));g=n;d.g=g+b+100;d.b=g+e-100;d.c=100;50>d.b-d.g&&(e=50-(d.b-d.g),d.g-=e/2|0,d.b+=e/2|0,d.c-=e/2|0);d.d=Dr(d.e);e=d.f;b=d.g;g=d.b;n=d.c;h=d.f;p=Yt(h.b.q,f);h=h.b.R.zd(p);d.a=
+new Qx(e,b,g,n,!h);d=d.a;d.p=!0;Kx(d.t,f,d.s);d.j=f;d.p&&10<=d.f&&(d.g=(!Ae&&(Ae=Be()?new Ce:new He),Ae)._(d,Hm(d.t.b)));R.qb(a);a.stopPropagation();f=!0}else throw new Z("received unexpected event: "+a.type);if(f){f=!0;break a}}f=!1}if(!f)a:if(le((Q(),a).type,Ka)){e=-1;d=this.u.a;switch(a.keyCode|0){case 36:0<d.k&&(e=0);break;case 35:0<d.k&&(e=d.k-1);break;case 33:f=gu(this.u);f.b<f.a&&(d=BB(this),e=d-(f.a-f.b),0>e&&(e=0));break;case 34:f=gu(this.u);f.b<f.a&&(e=CB(this),e+=f.a-f.b,e>=d.k&&(e=d.k-
+1));break;default:f=!1;break a}OB(this,e,(ox(),px),0);f=!0}else f=!1}if(!f&&(f=new Em(T(G(z,1),l,2,4,[Ka,Ja])),-1!=kA(f,a.type)))a:if(f=this.c,d=this.v,le((Q(),a).type,Ja))Uu(f,d.f.c,d.e,Ru(f.j.u,d.a)),Hm(f.j).focus();else if(a.type===Ka){b=f.g;e=f.c;d=f.a.b;switch(a.keyCode|0){case 40:++b;break;case 38:--b;break;case 39:if(f.a.a>=Su(f.j).b.Sc())break a;d=f.a.a;break;case 37:if(0==d)break a;--d;break;case 9:a.shiftKey?e=eC(f,f.c):e=fC(f,f.c);if(e==f.c)break a;break;default:break a}e!=f.c?e==f.j.u.a?
+b=f.d:e==f.j.u.j?b=f.f:b=f.e:0>b?(e=eC(f,e),e==f.c?b=0:e==f.j.u.a?b=CB(f.j):b=e.ad()-1):b>=f.c.ad()&&(e=fC(f,e),e==f.c?b=f.c.ad()-1:e==f.j.u.a?b=BB(f.j):b=0);0!=e.ad()&&(R.qb(a),a.stopPropagation(),Uu(f,b,d,e))}}}}};_.$d=function(){IB(this)};_._d=function(){KB(this)};_.Cc=jy;_.k=!1;_.p=!1;_.t=!0;_.A=0;_.P=null;var gC=E(217);function Xu(a){var b,d;d=a.o.R.yd()?(ti(ti(a.o.u.j.j)).offsetWidth||0)|0:0;for(b=0;b<a.o.A;b++)d+=Hw(Tu(a.o,b));return d}function Au(a){li(a.k);li(a.e);zi(a.o.v.a,"dragged")}
+function Fu(a,b){b&&(a.c=(Et(),Kt(b.d)),a.a=0);var d,e,f,g;e=a.c-ri(a.k);d=Xu(a);e<d&&(e=C(d));d=hC(iC(a.j));f=a.j;if(f.b){for(g=f.b;f=g.a[1];)g=f;f=g}else f=null;f=hC(f);g=a.o.u.r.k;e+g<d.a?e=d.a-g+a.a:e+g>f.a&&(e=f.a-g+a.a);e=L(0,ph(e,a.k.clientWidth|0));e-=(a.e.clientWidth|0)/2|0;a.e.style[Ub]=e+(U(),w);Mw(a,a.c)}
+function Mw(a,b){var d,e,f,g,h;h=a.o.u.r.k;f=b-ri(a.o.u.j.j);e=(e=jC(a.j,new Y(f),!0))?new kC(e):null;a:{d=new Y(f);var n,p;n=null;for(p=a.j.b;p;){g=lC(d,p.d);if(0==g){d=p;break a}0>=g?p=p.a[0]:(n=p,p=p.a[1])}d=n}d=d?new kC(d):null;g=e?e.d.a-f:Ec;f=d?f-d.d.a:Ec;h=0-h;g>f?(a.i=d.e.a,h+=d.d.a):(a.i=e.e.a,h+=e.d.a);h+=a.a;e=Xu(a);(h<e||h>((a.o.u.j.j.offsetWidth||0)|0)||0>h)&&(h=-1E7);a.f.style[Ub]=h+(U(),w)}function mC(a){this.o=a;this.b=new nC(this);this.j=new nB}y(253,1,{},mC);_.a=0;_.c=0;_.g=0;
+_.i=0;E(253);function nC(a){this.a=a}y(254,1,{},nC);E(254);function yu(a){this.a=a}y(255,1,{},yu);_.hc=function(a){1==Cr(a.d)&&(a.a=!0,Si(a.d),st(this.a.d.a),this.a.d=null)};E(255);function oC(a){this.a=a}y(256,1,{},oC);_.pd=function(){Zk(this.a,new xw)};E(256);function pC(a){this.a=a}y(257,1,{},pC);E(257);function qC(a){this.a=a}y(258,1,{},qC);_.Cd=function(){HB(this.a)};E(258);function rC(a){this.a=a}y(119,1,{119:1},rC);
+_.ud=function(a){if(13==Qi(a.d)){var b=this.a.U,d=a.c.c;a=a.d;a=!!(Q(),a).shiftKey;GB(b,d,a)}};E(119);function sC(a){this.a=a}y(259,1,{},sC);_.td=function(){this.a.p=!1};E(259);function lu(a,b,d){a.a.o=$(b,d);Zk(a.a,new hu(a.a.o))}function TB(a,b){this.a=a;this.b=b}y(260,1,{},TB);E(260);function AB(a,b){this.a=a;this.b=b}y(261,1,{},AB);_.hb=function(){this.a.p||this.b.td(new hu(this.a.o))};E(261);function tC(a){a=a.ae();return 0<a?a:0>a?1:0}function uC(a){a=a.be();return 0<=a?a:Ec}
+function vC(a){a=a.ce();return 0<=a?a:4.9E-324}function yB(a){a.b||(a.b=!0,Lh((Eh(),Fh),a.a))}function wC(a){this.d=a;this.a=new xC(this)}y(227,1,{},wC);_.b=!1;_.c=0;E(227);function xC(a){this.a=a}y(243,1,{},xC);
+_.hb=function(){if(this.a.b)if(this.a.d.C.b||this.a.d.w.a)10>this.a.c?(Lh((Eh(),Fh),this),++this.a.c):(this.a.c=0,Ct((Eh(),Fh),this));else if(this.a.d.p)Ct((Eh(),Fh),this);else{var a=this.a;a.b=!1;a.c=0;var b,d,e;e=Jt(a.d.u.D);for(d=new RB(Su(a.d).b.Bc());d.b.Hc();)b=d.b.Ic(),0<=b.o?e-=b.o:0<=b.ce()&&(e-=b.ce());if(0>e){var f,g;e=new yC;b=Su(a.d);for(d=0;d<b.b.Sc();d++)zC(e,K(d),new Y(b.a.Me(d).o));Hz(a.d.u.c,e);e=new yC;for(g=0;g<b.b.Sc();g++)if(d=b.a.Me(g),f=0>d.o)f=Zu(d.g.u.c,Nu(Su(d.g),d)),f<
+vC(d)?zC(e,K(g),new Y(d.ce())):f>uC(d)&&zC(e,K(g),new Y(d.be()));Hz(a.d.u.c,e)}else{var h,n,p,q,r,t,s,B;r=!0;n=f=0;d=new hl;q=new Ie;b=new kh;e=Su(a.d);for(p=new RB(e.b.Bc());p.b.Hc();)g=p.b.Ic(),h=g.o,s=0<=h,h=L(h,g.ce()),r=r&&(-1==g.ae()||g==a.d.Q),s?(ql(b,K(e.a.Ne(g)),new Y(h)),n+=h):(q.b[q.b.length]=g,ql(b,K(e.a.Ne(g)),new Y(-1)));Hz(a.d.u.c,b);for(q=new kl(q);q.b<q.d.Sc();){g=(P(q.b<q.d.Sc()),q.d.Me(q.c=q.b++));p=r?1:g.ae();h=Zu(g.g.u.c,Nu(Su(g.g),g));s=uC(g);if(s=h<s&&0<p&&g!=a.d.Q)f+=p,il(d,
+g);n+=h;ql(b,K(e.a.Ne(g)),new Y(h))}q=Jt(a.d.u.D)-n;if(!(0>=q||0>=f)){do for(h=!1,B=q/f,t=sn(new tn(d.a));t.a.Hc();)g=un(t),p=tC(g),r=e.a.Ne(g),n=pl(b,K(r)).a,s=uC(g),g=n+B*p,s<=g&&(t.a.Jc(),f-=p,h=!0,q-=s-n,ql(b,K(r),new Y(s)));while(h);if(!(0>=f&&0==d.a.Sc())){s=0;yt((ut(),!vt&&(vt=new wt),ut(),vt))||zt()||-1!=Bt().indexOf("PhantomJS")?(h=C(q/f),s=C(q-h*f)):h=q/f;for(q=sn(new tn(d.a));q.a.Hc();)g=un(q),p=tC(g),r=e.a.Ne(g),n=pl(b,K(r)).a,g=n+h*p,0<s&&(g+=1,--s),ql(b,K(r),new Y(g)),f-=p;do{p=!1;s=
+0;for(f=new RB(e.b.Bc());f.b.Hc();)g=f.b.Ic(),h=vC(g),r=e.a.Ne(g),n=pl(b,K(r)).a,(q=0>g.o)&&n<h&&(ql(b,K(r),new Y(h)),s+=h-n,p=!0,d.a.Ge(g));f=0;for(r=sn(new tn(d.a));r.a.Hc();)g=un(r),f+=tC(g);s/=f;for(f=sn(new tn(d.a));f.a.Hc();)g=un(f),r=s*tC(g),g=e.a.Ne(g),ql(b,K(g),new Y(pl(b,K(g)).a-r))}while(p)}Hz(a.d.u.c,b)}}}};E(243);function AC(a){this.a=a}y(232,1,{},AC);_.Uc=function(a,b){var d,e;for(e=b.Bc();e.Hc();)d=e.Ic(),Ou(this.a,d.a)};
+_.Vc=function(a,b){var d,e,f,g;e=this.a.L;d=a.c;e.c=a.d;e.b=null;e.a=d;for(e=b.Bc();e.Hc();)if(d=e.Ic(),g=Ou(this.a,d.a).d,A(g,67))try{f=Ou(this.a,d.a);var h=this.a.H,n=Nu(Iu(new Fq(this.a.n)),f);g=f;h.a=d;Pw(h,d.a,n,g)}catch(p){if(p=Ph(p),A(p,10))gs(),de(gC);else throw Qh(p);}};
+_.Wc=function(a,b){var d,e,f,g;e=a.d;d=this.a.L;g=Yt(this.a.q,e);var h=a.c;d.c=e;d.b=g;d.a=h;for(e=b.Bc();e.Hc();)if(d=e.Ic(),g=Ou(this.a,d.a).d,A(g,67))try{f=Ou(this.a,d.a);var n=this.a.H,p=Nu(Iu(new Fq(this.a.n)),f);g=f;n.a=d;Pw(n,d.a,p,g);var q=this.a.H;d=void 0;d=(W(),Ii());ki(q.a.c);q.a.c.appendChild(d)}catch(r){if(r=Ph(r),A(r,10))gs(),de(gC);else throw Qh(r);}};_.Xc=function(a,b){var d,e;for(e=new Bv(new Cv(b.a.a,b.c,b.c+b.b),!0);e.c+e.d<e.a.b.length;)d=Ev(e),Ou(this.a,d.a)};
+_.Yc=function(a,b){var d,e,f,g,h,n,p,q,r,t,s;e=a.d;d=a.c;r=Yt(this.a.q,e);p=null!=r;t=this.a.K;t=ni(t);t=-1!=oi(d.className||"",t);t!=p&&is(d,this.a.K,p);is(d,this.a.N,0!=a.d%2);var B=this.a.L;B.c=e;B.b=r;B.a=d;if(p)if(is(d,this.a.M,this.a.R.zd(r)),this.a.O)try{q=this.a.O;var D=q.b;h=this.a.L;var O=q.a.c,Ga;Ga=BC(CC);DC(Ga,"index",null,new EC(h));DC(Ga,$a,null,new FC(h));DC(Ga,Lc,null,new GC(h));Ga.grid=O;g=HC(D,Ga);$B(d,g)}catch(sb){if(sb=Ph(sb),A(sb,10))gs(),de(gC);else throw Qh(sb);}else $B(d,
+null);else t&&(is(d,this.a.M,!1),$B(d,null));d=this.a.c;if(d.g==a.d&&d.c==d.j.u.a)a.c!=d.i&&(d.i&&is(d.i,d.j.J,!1),d.i=a.c,is(d.i,d.j.J,!0));else if(d.i==a.c||d.c!=d.j.u.a&&d.i)is(d.i,d.j.J,!1),d.i=null;for(e=b.Bc();e.Hc();){d=e.Ic();g=Ou(this.a,d.a);h=Nu(Iu(new Fq(this.a.n)),g);IC(this.a.c,d,this.a.u.a);if(p&&this.a.g)try{Pw(this.a.f,d.a,h,g);var Ha=this.a.g;n=HC(Ha.b,JC(this.a.f,Ha.a.c));$B(d.c,n)}catch(Hj){if(Hj=Ph(Hj),A(Hj,10))gs(),de(gC);else throw Qh(Hj);}else(p||t)&&$B(d.c,null);q=g.d;try{var fy=
+this.a.H,D=d,O=g;fy.a=D;Pw(fy,D.a,h,O);A(q,67)?(f=q,p?(t||wu(this.a.H,!0),s=g.de(r),Jx(f,this.a.H,s)):wu(this.a.H,!1)):p?(s=g.de(r),q.Tc(this.a.H,s)):ki(d.c)}catch(Ij){if(Ij=Ph(Ij),A(Ij,10))gs(),de(gC);else throw Qh(Ij);}}};E(232);function Mu(a){return new nv(a.g,a.a.b,a.b)}function fC(a,b){if(b==a.j.u.j)b=a.j.u.a;else if(b==a.j.u.a)b=a.j.u.f;else return b;return 0==b.ad()?fC(a,b):b}function eC(a,b){if(b==a.j.u.f)b=a.j.u.a;else if(b==a.j.u.a)b=a.j.u.j;else return b;return 0==b.ad()?eC(a,b):b}
+function VB(a,b){var d;d=a.a;d=0==b?d:new Xt(d.b+b,d.a+b);a.a=d}
+function Uu(a,b,d,e){var f,g,h,n;if(b!=a.g||!fu(a.a,d)||e!=a.c){n=a.g;a.g=b;b=a.a;if(e==a.j.u.a)OB(a.j,a.g,(ox(),px),0),a.a=$(d,1);else{h=0;f=ti(e.bd(a.g));do{g=parseInt(f[dc])|0;g=$(h,g);if(g.b<=d&&d<g.a){a.a=g;break}f=Ci((Q(),f));++h}while(f)}f=Nu(Iu(new Fq(a.j.n)),Ou(a.j,d));if(f>=a.j.u.c.b){h=a.j.u;f=(ox(),px);hz(f,10);if(0>d||d>=h.c.a.b.length)throw new Xh(mc+d+oc);if(d<h.c.b)throw new J(mc+d+" is frozen.");h=h.v;var p,q;p=Nz(h.c.c,$(0,h.c.c.b));g=Nz(h.c.c,$(0,d))-p;d=g+Zu(h.c.c,d);q=h.c.r.k;
+p=q+Jt(Hm(h.c))-p;jw(h.c.F)&&(p-=Gt());d=ez(f,g,d,q,p,10);Zv(h.c.r,d)}a.c==e?KC(b,a.a)&&n!=a.g?a.c.cd(n):(KB(a.j),IB(a.j)):(d=a.c,a.c=e,d==a.j.u.a?a.d=n:d==a.j.u.j?a.f=n:a.e=n,KC(b,a.a)?d.cd(n):(KB(a.j),IB(a.j),d==a.j.u.a&&d.cd(n)))}a.c.cd(a.g)}function IC(a,b,d){var e,f;e=b.d.d;f=ru($(b.a,parseInt(b.c[dc])|0),a.a);d==a.c&&(e==a.g&&f?a.b!=b.c&&(a.b&&is(a.b,a.j.d,!1),a.b=b.c,is(a.b,a.j.d,!0)):a.b==b.c&&(is(a.b,a.j.d,!1),a.b=null))}
+function LC(a){this.j=a;this.c=this.j.u.a;this.a=$(0,1);zB(a,new Em(T(G(z,1),l,2,4,[Ka,Ja])))}y(224,1,{},LC);_.b=null;_.d=0;_.e=0;_.f=0;_.g=0;_.i=null;E(224);function Hw(a){return Zu(a.g.u.c,Nu(Su(a.g),a))}function ZB(a,b){if(b!=a.e&&0!=a.g.s.w)throw new Z("Cannot change column editable status while the editor is active");a.e=b}
+function xB(a,b){var d;if(a.g&&b)throw new Z("Column already is attached to a grid. Remove the column first from the grid and then add it. (in: "+MC(a)+")");a.g&&yB(a.g.a);a.g=b;a.g&&(yB(a.g.a),d=a.g.C.a)&&(d=Gu(d,a),d.b=a.i,d.e=(NC(),OC),d.c.ie())}function PC(a,b){if(!b)throw new J("Renderer cannot be null.");b!=a.d&&(a.d=b,a.g&&HB(a.g))}function QC(a,b){Mt(a.o,b)||(a.o=b,a.g&&yB(a.g.a));return a}
+function MC(a){var b,d;b="";a.i.length?b+='header:"'+a.i+'" ':b+="header:empty ";a.g?(d=Nu(Iu(new Fq(a.g.n)),a),-1!=d?b+="attached:#"+d+" ":b+="attached:unindexed "):b+="detached ";b+="sortable:"+a.n+" ";return fe(a.cZ)+"["+xe(b)+"]"}y(72,1,{72:1});_.ae=qh;_.be=RC;_.ce=Uz;_.ee=function(a){return QC(this,a)};_.tS=function(){return MC(this)};_.e=!0;_.f=-1;_.i="";_.j=-1;_.k=10;_.n=!1;_.o=-1;var Pu=E(72);function SC(a){this.a=a}y(231,1,{},SC);
+_.Tc=function(a,b){var d;this.b||Jd(b)||(gs(),de(gC),MC(this.a),this.b=!0);null==b?d="":d=Xd(b);Ai(a.a.c,d)};_.b=!1;E(231);function TC(a){this.b=a;new kh}y(230,1,{},TC);_.a=!1;E(230);
+function cC(a){if(!a.j)throw new Z("Cannot cancel edit: editor is not enabled");if(0==a.w)throw new Z("Cannot cancel edit: editor is not in edit mode");var b,d;for(d=My(new Ny(a.g));d.a.Hc();)b=Oy(d),aC(b,null);Wk(a.g);b=a.s;aC(b,null);li((W(),b.$));b=a.d;aC(b,null);li((W(),b.$));ki(a.i);ki(a.e);li(a.i);st(a.v.a);UC(a);Ry(a.k.Zd(),(ow(),pw),!1);b=a.n;d=new VC(a.k,a.r,null);b.a.e.cancel?HC(b.a.e.cancel,WC(b.a,d,!0)):(XC(d,null,null),d.a&&d.a.ge(d));Wk(b.a.b);a.w=0;YC(a,!0)}
+function UC(a){var b;for(b=ti(a.i);b;)zi(b,db),b=Ci((Q(),b));a.f.a.He()}function dC(a,b){if(!a.j)throw new Z("Cannot edit row: editor is not enabled");if(0!=a.w)throw new Z("Cannot edit row: editor already in edit mode");a.r=b;a.w=1;fu(gu(a.k.Zd()),b)?ZC(a):nx(a.k,b,(ox(),iz))}
+function $C(a){if(!a.j)throw new Z("Cannot save: editor is not enabled");if(3!=a.w)throw new Z("Cannot save: editor is not in edit mode");a.w=4;Hs(a.s,!1);Hs(a.d,!1);Me(a.u,5E3);var b=a.n,d=new VC(a.k,a.r,a.t);b.a.e.save?(HC(b.a.e.save,WC(b.a,d,!0)),b.a.d.refresh()):(XC(d,null,null),d.a&&d.a.ge(d),Pm(Qm(T(vl(I),l,1,3,[(nm(),"No editor save method set. You must define 'grid.editor.handler.save \x3d function(req){}'.")]))));YC(a,!0)}
+function ZC(a){var b;if(1==a.w){a.w=2;Me(a.b,5E3);b=new VC(a.k,a.r,a.a);var d=a.n,e,f,g;if(d.a.e.bind)HC(d.a.e.bind,WC(d.a,b,!1));else{for(f=new RB(Iu(new Fq(d.a.c.n)).b.Bc());f.b.Hc();)if(e=f.b.Ic(),e.e){g=(H(),""+e.de(Yt(b.c.q,b.d)));e=X(aD(d.a,e.c));for(var h=void 0,n=void 0,p=void 0,q=void 0,n=e.c,p=0,q=n.length;p<q;++p)h=n[p],h.value=g}XC(b,null,null);b.a&&b.a.ge(b)}Ry(a.k.Zd(),(ow(),pw),!0);YC(a,!1)}}function bD(a){a.e.style[Ub]=-a.k.u.r.k+(U(),w)}
+function YC(a,b){var d;if(A(a.k.R,70))if(HB(a.k),d=cD(Gu(a.k.C.a,a.k.Q)),d.a.disabled=!b,b){var e=hs((W(),d.$))+"-"+Vb;is((W(),d.$),e,!1)}else e=hs((W(),d.$))+"-"+Vb,is((W(),d.$),e,!0)}
+function dD(){this.i=(W(),Ji());this.e=Ji();this.p=Ji();this.q=Ji();this.c=Ji();this.o=Ji();this.g=new kh;this.u=new eD;this.t=new fD(this);this.b=new gD;this.a=new hD(this);this.f=new hl;this.s=new Ks;Js(this.s,"Save");ls(this.s,new iD(this),(Bk(),Bk(),Ck));this.d=new Ks;Js(this.d,"Cancel");ls(this.d,new jD(this),Ck)}y(223,1,{},dD);_.j=!1;_.r=-1;_.w=0;_.A=null;E(223);function eD(){}y(233,50,{},eD);_.db=kD;E(233);function lD(a){a.a.w=3;var b=a.a;Hs(b.s,!0);Hs(b.d,!0);Ne(a.a.u)}
+function fD(a){this.a=a}y(234,1,{},fD);_.fe=function(){4==this.a.w&&(lD(this),gs(),de(gC))};_.ge=function(){4==this.a.w&&(lD(this),cC(this.a))};E(234);function gD(){}y(235,50,{},gD);_.db=kD;E(235);function hD(a){this.a=a}y(236,1,{},hD);_.fe=function(){2==this.a.w&&(this.a.w=0,Ne(this.a.b),gs(),de(gC),Ry(this.a.k.Zd(),(ow(),pw),!1),YC(this.a,!0))};
+_.ge=function(a){if(2==this.a.w){this.a.w=3;Ne(this.a.b);var b=this.a;a=lA(this.a.k.Zd().a,a.d);var d,e,f,g,h,n,p,q,r,t;g=Hm(b.k);b.v=ms(b.k,new mD(b),(Rv(),Sv));g.appendChild(b.i);b.i.appendChild(b.e);b.i.appendChild(b.p);for(n=0;n<a.cells.length;n++){d=a.cells[n];var s=e=f=void 0;f=(W(),Ji());s=Jt(d);e=It(d);var B=(d.offsetTop||0)|0,D=void 0,D=f.style;D[Ub]=((d.offsetLeft||0)|0)+(U(),w);D.top=B+w;D[v]=s+w;D[u]=e+w;d=f;b.e.appendChild(d);e=Ou(b.k,n);e.e&&(f=aD(b.n.a,e.c))&&(ql(b.g,e,f),e=(W(),f.$),
+d.appendChild(e),aC(f,b.k))}ji(b.p,b.q)||(b.p.appendChild(b.q),b.p.appendChild(b.c));n=b.s;d=(W(),n.$);b.c.appendChild(d);aC(n,b.k);n=b.d;d=(W(),n.$);b.c.appendChild(d);aC(n,b.k);bD(b);d=b.k.Zd().a;n=Dz(d.n.u,a);d=si(d.j);g=(Q(),R).sb(g);g=n+d-g;(h=b.k.u.f.j,p=Ft(h).top,q=Ft(a).bottom,r=(b.p.offsetHeight||0)|0,t=q+r,t<p)?(b.i.style.top=g+(U(),w),b.i.style[vc]=""):(b.i.appendChild(b.e),h=(Hm(b.k).offsetHeight||0)|0,b.i.style[vc]=h-g-((a.offsetHeight||0)|0)+(U(),w),b.i.style.top="");b.i.style[v]=Jt(b.k.u.D)+
+(U(),w)}};E(236);function iD(a){this.a=a}y(237,1,{},iD);_.Gb=function(){$C(this.a)};E(237);function jD(a){this.a=a}y(238,1,{},jD);_.Gb=function(){cC(this.a)};E(238);function nD(a){this.a=a}y(239,1,{},nD);_.td=function(a){fu(a.a,this.a.r)&&ZC(this.a)};E(239);function mD(a){this.a=a}y(240,1,{},mD);_.pd=function(){bD(this.a)};E(240);
+function XC(a,b,d){var e;if(a.b)throw new Z("An EditorRequest must be completed exactly once");a.b=!0;e=a.c.s;null==b?li(e.o):(Ai(e.o,b),hi(e.o)||e.q.appendChild(e.o));UC(a.c.s);if(d)for(b=new kl(d);b.b<b.d.Sc();){e=(P(b.b<b.d.Sc()),b.d.Me(b.c=b.b++));d=a.c.s;var f=void 0;if(3!=d.w&&4!=d.w)throw new Z("Cannot set cell error status: editor is neither active nor saving.");ps(d.f,e)||(f=hi(Hm(pl(d.g,e))),mi(f,db),il(d.f,e))}}function VC(a,b,d){this.c=a;this.d=b;this.a=d}y(115,1,{},VC);_.b=!1;_.d=0;E(115);
+function wB(a,b){var d,e;for(e=new kl(a.d);e.b<e.d.Sc();)d=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++)),oD(d,b)}function pD(a,b){var d,e;e=a.he();e.d=a;for(d=0;d<a.c.n.b.length;++d)oD(e,Tu(a.c,d));BA(a.d,b,e);a.ie();return e}function Hu(a,b){try{return Gv(a.d,b)}catch(d){d=Ph(d);if(A(d,28))throw new J("Row with index "+b+" does not exist");throw Qh(d);}}function NB(a,b){var d,e;for(e=new kl(a.d);e.b<e.d.Sc();)d=(P(e.b<e.d.Sc()),e.d.Me(e.c=e.b++)),sl(d.c,b)}
+function qD(a,b){Fv(a.d,b);a.a=!0;Lh((Eh(),Fh),new rD(a))}y(154,1,{});_.e=!0;E(154);function sD(){this.d=new Ie;this.a=!1}y(220,154,{},sD);_.he=function(){return new tD};_.ie=function(){this.a=!0;Lh((Eh(),Fh),new rD(this))};_.a=!1;E(220);function rD(a){this.a=a}y(159,1,{},rD);_.hb=function(){this.a.a&&(this.a.a=!1,IB(this.a.c))};E(159);function uD(a){if(a.e!=(NC(),vD))throw new Z("Cannot fetch HTML from a cell with type "+a.e);return a.b}
+function wD(a){if(a.e!=(NC(),OC))throw new Z("Cannot fetch Text from a cell with type "+a.e);return a.b}function cD(a){if(a.e!=(NC(),xD))throw new Z("Cannot fetch Widget from a cell with type "+a.e);return a.b}function yD(a,b){if(1>b)throw new J("Colspan cannot be less than 1");a.a=b;a.c.ie()}y(155,1,{});_.a=1;_.b=null;_.d=null;E(155);function zD(){this.e=(NC(),OC)}y(221,155,{},zD);E(221);function oD(a,b){var d;d=a.je();d.c=a.d;ql(a.c,b,d)}
+function QB(a){var b,d,e,f;for(d=My(new Ny(a.c));d.a.Hc();)b=Oy(d),yD(b,1);for(f=sn(new tn(a.b));f.a.Hc();)if(e=un(f),AD(a,e)){b=0;for(d=e.Bc();d.Hc();)d.Ic(),++b;yD(pl(a.b,e),1>b?1:b)}else yD(pl(a.b,e),1)}function AD(a,b){var d,e,f;d=new Fq(Iu(new Fq(a.d.c.n)));if(!BD(d,b))return!1;for(e=0;e<d.b.length;++e)if(b.we((Wh(e,d.b.length),d.b[e]))){for(f=1;f<b.Sc();++f)if(!b.we((Wh(e+f,d.b.length),d.b[e+f])))return!1;return!0}return!1}
+function Gu(a,b){var d;a:{var e;for(e=sn(new tn(a.b));e.a.Hc();)if(d=un(e),d.we(b))break a;d=null}return d?pl(a.b,d):pl(a.c,b)}y(156,1,{});_.e=null;E(156);function tD(){this.c=new kh;this.b=new kh}y(222,156,{},tD);_.je=function(){return new zD};E(222);function CD(a){this.b=a;this.a=new kh}y(228,1,{},CD);_.qd=function(a){var b;b=a.g;if(a=sl(this.a,ui((Q(),b))))aC(a,null),ki(b)};
+_.rd=function(a){var b;b=a.g;1==a.f%2?mi(ii((Q(),b)),"stripe"):zi(ii((Q(),b)),"stripe");b=a.f;ki(a.g);a=this.b.u.a.b;if(-1>b||b>=a.f.a.k)throw new J("invalid row index: "+b+", while the body only has "+a.f.a.k+" rows.");var d=K(b);a.a.Ze(d)?MA(lB(a.a,K(b)),50):(!a.d&&(a.d=ms(a.f,a.c,(Rv(),Sv))),d=new rB(a,b),Yu(a.a,K(b),d),dA(a.f.u,d.e,a.f.r.k,oA(a.f.a,b)+a.f.a.f),b=d.e,b.style[v]=Pz(a.f.c)+(U(),w),a.f.a.j.appendChild(b),d.e.style[v]=Jt(d.i.f.D)+w,MA(d,50),d.g.colSpan=d.i.f.c.a.b.length,b=hs(Hm(d.i.f)),
+js(d.e,b+wc),js(d.a,b+xc),dA(a.f.u,d.a,0,Dz(d.i.f.u,d.e)-d.i.f.a.f),a.f.w.appendChild(d.a),hi(a.f.w)||(Hm(a.f).appendChild(a.f.w),a.b=Jt(d.a)),a.e.rd(d),pB(d)?(d.e.style[m]="",d.a.style[m]=""):(d.e.style[m]=(Yi(),nb),d.a.style[m]=nb),zA(a.f.a))};E(228);function DD(a,b){var d;d=Hu(a,b);Fv(a.d,b);a.b=!0;Lh((Eh(),Fh),new ED(a));d==a.a&&FD(a,null)}
+function FD(a,b){if(b!=a.a){if(b&&-1==vq(a.d,b))throw new J("Cannot set a default row that does not exist in the container");a.a&&(a.a.a=!1);b&&(b.a=!0);a.a=b;a.b=!0;Lh((Eh(),Fh),new ED(a))}}function GD(){this.d=new Ie;this.b=!1}y(219,154,{},GD);_.he=function(){return new HD};_.ie=function(){this.b=!0;Lh((Eh(),Fh),new ED(this))};_.b=!1;E(219);function ED(a){this.a=a}y(117,1,{},ED);_.hb=function(){this.a.b&&(this.a.b=!1,KB(this.a.c))};E(117);function ID(){this.e=(NC(),OC)}y(114,155,{114:1},ID);E(114);
+function HD(){this.c=new kh;this.b=new kh;this.a=!1}y(113,156,{113:1},HD);_.je=function(){return new ID};_.a=!1;E(113);function ax(){ax=x;cx=new JD("HEADER",0);dx=new JD("BODY",1);bx=new JD("FOOTER",2)}function JD(a,b){S.call(this,a,b)}y(80,4,{80:1,3:1,6:1,4:1},JD);var dx,bx,cx,KD=F(80,function(){ax();return T(G(KD,1),l,80,0,[cx,dx,bx])});
+function XB(a){var b,d,e;A(a.c.R,70)&&a.c.C.a&&(e=Gu(a.c.C.a,a),e.e==(NC(),xD)&&A(cD(e),95)||(d=a.c.R,b=new Ns,d=new LD(a,d),b.c||(ls(b,new Ps(b),(Bk(),Bk(),Ck)),b.c=!0),ms(b,d,(!al&&(al=new Gk),al)),Ms(b,(em(),a.b?fm:Bp)),e.b=b,e.e=(NC(),xD),e.c.ie()))}function YB(a,b){if(b!=a.o&&a.a)throw new us("The selection column cannot be modified after init");QC(a,b);return a}function WB(a,b){this.c=a;PC(this,b);this.b=this.a=!1}y(225,72,{72:1},WB);_.ae=MD;_.be=ND;_.ce=ND;
+_.de=function(a){return em(),this.c.R.zd(a)?fm:Bp};_.ee=function(a){return YB(this,a)};_.a=!1;_.b=!1;E(225);function LD(a,b){this.a=a;this.b=b}y(241,1,{},LD);E(241);function OD(){OD=x;PD=new QD;RD=new SD;TD=new UD}y(54,4,Fc);var RD,TD,PD,VD=F(54,function(){OD();return T(G(VD,1),l,54,0,[PD,RD,TD])});function QD(){S.call(this,"SINGLE",0)}y(250,54,Fc,QD);F(250,null);function SD(){S.call(this,"MULTI",1)}y(251,54,Fc,SD);F(251,null);function UD(){S.call(this,"NONE",2)}y(252,54,Fc,UD);F(252,null);
+function Lk(a){a.a.Z==a.f&&(is((W(),a.$),"opened",!1),is(a.$,Gc,!0),zn(a.a),WD(a))}
+function WD(a){var b;try{var d=It(ti($u(a.b.u.j,0))),e=(W(),a.$);Et();var f,g,h,n,p;(ut(),!vt&&(vt=new wt),ut(),vt).a.f?(p=Ui(e.style,v),g=Ui(e.style,u),n=(e.offsetWidth||0)|0,h=(e.offsetHeight||0)|0,1>h&&(h=1),1>n&&(n=10),e.style[v]=n+(U(),w),e.style[u]=h+w,f=((e.offsetHeight||0)|0)-(parseInt(e[ib])|0),e.style[u]=g,e.style[v]=p):f=((e.offsetHeight||0)|0)-(parseInt(e[ib])|0);b=d-(f/2|0);var q=a.d;b+=w;(W(),q.$).style[u]=b}catch(r){if(r=Ph(r),A(r,52))de(gC),q=a.d,a=a.b.u.j.f+w,(W(),q.$).style[u]=a;
+else throw Qh(r);}}function XD(a){this.e=new YD(this);this.b=a;this.f=new Us;Qs(this,this.f);this.d=new Ks;ls(this.d,this.e,(Bk(),Bk(),Ck));a=this.f;ys(a,this.d,(W(),a.$));this.a=new ZD(this);this.c=new $D;a=new aE(this);ls(this.d,a,(Ik(),Ik(),Jk));ls(this.c,a,Jk)}y(229,617,Wb,XD);_.uc=function(){Ts(this);Ct((Eh(),Fh),new bE(this))};E(229);function YD(a){this.a=a}y(244,1,{},YD);
+_.Gb=function(){var a=this.a;if(a.a.Z==a.f)Lk(this.a);else{a=this.a;if(a.a.Z!=a.f&&a.Z){is((W(),a.$),"opened",!0);is(a.$,Gc,!1);var b=a.f;ys(b,a.a,(W(),b.$))}a=a.d;(W(),a.$).style[u]=""}};E(244);function ZD(a){this.a=a;Us.call(this)}y(245,118,Tb,ZD);_.Cc=function(a){if(a=As(this,a)){var b=this.a,d,e;d=0<b.a.b.c;(e=!!b.Z)&&!d?(aC(b,null),li((W(),b.$))):!e&&d&&(Lk(b),d=Hm(b.b),e=(W(),b.$),d.appendChild(e),aC(b,b.b),WD(b))}return a};E(245);
+function $D(){new Ie;this.b=new Ie;var a=(et(),mt(),!0),b,d;d=(W(),Oi());this.a=Li();b=Br(this.a);d.appendChild(b);a||(b=Ni(),b=Br(b),this.a.appendChild(b));b=(Zs(),$s).Kc();d=Br(d);b.appendChild(d);this.$=b;Jf();this.$.setAttribute("role",mg.a);-1==this.X?Uq(this.$,2225|(this.$.__eventBits||0)):this.X|=2225;pi(this.$,"gwt-MenuBar");a=a?hs(this.$)+"-vertical":hs(this.$)+"-horizontal";is((W(),this.$),a,!0);this.$.style.outline="0px";this.$.setAttribute("hideFocus",rb);ls(this,new dt,(wk(),wk(),xk))}
+y(246,161,Sb,$D);_.gc=function(a){W();128==Yq((Q(),a).type)&&13==(a.keyCode|0)?(bt(this,a),Ct((Eh(),Fh),new cE(this))):bt(this,a)};E(246);function cE(a){this.a=a}y(247,1,{},cE);_.hb=function(){var a=this.a;(Zs(),$s).Lc((W(),a.$))};E(247);function aE(a){this.a=a}y(248,1,{},aE);E(248);function bE(a){this.a=a}y(249,1,{},bE);_.hb=function(){WD(this.a)};E(249);
+function dE(a,b,d){var e,f,g;f=Hu(a.b,b.d);b=Su(a.c);for(d=d.Bc();d.Hc();)if(e=d.Ic(),g=Gu(f,b.a.Me(e.a)),(NC(),xD)==g.e&&(g=cD(g),e=e.c,!g.tc())){var h=(W(),g.$);e.appendChild(h);aC(g,a.c)}}function eE(a,b,d){var e;if(a.b.d.b.length>b.d)for(b=Hu(a.b,b.d),a=Su(a.c),d=d.Bc();d.Hc();)e=d.Ic(),e=Gu(b,a.a.Me(e.a)),(NC(),xD)==e.e&&cD(e).tc()&&(e=cD(e),aC(e,null),li((W(),e.$)))}function fE(a,b,d){this.c=a;this.b=b;this.a=d}y(158,1,{},fE);_.Uc=function(a,b){dE(this,a,b)};_.Vc=rv;
+_.Wc=function(a,b){var d,e;for(e=b.Bc();e.Hc();)d=e.Ic(),this.c.Q&&Hu(this.b,a.d)==this.c.C.a&&Tu(this.c,d.a)==this.c.Q&&XB(this.c.Q)};_.Xc=function(a,b){eE(this,a,b)};
+_.Yc=function(a,b){var d,e,f,g,h,n,p;n=Hu(this.b,a.d);f=Su(this.c);$B(a.c,n.e);for(e=b.Bc();e.Hc();){d=e.Ic();h=Gu(n,f.a.Me(d.a));p=!0;if(A(n,113)){g=n;var q=d,r=void 0,t=r=void 0,r=t=void 0,r=q.c;r.removeAttribute("sort-order");zi(r,"sort-desc");zi(r,"sort-asc");r=Ou(this.c,q.a);a:{for(var t=r,s=void 0,B=void 0,B=new RB(Iu(this.c.T).b.Bc());B.b.Hc();)if(s=B.b.Ic(),s.a==t){t=s;break a}t=null}g.a&&r.n&&t&&(r=q.c,(uy(),vy)==t.b?mi(r,"sort-asc"):mi(r,"sort-desc"),t=Nu(Iu(this.c.T),t),-1<t&&1<Iu(this.c.T).b.Sc()&&
+(g=(H(),""+(t+1)),r.setAttribute("sort-order",g)));this.c.Q&&Hu(this.b,a.d)==this.c.C.a&&Tu(this.c,d.a)==this.c.Q&&(p=!1)}g=d;q=h.a;r=void 0;if(1>q)throw new J("Number of cells should be more than 0");r=parseInt(g.c[dc])|0;if(1!=q||1!=r){g.c[dc]=q;for(var t=g,D=B=s=void 0,O=void 0,s=Hv(t.b,q-1).b,D=t.d.b[t.a],B=O=0;B<s;B++)O+=t.d.b[t.a+B+1];t.c.style[v]=D+O+(U(),w);t=q;B=s=void 0;s=Hv(g.b,(r>t?r:t)-1);if(r<t)for(B=0;B<s.b;B++)(Wh(r+B-1,s.b),s.c.Me(s.a+(r+B-1))).c.style[m]=(Yi(),nb);else if(r>t)for(B=
+0;B<s.b;B++)(Wh(t+B-1,s.b),s.c.Me(s.a+(t+B-1))).c.style[m]="";g.b.d=q-1}g=d.c;if(p)switch(h.e.g){case 0:Ai(g,wD(h));break;case 1:p=uD(h);g.innerHTML=p||"";break;case 2:eE(this,a,new Em(T(G(uv,1),l,81,0,[d]))),g.innerHTML="",dE(this,a,new Em(T(G(uv,1),l,81,0,[d])))}$B(g,h.d);IC(this.c.c,d,this.a)}};E(158);
+function GB(a,b,d){var e;if(-1==vq(a.c.n,b))throw new J("Given column is not a column in this grid. "+MC(b));if(b.n){a:{var f;for(f=new RB(Iu(a.c.T).b.Bc());f.b.Hc();)if(e=f.b.Ic(),e.a==b)break a;e=null}d?e?(b=vq(a.c.T,e),zv(a.c.T,b,new ty(e.a,e.b.oe()))):Le(a.c.T,new sy(b)):(d=a.c.T.b.length,a.c.T.b=te(I,l,1,0,3),e&&1==d?Le(a.c.T,new ty(e.a,e.b.oe())):Le(a.c.T,new sy(b)));a=a.c;JB(a.u.j,a.C);Zk(a,new ry(a,Iu(a.T)))}}function gE(a){this.c=a;this.d=new hE(this)}y(226,1,{},gE);_.b=!1;E(226);
+function hE(a){this.a=a}y(242,50,{},hE);_.db=function(){GB(this.a,this.a.a,this.a.b)};E(242);function iE(a){var b=new Ie;b.b=a;return b}function BC(a){return a==Ud||a==Ud?[]:{}}function jE(a,b,d,e){var f=a[b];Object.defineProperty(a,b,{get:function(){if(e){var a=e();return isNaN(a)?a:+a}return f},set:function(a){d&&d(a);f=a}});void 0!==f&&(a[b]=f)}function DC(a,b,d,e){d=d?Gp(new kE(d)):null;e=e?Gp(new lE(e)):null;jE(a,b,d,e)}function HC(a,b){return Ep(a,Hc,T(G(I,1),l,1,3,[a,b]))}
+function mE(a){return void 0===a||null===a}function kE(a){this.a=a;jm.call(this)}y(283,5,Wa,kE);_.Ob=function(){this.a.le(gm(this,0))};E(283);function lE(a){this.a=a;jm.call(this)}y(284,5,Wa,lE);_.Rb=function(){return this.a.ke()};E(284);function nE(a,b){var d;d=Ep(a,"indexOf",T(G(I,1),l,1,3,[b])).a;return C(d)}function oE(a,b){Ep(a,"splice",T(G(I,1),l,1,3,[K(nE(a,b)),K(1)]))}
+function pE(){pE=x;qE=new rE("Direction",0,"sort direction",(uy(),T(G(sE,1),l,60,0,[vy,tE])),"asc",T(G(z,1),l,2,4,["asc","desc"]));uE=new rE("Selection",1,"selection mode",(wx(),T(G(vE,1),l,42,0,[wE,yx,xx,xE])),"single",T(G(z,1),l,2,4,[]))}function yE(a,b){var d,e;for(e=a.d.Bc();e.Hc();)if(d=e.Ic(),ue((null!=b.f?b.f:""+b.g).toLowerCase(),d.toLowerCase()))return d;return a.a}
+function zE(a,b){var d,e,f,g;b=null!=b&&b.length?b.toLowerCase():a.a;if(!a.d.we(b))throw new sh(Ic+a.c+", valid options are: "+a.d);if(null!=a.b)for(e=a.b,f=0,g=e.length;f<g;++f)if(d=e[f],le(yE(a,d),b))return d;return null}function rE(a,b,d,e,f,g){S.call(this,a,b);this.c=d;this.b=e;this.a=f;if(0==g.length){f=new Ie;b=0;for(d=e.length;b<d;++b)a=e[b],Le(f,(null!=a.f?a.f:""+a.g).toLowerCase());this.d=f}else this.d=new Em(g)}y(98,4,{98:1,3:1,6:1,4:1},rE);
+var qE,uE,AE=F(98,function(){pE();return T(G(AE,1),l,98,0,[qE,uE])});function BE(){var a=this.dfd=(nm(),new Gq);!a.b&&(a.b=new Jq(a));this.a=a.b;this["catch"]=this.fail}function CE(a){this.a=a;this["catch"]=this.fail}y(150,1,{},BE,CE);_.always=function(a){var b=this.a;a=T(G(lm,1),l,5,0,[new Km(a)]);Cq(b.a.d,a);Cq(b.a.c,a);return this};_.done=function(a){a=T(G(lm,1),l,5,0,[new Km(a)]);Cq(this.a.a.d,a);return this};_.fail=function(a){a=T(G(lm,1),l,5,0,[new Km(a)]);Cq(this.a.a.c,a);return this};
+_.state=function(){return this.a.a.e};_.then=function(a){var b;b=this.a;var d=T(G(lm,1),l,5,0,[new DE(a)]);a=new Gq;var e=T(vl(lm),l,5,0,[new Nq(a,d,0)]);Cq(b.a.d,e);e=T(vl(lm),l,5,0,[new Nq(a,d,1)]);Cq(b.a.c,e);d=T(vl(lm),l,5,0,[new Nq(a,d,2)]);Cq(b.a.a,d);b=(!a.b&&(a.b=new Jq(a)),a.b);return new CE(b)};E(150);function DE(a){this.a=a;jm.call(this)}y(202,5,Wa,DE);_.Rb=function(){return HC(this.a,gm(this,0))};E(202);
+function EE(){EE=x;FE=new GE("String",0,"string value","(.+)",z,"","");HE=new GE("Pixel",1,"pixel value","([\\d\\.]+)(px)?$",IE,null,null);JE=new GE("Integer",2,"int value","([+-]?\\d+)",np,K(0),K(0));KE=new GE("Double",3,"double value","([+-]?[\\d\\.]+)",IE,new Y(0),new Y(0));LE=new GE("Boolean",4,"boolean value","(|true|false)",Ap,(em(),em(),fm),Bp)}function ME(a,b,d,e,f){var g;if(g=b)g=(Q(),b).hasAttribute(d);b=g?(Q(),b).getAttribute(d)||"":null;return NE(a,b,e,f)}
+function OE(a,b,d){return ME(a,pn(b,0),d,a.a,a.b)}function PE(a,b,d,e){b=mE(b)?null:(H(),""+b);return NE(a,b,d,e)}function NE(a,b,d,e){var f;if(null==b||mE(b))return e;if(!xe(b).length)return d;d=a.d.exec(b);if(!d||null==(f=d[1]))throw new sh(Ic+a.c+"("+b+"), valid format is "+Yd(a.d));try{return a.e==z?f:a.e==np?K(QE(f)):a.e==IE?new RE(f):a.e==Ap?(em(),me(rb,f)?fm:Bp):f}catch(g){g=Ph(g);if(A(g,13))throw new sh(Ic+a.c+", valid format is "+Yd(a.d));throw Qh(g);}}
+function GE(a,b,d,e,f,g,h){S.call(this,a,b);this.c=d;this.d=RegExp("^"+e+"$","i");this.e=f;this.a=g;this.b=h}y(61,4,{61:1,3:1,6:1,4:1},GE);var LE,KE,JE,HE,FE,SE=F(61,function(){EE();return T(G(SE,1),l,61,0,[FE,HE,JE,KE,LE])});function TE(a,b){var d,e;e=(H(),""+b);if(oe(e,"[+-]?\\d+")){if(d=(EE(),JE),e=NE(d,e,d.a,d.b).a,0<=e&&e<=a.b.length)return e}else for(d=0;d<a.b.length;d++)if(le(e,Fp(a.b,K(d)).name))return d;throw new J(Ac);}
+function UE(a){var b;b=Iu(new Fq(a.e.n));A(a.getSelectionModel(),70)&&(b=b.Te(1,b.Sc()));return b}function vx(a){var b;b=null;A(a.getSelectionModel(),70)&&(b=cD(Gu(a.e.C.a,Tu(a.e,0))));return b}function VE(a,b){return(new Promise(function(b){a.onReady(b)})).then(b)}
+function zx(a){var b,d;if(d=vx(a))b=a.getSelectionModel().getMode()==(wx(),xx),Ms(d,(em(),b?fm:Bp)),d=ti((W(),d.$)),a=b?0!=a.getSelectionModel().deselected(null,null,null).length?fm:Bp:0!=a.getSelectionModel().selected(null,null,null).length?fm:Bp,d&&Tm(d,Jc,a)}
+function WE(){this.e=new XE;this.defaultHeightByRows=C(this.e.u.o);ux(this.e,new YE);ms(this.e,this,(Sx(),Sx(),Tx));ms(this.e,this,(py(),py(),qy));ms(this.e,this,(sx(),sx(),tx));this.b=BC(Ud);this.g=new ZE(this);this.d=new $E(this);this.j=new aF(this)}y(615,1,{21:1},WE);_.addColumn=function(a,b){var d;d=this.b.length;null!=b&&(d=TE(this,b));Ep(this.b,"splice",T(vl(I),l,1,3,[K(d),K(0),a]));this.setColumns(this.b);return a};
+_.attached=function(a,b,d){var e;this.c||(this.c=a,b&&(new bF(b,this),(b=(e=new cF(b,this),0<Id(e,e.size,e.Sc).bind(e)()?e:null))&&SB(this.e,b)),e=Hm(this.e),d.appendChild(e),nr(this.e,null),this.d.setContainer(a));d=this.g;d.a=X(a);a=cn(d.a,(lq(),nq));d=T(vl(lm),l,5,0,[new dF(d)]);0==d.length?Gn(cn(a,um),Xa,null):Zp(cn(a,um),Xa,d);mr(this.g,!0);this.updating=!1};_.getCellClassGenerator=$n;_.getColumns=eF;_.getDataSource=function(){return this.e.q};_.getEditor=fF;_.getFrozenColumns=function(){return this.e.A};
+_.getGrid=gF;_.getGridElement=function(){return W(),this.e.$};_.getHeightMode=function(){return Vi(this.e.u.p)};_.getRowClassGenerator=function(){return this.i};_.getRows=function(){return this.g.b};_.getScrollTop=function(){return this.e.u.F.k};_.getSelectionMode=function(){return Vi(this.getSelectionModel().getMode()).toLowerCase()};_.getSelectionModel=function(){return this.e.R};_.getSortOrder=qh;_.getStaticSection=RC;_.isDisabled=function(){return!this.e.t};
+_.isWorkPending=function(){var a;if(!(a=!this.e.q||!!this.e.q.k||!!this.g.p)){a=this.e;var b=a.u;a=b.a.a.f||Xv(b.F)||Xv(b.r)||a.p||a.a.b}return a};_.gc=function(){this.refresh()};_.onBrowserEvent=_.gc;_.onReady=function(a){a=new Km(a);Rh((Eh(),new hF(this,a)))};_.Cd=function(){zx(this);this.updating||Fn(X(this.c),"select")};_.redraw=function(){mr(this.g,!1)};
+_.refresh=function(){var a,b;this.updating=!0;b=this.getSelectionModel();a=b.selected(null,null,null);this.getDataSource()&&this.getDataSource().refresh();mr(this.g,!0);0<a.length&&X(this.c).Ub(5,T(G(lm,1),l,5,0,[new iF(a,b)]));this.updating=!1};_.removeColumn=function(a){oE(this.b,Fp(this.b,K(TE(this,a))))};_.scrollToEnd=function(){var a=this.e;nx(a,a.u.a.k-1,(ox(),jF))};
+_.scrollToRow=function(a,b){if(null!=b){var d=this.e,e;e=b.toUpperCase();ox();e=Xi((kF(),lF),e);nx(d,a,e)}else OB(this.e,a,(ox(),px),0)};_.scrollToStart=function(){nx(this.e,0,(ox(),mF))};_.setCellClassGenerator=function(a){var b=this.e;b.g=mE(a)?null:new nF(this,a);ku(b.u.a,0,b.u.a.k);this.a=a};_.setColumnWidth=function(a,b){Tu(this.e,a).ee(b)};
+_.setColumns=function(a){var b,d,e;b=new Ie;for(e=UE(this).Bc();e.Hc();)d=e.Ic(),Le(b,d.c);for(d=iE(a).Bc();d.Hc();)if(e=d.Ic(),-1==vq(b,e)){e=new oF(e,this);var f=this.getGrid(),g=f,h=e,f=f.n.b.length;if(h==g.Q)throw new J("The selection column many not be added manually");if(g.Q&&0==f)throw new Z("A column cannot be inserted before the selection column");vB(g,h,f);DC(e.c,"headerContent",new pF(e),new qF(e));rF(e,"flex",new sF(e));rF(e,"sortable",new tF(e));rF(e,"readOnly",new uF(e));rF(e,"renderer",
+new vF(e));rF(e,"minWidth",new wF(e));rF(e,"maxWidth",new xF(e));rF(e,v,new yF(e));rF(e,"valueGenerator",new zF(e))}for(b=UE(this).Bc();b.Hc();)if(e=b.Ic(),-1==nE(a,e.c)){d=this.e;if(e&&e==d.Q)throw new J("The selection column may not be removed manually.");LB(d,e)}b=UE(this).ze(te(AF,l,112,0,0));d=b.length;e=new BF(a);!e&&(e=(CF(),CF(),DF));h=d-0;g=T(G(I,1),l,1,3,[K(0),K(d)]);if(!(0<=h))throw new J(ei("%s \x3e %s",g));var g=xl(b,h),n=ph(b.length-0,h),f=h=0,p,q,r,t,s;$h(b,"src");$h(g,"dest");t=Od(b);
+q=Od(g);Sh(0!=(t.e&4),"srcType is not an array");Sh(0!=(q.e&4),"destType is not an array");r=t.c;p=q.c;Sh(0!=(r.e&1)?r==p:0==(p.e&1),"Array types don't match");s=b.length;p=g.length;if(0>h||0>f||0>n||h+n>s||f+n>p)throw new zs;if(0!=(r.e&1)&&0==(r.e&4)||t==q)0<n&&zl(b,h,g,f,n,!0);else if(ce(b)===ce(g)&&h<f)for(h+=n,n=f+n;n-- >f;)g[n]=b[--h];else for(n=f+n;f<n;)g[f++]=b[h++];EF(g,b,0,d,-0,e);0<b.length&&Qu(this.e,b);this.b=a};
+_.setDataSource=function(a){if(Jm(a))new FF(a,this);else throw new sh("Unknown data source type: "+a+". Arrays and Functions are supported only.");};_.setDisabled=function(a){var b=this.e;a=!a;var d;if(a!=b.t){b.t=a;(W(),b.$).tabIndex=a?0:-1;if(d=0!=b.s.w){var e=b.s;Hs(e.s,a);Hs(e.d,a)}Ry(b.u,(ow(),pw),!a||d);Ry(b.u,rw,!a)}};_.setFrozenColumns=function(a){var b=this.e;if(-1>a||a>b.n.b.length)throw new J("count must be between -1 and the current number of columns ("+b.n.b.length+")");b.A=a;MB(b)};
+_.setHeight=function(a){Py(this.e.u,a)};_.setHeightMode=function(a){var b=(zy(),Xi((GF(),HF),a));a=this.e.u;if(b!=a.p)switch(a.p=b,a.p.g){case 0:Py(a,a.n);break;case 1:b=a.o;if(0>=b)throw new J("The number of rows must be a positive number.");if(!isFinite(b)&&!isNaN(b))throw new J("The number of rows must be finite.");if(isNaN(b))throw new J("The number must not be NaN.");a.o=b;Dw(a);break;default:throw new Z("Unimplemented feature - unknown HeightMode: "+a.p);}};
+_.setRowClassGenerator=function(a){var b=this.e;b.O=mE(a)?null:new IF(this,a);ku(b.u.a,0,b.u.a.k);this.i=a};_.setRows=function(a){var b=this.g;b.i&&a==b.b||(b.i=0<a,b.b=a,mr(b,!0))};_.setSelectionMode=function(a){me(this.getSelectionMode(),a)||(this.updating=!0,a=zE((pE(),uE),a),ux(this.e,a.ne()),this.getSelectionModel().Ad(),zx(this),this.redraw(),this.updating=!1)};
+_.setSortOrder=function(a){var b,d,e,f,g,h;h=new Ie;d=UE(this);for(g=iE(a).Bc();g.Hc();)f=g.Ic(),b=d.Me(f.column),e=zE((pE(),qE),f.direction),f.direction=yE(qE,e),Le(h,new ty(b,e));b=this.e;h!=b.T&&(b.T.b=te(I,l,1,0,3),Ju(b.T,h));JB(b.u.j,b.C);Zk(b,new ry(b,Iu(b.T)));this.f=a};
+_.sort=function(a){var b,d,e;this.getSelectionModel().Ad();!this.f&&(this.f=[]);this.f.length=0;b=UE(this);for(d=new RB(a.b.b.Bc());d.b.Hc();)a=d.b.Ic(),e=BC(JF),e.column=b.Ne(a.a),e.direction=yE((pE(),qE),a.b),Ep(this.f,Kc,T(G(I,1),l,1,3,[e]));Fn(X(this.c),"sort");this.refresh()};_.then=function(a){var b;return(nm(),pm).e||pm.d&&-1!=$wnd.navigator.userAgent.toLowerCase().indexOf("trident")?(b=new BE,a=new KF(a,b),Rh((Eh(),new hF(this,a))),b):VE(this,a)};_.defaultHeightByRows=0;_.updating=!0;E(615);
+function iF(a,b){this.a=a;this.b=b;jm.call(this)}y(204,5,Wa,iF);_.Ob=function(){var a,b;for(a=0;a<this.a.length;a++)b=PE((EE(),JE),Fp(this.a,K(a)),K(-1),K(-1)).a,this.b.select(b,!0)};E(204);function hF(a,b){this.a=a;this.b=b}y(208,1,{},hF);_.gb=function(){return this.a.isWorkPending()?!0:(this.b.Ob(),!1)};E(208);function KF(a,b){this.a=a;this.b=b;jm.call(this)}y(209,5,Wa,KF);
+_.Ob=function(){var a,b;try{b=HC(this.a,null);a=this.b.dfd;var d=T(G(I,1),l,1,3,[b]);a.e==wb&&Rp(a.d,d)}catch(e){if(e=Ph(e),A(e,74))a=e,b=this.b.dfd,a=T(G(I,1),l,1,3,[a.fb()]),b.e==wb&&Rp(b.c,a);else throw Qh(e);}};E(209);function BF(a){this.a=a}y(205,1,{},BF);_.me=function(a,b){var d=this.a;return nE(d,a.c)>nE(d,b.c)?1:-1};_.eQ=Zd;E(205);function IF(a,b){this.a=a;this.b=b}y(206,1,l,IF);E(206);function nF(a,b){this.a=a;this.b=b}y(207,1,{},nF);E(207);
+function WC(a,b,d){var e,f;f=BC(LF);f.rowIndex=b.d;e=Yt(b.c.q,b.d);A(e,101)&&(e=e.a);f.dataItem=e;f.grid=a.a;f.success=Gp(new MF(a,b,d));f.failure=Gp(new NF(a,b));f.getCellEditor=Gp(new OF(a));return f}function aD(a,b){var d,e;e=pl(a.b,b);if(!e){if(a.e.getCellEditor)d=HC(a.e.getCellEditor,b);else{d=$doc;var f;d=(f=(Q(),d).createElement("INPUT"),f.type="text",f)}d&&(e=new PF(d),ql(a.b,b,e))}return e}
+function $E(a){this.b=new kh;this.d=a;this.c=a.getGrid();this.e={};a=new QF(this);var b=this.c.s;if(0!=b.w)throw new Z("Cannot set EditorHandler: editor is currently in edit mode");b.n=a}y(152,1,{},$E);_.cancel=function(){0!=this.c.s.w&&cC(this.c.s)};_.editRow=function(a){0!=this.c.s.w&&this.cancel();dC(this.c.s,a)};_.getCancelButtonText=function(){return Is(this.c.s.d)};_.getHandler=gF;_.getSaveButtonText=function(){return Is(this.c.s.s)};_.isEnabled=function(){return this.c.s.j};_.save=function(){$C(this.c.s)};
+_.setCancelButtonText=function(a){var b=this.c.s;if(null==a)throw new J("Cancel caption cannot be null");Js(b.d,a)};_.setContainer=function(a){this.a=a};_.setEnabled=function(a){var b=this.c.s;if(!a&&0!=b.w)throw new Z("Cannot disable: editor is in edit mode");if(a&&!b.n)throw new Z("Cannot enable: EditorHandler not set");b.j=a};_.setHandler=function(a){this.e=a};_.setSaveButtonText=function(a){var b=this.c.s;if(null==a)throw new J("Save caption cannot be null");Js(b.s,a)};E(152);
+function MF(a,b,d){this.a=a;this.c=b;this.b=d;jm.call(this)}y(210,5,Wa,MF);_.Ob=function(){var a=this.c;XC(a,null,null);a.a&&a.a.ge(a);this.b&&Wk(this.a.b)};_.b=!1;E(210);function NF(a,b){this.a=a;this.b=b;jm.call(this)}y(211,5,Wa,NF);_.Ob=function(){var a,b,d,e;e=gm(this,1);d=new Ie;for(b=UE(this.a.d).Bc();b.Hc();)a=b.Ic(),e&&-1!=nE(e,a.c)&&(d.b[d.b.length]=a);a=this.b;b=gm(this,0);XC(a,b,d);a.a&&a.a.fe(a)};E(211);function OF(a){this.a=a;jm.call(this)}y(212,5,Wa,OF);
+_.Rb=function(){return Hm(aD(this.a,gm(this,0)))};E(212);function QF(a){this.a=a}y(213,1,{},QF);E(213);function PF(a){gs();this.$=(W(),a)}y(214,153,Xb,PF);E(214);
+function XE(){var a;gs();this.v=new Uw(this);this.F=new kx(this,this.v);this.G=new rx(this,this.v);new qx(this,this.v);this.i=new ex(this,this.v);new hx(this,this.v);this.u=new Uy;this.C=new GD;this.w=new sD;this.S=new XD(this);this.n=new Ie;this.o=$(0,0);this.T=new Ie;this.U=new gE(this);this.s=new dD;this.a=new wC(this);this.B=new CD(this);new hl;this.j=new TC(this);this.r=new Du;this.b=new Jw(this);this.D=new mC(this);this.L=new Vw;this.f=new Qw(this.L);this.H=new Ww(this.L);Qs(this,this.u);(W(),
+this.$).tabIndex=0;this.c=new LC(this);js((W(),this.$),"v-grid");Sy(this.u,"v-grid");a=this.s;if(null!=a.A){zi(a.i,a.A);zi(a.e,a.A+"-cells");zi(a.p,a.A+uc);zi(a.q,a.A+"-message");zi(a.c,a.A+"-buttons");var b=a.s,d=a.A+"-save";is((W(),b.$),d,!1);b=a.d;d=a.A+"-cancel";is((W(),b.$),d,!1)}a.A="v-grid-editor";pi(a.i,a.A);pi(a.e,a.A+"-cells");pi(a.p,a.A+uc);pi(a.q,a.A+"-message");pi(a.c,a.A+"-buttons");b=a.s;d=a.A+"-save";pi((W(),b.$),d);b=a.d;a=a.A+"-cancel";pi((W(),b.$),a);a=this.S;js((W(),a.$),"v-grid-sidebar");
+b=a.a;js((W(),b.$),"v-grid-sidebar-content");b=a.d;js((W(),b.$),"v-grid-sidebar-button");a.a.Z==a.f?(is(a.$,"open",!0),is(a.$,Gc,!1)):(is(a.$,"open",!1),is(a.$,Gc,!0));a=this.S;is((W(),a.$),"v-contextmenu",!0);a=hs(this.$)+qc;this.K=a+"-has-data";this.M=a+"-selected";this.N=a+"-stripe";this.d=hs(this.$)+"-cell-focused";this.J=hs(this.$)+"-row-focused";this.V&&this.V.tc()&&(JB(this.u.j,this.C),ku(this.u.a,0,this.u.a.k),JB(this.u.f,this.w));Sz(this.u.j,new fE(this,this.C,this.u.j));Sz(this.u.a,new AC(this));
+Sz(this.u.f,new fE(this,this.w,this.u.f));this.C.c=this;a=this.C;a=pD(a,a.d.b.length);FD(this.C,a);this.w.c=this;a=this.s;a.k=this;lx(this,new nD(a));a=(OD(),this);ux(a,new my);a=this.u.a.b;var b=this.B,e;for(e=My(new Ny(a.a));e.a.Hc();)d=Oy(e),a.e.qd(d);a.e=b;for(d=My(new Ny(a.a));d.a.Hc();)b=Oy(d),a.e.rd(b),pB(b)?(b.e.style[m]="",b.a.style[m]=""):(b.e.style[m]=(Yi(),nb),b.a.style[m]=nb);ms(this.u,new oC(this),(Rv(),Sv));ms(this.u,new pC(this),(Nv(),Ov));ms(this,new qC(this),(Sx(),Sx(),Tx));zB(this,
+new Em(T(G(z,1),l,2,4,[Gb,Ib,Kb,Lb,Ja])));zB(this,new Em(T(G(z,1),l,2,4,[Ka,Ab,zb,yb,Bb])));ms(this,new rC(this),this.G.a);lx(this,new sC(this))}y(218,217,Dc,XE);_.Zd=bC;E(218);function JC(a,b){var d,e;e=BC(RF);d=a.c;DC(e,Lc,null,new SF(a));DC(e,"index",null,new TF(a));DC(e,"columnName",null,new UF(d));DC(e,$a,null,new VF(d,a));d=BC(CC);DC(d,"index",null,new WF(a));DC(d,$a,null,new XF(a));DC(d,Lc,null,new YF(a));d.grid=b;e.row=d;return e}var RF=ke();function SF(a){this.a=a}y(321,1,{},SF);_.ke=function(){return this.a.sd()};
+E(321);function TF(a){this.a=a}y(322,1,{},TF);_.ke=function(){return K(this.a.d)};E(322);function UF(a){this.a=a}y(323,1,{},UF);_.ke=function(){return this.a.c.name};E(323);function VF(a,b){this.b=a;this.a=b}y(324,1,{},VF);_.ke=function(){return ZF(this.b,this.a.f.b)};E(324);function WF(a){this.a=a}y(325,1,{},WF);_.ke=function(){return K(this.a.f.c)};E(325);function XF(a){this.a=a}y(326,1,{},XF);_.ke=function(){return this.a.f.b};E(326);function YF(a){this.a=a}y(327,1,{},YF);_.ke=function(){return hi(this.a.sd())};
+E(327);var $F=ke(),aG=ke(),LF=ke(),CC=ke();function EC(a){this.a=a}y(328,1,{},EC);_.ke=function(){return K(this.a.c)};E(328);function FC(a){this.a=a}y(329,1,{},FC);_.ke=function(){return this.a.b};E(329);function GC(a){this.a=a}y(330,1,{},GC);_.ke=function(){return this.a.a};E(330);var JF=ke(),bG=ke();function cG(a){this.a=a}y(101,1,{101:1},cG);E(101);function dG(a,b){cu(a,b);a.d.getSelectionModel().dataSizeUpdated(b)}
+function eG(a,b,d){var e,f,g,h;h=gu(a.d.getGrid().u);g=new Xt(b,b+d.Sc());for(f=UE(a.d).Bc();f.Hc();){e=f.Ic();var n=h,p=g,q=void 0,r=void 0;if(e.c.valueGenerator)for(r=sn(new tn((new fG(new tn(e.a))).a));r.a.Hc();)q=un(r),!fu(p,q.a)&&fu(n,q.a)||sl(e.a,q)}mu(a,b,d)}function gG(a,b){var d,e;b!=a.e&&(e=0==a.e,d=b<a.c||a.e<a.c,a.e=b,e?(d=a.d.updating,a.d.updating=!0,SB(a.d.getGrid(),a),a.d.updating=d):d&&mr(a.d.g,!0))}
+function hG(a){this.s=new Xt(0,0);this.g=new Xt(0,0);this.o=new kh;this.p=new kh;this.f=new vu;this.j=new qu(this);this.q=new kh;this.r=new kh;V();this.e=0;this.d=a;this.c=a.defaultHeightByRows}y(121,297,{},hG);_.clearCache=function(a){dG(this,PE((EE(),JE),a,K(this.e),K(this.e)).a);this.d.getSelectionModel().Ad()};_.Oc=function(a){return a};_.getRowKey=_.Oc;_.refresh=function(){dG(this,Id(this,this.size,this.Sc).bind(this)());this.d.getSelectionModel().Ad()};_.Qc=function(a){dG(this,a)};
+_.Rc=function(a,b){eG(this,a,b)};_.Sc=gF;_.size=_.Sc;_.c=0;_.e=0;E(121);function cF(a,b){hG.call(this,b);this.a=a;gG(this,((!this.b||0==this.b.c.length)&&(this.b=wn(X(this.a),T(G(z,1),l,2,4,[Mc]))),this.b).c.length)}y(334,121,{},cF);_.refresh=function(){this.b=null;gG(this,((!this.b||0==this.b.c.length)&&(this.b=wn(X(this.a),T(G(z,1),l,2,4,[Mc]))),this.b).c.length);cd[121].refresh.call(this)};
+_.Pc=function(a,b){var d,e,f,g,h,n,p,q,r;h=new Ie;n=Dn(Dn(((!this.b||0==this.b.c.length)&&(this.b=wn(X(this.a),T(G(z,1),l,2,4,[Mc]))),this.b),a-1+1,-1),0,b).c;p=0;for(q=n.length;p<q;++p){e=n[p];r=[];e=wn(X(e),T(G(z,1),l,2,4,["td"])).c;f=0;for(g=e.length;f<g;++f){d=e[f];var t=r;d=X(d);d=0==d.c.length?"":vi(pn(d,0));t[t.length]=d}h.b[h.b.length]=r}eG(this,a,h)};E(334);
+function iG(a,b,d,e){var f;f=BC(aG);f.index=b;f.count=d;f.sortOrder=a.d.getSortOrder();f.success=Gp(new jG(a,e));e&&(f.failure=Gp(new kG(a,e)));HC(a.a,f)}function FF(a,b){hG.call(this,b);this.a=a;iG(this,0,0,null)}y(335,121,{},FF);_.Pc=function(a,b,d){iG(this,a,b,d)};E(335);function jG(a,b){this.a=a;this.b=b;jm.call(this)}y(336,5,Wa,jG);
+_.Ob=function(){var a,b,d,e;d=iE(gm(this,0));e=gm(this,1);for(b=0;b<d.Sc();b++){var f=d.Me(b);Object(f)!==f&&d.Se(b,new cG(d.Me(b)))}e&&gG(this.a,C(e.a));this.b&&tu(this.b,d,(a=this.a,Id(a,a.size,a.Sc).bind(a)()))};E(336);function kG(a,b){this.a=a;this.b=b;jm.call(this)}y(337,5,Wa,kG);_.Ob=function(){var a;tu(this.b,(V(),V(),tl),(a=this.a,Id(a,a.size,a.Sc).bind(a)()))};E(337);function wx(){wx=x;wE=new lG;yx=new mG;xx=new nG;xE=new oG}y(42,4,Nc);
+var xx,xE,yx,wE,vE=F(42,function(){wx();return T(G(vE,1),l,42,0,[wE,yx,xx,xE])});function lG(){S.call(this,"SINGLE",0)}y(300,42,Nc,lG);_.ne=function(){return new YE};F(300,null);function mG(){S.call(this,"MULTI",1)}y(301,42,Nc,mG);_.ne=function(){return new pG};F(301,null);function nG(){S.call(this,"ALL",2)}y(302,42,Nc,nG);_.ne=function(){return new qG};F(302,null);function oG(){S.call(this,"DISABLED",3)}y(303,42,Nc,oG);_.ne=function(){return new rG};F(303,null);
+function qG(){$x.call(this);this.b=BC(Ud);this.a=!1}y(192,190,kc,qG);_.clear=function(){Zk(this.c,new $k(new pG))};_.Gd=rs;_.dataSizeUpdated=function(a){var b,d;this.a=!0;b=!1;for(d=0;d<this.b.length;d++)Fp(this.b,K(d)).a>=a&&(oE(this.b,Fp(this.b,K(d--))),b=!0);b&&Zk(this.c,new Vx(this.c,null,null))};
+_.deselect=function(a,b){var d;return 0<=a&&(!this.a||a<(d=this.c.q,Id(d,d.size,d.Sc).bind(d)()))&&-1==nE(this.b,new Y(a))?(Ep(this.b,Kc,T(G(I,1),l,1,3,[new Y(a)])),(b=PE((EE(),LE),(em(),b?fm:Bp),Bp,Bp).a)||Zk(this.c,new Vx(this.c,null,null)),!0):!1};_.Ed=function(){Zk(this.c,new $k(this));return!0};_.Kd=function(a){return this.deselect(sG(this.c,a),!0)};
+_.deselected=function(a,b,d){var e,f;f=BC(Ud);a=tG(a);b=PE((EE(),JE),b,K(0),K(0)).a;b=ph(b,this.b.length-1);e=this.b.length-1;d=PE(JE,d,K(e),K(e)).a;for(d=ph(d,this.b.length-1);b<=d;b++)e=Ep(a,Hc,T(G(I,1),l,1,3,[a,Fp(this.b,K(b))])),null!=e&&Ep(f,Kc,T(G(I,1),l,1,3,[e]));return f};_.getMode=function(){return wx(),xx};_.zd=function(a){return-1==nE(this.b,new Y(au(this.c.q,a)))};_.Ad=uG;
+_.select=function(a,b){return-1!=nE(this.b,new Y(a))?(oE(this.b,new Y(a)),(b=PE((EE(),LE),(em(),b?fm:Bp),Bp,Bp).a)||Zk(this.c,new Vx(this.c,null,null)),!0):!1};_.selectAll=uG;_.Ld=function(a){return this.select(sG(this.c,a),!0)};
+_.selected=function(a,b,d){var e,f,g,h,n;h=BC(Ud);a=tG(a);e=this.size();b=PE((EE(),JE),b,K(0),K(0)).a;b=(0<b?b:0)<e-1?0<b?b:0:e-1;f=this.size()-1;d=PE(JE,d,K(f),K(f)).a;d=((0<d?d:0)<e-1?0<d?d:0:e-1)-b+1;for(e=n=f=0;e<d;)-1==nE(this.b,new Y(f))&&n++>=b&&(++e,g=Ep(a,Hc,T(G(I,1),l,1,3,[a,K(f)])),null!=g&&Ep(h,Kc,T(G(I,1),l,1,3,[g]))),++f;return h};_.Bd=function(a){this.c=a;Yx(this,a)};_.size=function(){var a;return(a=this.c.q,Id(a,a.size,a.Sc).bind(a)())-this.b.length};_.Hd=rs;_.a=!1;E(192);
+function rG(){}y(487,644,{},rG);_.clear=rs;_.dataSizeUpdated=Ak;_.deselect=Tn;_.deselected=vG;_.getMode=function(){return wx(),xE};_.select=Tn;_.selectAll=rs;_.selected=vG;_.size=MD;E(487);function pG(){$x.call(this);this.c=BC(Ud);this.a=!1}y(191,190,kc,pG);_.clear=wG;_.Gd=rs;_.dataSizeUpdated=function(a){var b,d;this.a=!0;b=!1;for(d=0;d<this.c.length;d++)Fp(this.c,K(d)).a>=a&&(oE(this.c,Fp(this.c,K(d--))),b=!0);b&&Zk(this.b,new Vx(this.b,null,null))};
+_.deselect=function(a,b){return-1!=nE(this.c,new Y(a))?(oE(this.c,new Y(a)),(b=PE((EE(),LE),(em(),b?fm:Bp),Bp,Bp).a)||Zk(this.b,new Vx(this.b,null,null)),!0):!1};_.Kd=xG;_.deselected=vG;_.getMode=function(){return wx(),yx};_.zd=function(a){return-1!=nE(this.c,new Y(au(this.b.q,a)))};_.Ad=wG;
+_.select=function(a,b){var d;return 0<=a&&(!this.a||a<(d=this.b.q,Id(d,d.size,d.Sc).bind(d)()))&&-1==nE(this.c,new Y(a))?(Ep(this.c,Kc,T(G(I,1),l,1,3,[new Y(a)])),(b=PE((EE(),LE),(em(),b?fm:Bp),Bp,Bp).a)||Zk(this.b,new Vx(this.b,null,null)),!0):!1};_.selectAll=function(){Zk(this.b,new $k(new qG))};_.Ld=yG;
+_.selected=function(a,b,d){var e,f;f=BC(Ud);a=tG(a);b=PE((EE(),JE),b,K(0),K(0)).a;b=ph(b,this.c.length-1);e=this.c.length-1;d=PE(JE,d,K(e),K(e)).a;for(d=ph(d,this.c.length-1);b<=d;b++)e=Ep(a,Hc,T(G(I,1),l,1,3,[a,Fp(this.c,K(b))])),null!=e&&Ep(f,Kc,T(G(I,1),l,1,3,[e]));return f};_.Bd=function(a){this.b=a;Yx(this,a)};_.size=function(){return this.c.length};_.Hd=rs;_.a=!1;E(191);function YE(){this.c=-1;this.a=!1}y(169,168,{199:1},YE);_.clear=function(){this.deselect(this.c,!1)};
+_.dataSizeUpdated=function(a){this.a=!0;this.c>=a&&(this.c=-1)};_.deselect=function(a,b){return this.c==a?(this.c=-1,(b=PE((EE(),LE),(em(),b?fm:Bp),Bp,Bp).a)||Zk(this.b,new Vx(this.b,null,null)),!0):!1};_.Kd=xG;_.deselected=vG;_.getMode=function(){return wx(),wE};_.zd=function(a){return this.c==au(this.b.q,a)};_.Ad=function(){this.c=-1;Zk(this.b,new Vx(this.b,null,null))};
+_.select=function(a,b){var d;return 0<=a&&(!this.a||a<(d=this.b.q,Id(d,d.size,d.Sc).bind(d)()))?(this.c=a,(b=PE((EE(),LE),(em(),b?fm:Bp),Bp,Bp).a)||Zk(this.b,new Vx(this.b,null,null)),!0):!1};_.selectAll=function(){this.clear()};_.Ld=yG;_.selected=function(a){var b;b=BC(Ud);a=tG(a);-1!=this.c&&(a=Ep(a,Hc,T(G(I,1),l,1,3,[a,K(this.c)])),null!=a&&Ep(b,Kc,T(G(I,1),l,1,3,[a])));return b};_.Bd=function(a){this.b=a;ly(this,a)};_.size=function(){return-1==this.c?0:1};_.a=!1;_.c=0;E(169);
+function sG(a,b){var d;bu(b.c,b);d=pu(b);d=au(a.q,d);ou(b.c,b);return d}function tG(a){var b;b=a;!a&&(b=Gp(new zG));return b}function zG(){jm.call(this)}y(395,5,Wa,zG);_.Rb=function(){return this.f[0]};E(395);function rF(a,b,d){DC(a.c,b,new AG(a,d),null)}function BG(a){var b;b=a.b.getStaticSection();return CG(b,b.getDefaultHeader(),a)}function DG(a,b,d){var e;e=null;d.xe()?e=b:typeof b===ba&&null!==b&&(e=DG(a,Fp(b,d.Me(0)),d.Te(1,d.Sc())));return e}
+function ZF(a,b){var d,e;A(b,101)&&(b=b.a);e=null;a.c.valueGenerator?(d=au(a.b.getDataSource(),b),yr(a.a,K(d))?e=pl(a.a,K(d)):(e=HC(a.c.valueGenerator,b),ql(a.a,K(d),e))):Object(b)!==b?0==nE(a.b.getColumns(),a.c)&&(e=b):Nm(b)?(d=nE(a.b.getColumns(),a.c),e=null!=b[d]?Object(b[d]):null):e=DG(a,b,new Em(se(a.c.name,"\\.",0)));return e}
+function EG(a,b){var d=mE(b)?-1:b.a,e;e=a.k;if(0<=d&&d<e&&0<=e)throw new J("New maximum width ("+d+") was less than minimum width ("+e+")");a.j!=d&&(a.j=d,a.g&&yB(a.g.a))}function oF(a,b){PC(this,new SC(this));this.a=new kh;this.c=a;this.b=b}y(112,72,{72:1,112:1},oF);_.de=function(a){return ZF(this,a)};var AF=E(112);function pF(a){this.a=a}y(285,1,{},pF);_.le=function(a){var b=this.a;BG(b).content=a;b.b.redraw()};E(285);function qF(a){this.a=a}y(286,1,{},qF);_.ke=function(){return BG(this.a).content};
+E(286);function AG(a,b){this.a=a;this.b=b}y(296,1,{},AG);_.le=function(a){var b=this.a;this.b.le(a);b.b.redraw()};E(296);function FG(a,b){this.a=a;this.b=b}y(290,1,{},FG);_.Tc=function(a){var b=this.b;a=JC(a,this.a.b.c);Ep(b,Hc,T(vl(I),l,1,3,[b,a]))};E(290);function sF(a){this.a=a}y(287,1,{},sF);_.le=function(a){var b=this.a;a=C(a.a);b.f!=a&&(b.f=a,b.g&&yB(b.g.a))};E(287);function tF(a){this.a=a}y(288,1,{},tF);_.le=function(a){var b=this.a;a=a.a;b.n!=a&&(b.n=a,b.g&&KB(b.g))};E(288);
+function uF(a){this.a=a}y(289,1,{},uF);_.le=function(a){ZB(this.a,!a.a)};E(289);function vF(a){this.a=a}y(291,1,{},vF);_.le=function(a){var b=this.a;PC(b,new FG(b,a))};E(291);function wF(a){this.a=a}y(292,1,{},wF);_.le=function(a){var b=this.a;a=mE(a)?10:a.a;var d;d=b.j;if(0<=a&&a>d&&0<=d)throw new J("New minimum width ("+a+") was greater than maximum width ("+d+")");b.k!=a&&(b.k=a,b.g&&yB(b.g.a))};E(292);function xF(a){this.a=a}y(293,1,{},xF);_.le=function(a){EG(this.a,a)};E(293);
+function yF(a){this.a=a}y(294,1,{},yF);_.le=function(a){EG(this.a,a)};E(294);function zF(a){this.a=a}y(295,1,{},zF);_.le=function(){this.a.b.getDataSource().refresh()};E(295);
+function GG(a,b){var d,e,f,g,h,n,p,q,r,t,s;p=b?a.i.C.d.b.length:a.i.w.d.b.length;t=b?a.p:a.o;d=b?a.c:a.b;if(p!=t){for(f=t;f<p;f++)b?DD(a.i.C,f):qD(a.i.w,f);for(f=p;f<t;f++)b?pD(a.i.C,f):pD(a.i.w,f)}for(q=0;q<t;q++)for(s=b?Hu(a.i.C,q):Hu(a.i.w,q),p=UE(a.j),g=X(pn(d,q)),f=gn(g,T(G(z,1),l,2,4,["th, td"])),n=OE((EE(),FE),g,"class"),!n.length||(s.e=n,s.d.ie()),g=r=0;r<f.c.length&&r<a.n;r++){e=X(pn(f,r));h=Gu(s,p.Me(g));h=HG(a.j.getStaticSection(),h);h.content=0==e.c.length?"":vi(pn(e,0));n=OE(FE,e,"class");
+!n.length||(h.className=n);n=K(1);var B=K(1);e=ME(JE,pn(e,0),"colspan",n,B).a;Me(new IG(h,e),0);g+=e}b&&a.j.getStaticSection().setDefaultHeader(a.g);Me(new JG(a,b),0)}
+function lr(a){var b;a.f=wn(a.d,T(G(z,1),l,2,4,["thead"]));0==a.f.c.length&&(b=(nm(),Cm("\x3cthead\x3e",sm)),on(a.d,b),a.f=b);a.e=wn(a.d,T(G(z,1),l,2,4,["tfoot"]));0==a.e.c.length&&(b=(nm(),Cm("\x3ctfoot\x3e",sm)),on(a.d,b),a.e=b);a.a=wn(a.d,T(G(z,1),l,2,4,["colgroup"]));b=En(a.f)+En(a.a)+En(a.e);if(b!==a.k){a.k=b;a.c=wn(a.f,T(G(z,1),l,2,4,["tr"]));a.b=wn(a.e,T(G(z,1),l,2,4,["tr"]));a.p=a.c.c.length;a.o=a.b.c.length;var d,e;for(e=d=0;d<a.p;d++)b=gn(X(pn(a.c,d)),T(vl(z),l,2,4,["th, td"])),e=L(e,b.c.length),
+b.c.length!=e&&0==kn(b,T(vl(z),l,2,4,["[sortable]"])).c.length||(a.g=d);if(0!=a.a.c.length){b=gn(a.a,T(vl(z),l,2,4,["col"]));var f,g,h,n,p;h=a.j.getColumns();h.length=0;a.n=b.c.length;p=BC(Ud);for(e=0;e<a.n;e++){f=X(pn(b,e));d=BC($F);Ep(h,Kc,T(G(I,1),l,1,3,[d]));d.sortable=OE((EE(),LE),f,"sortable").a;d.readOnly=OE(LE,f,"read-only").a;g=d;n=K(1);var q=K(-1);n=ME(JE,pn(f,0),"flex",n,q);g.flex=n.a;(g=OE(HE,f,v))&&(d.width=g.a);(g=OE(HE,f,"min-width"))&&(d.minWidth=g.a);(g=OE(HE,f,"max-width"))&&(d.maxWidth=
+g.a);d.name=OE(FE,f,"name");g=OE(FE,f,"sort-direction");g.length&&(n=BC(JF),n.direction=g,n.column=e,Ep(p,Kc,T(G(I,1),l,1,3,[n])));d.renderer=Gp(new KG);g=0==f.c.length?"":vi(pn(f,0));n=0==f.c.length?"":vi(pn(f,0));f=ME(FE,pn(f,0),"header-text",g,n);null!=f&&f.length&&(d.headerContent=f)}a.j.setColumns(h);0==p.length||a.j.setSortOrder(p)}0<a.n&&(0<a.p&&GG(a,!0),0<a.o&&GG(a,!1))}}
+function bF(a,b){this.j=b;this.i=b.getGrid();this.d=X(a);lr(this);var d=cn(this.d,(dr(),gr)),e=(!mm&&(mm=new Wn),Yn(ko));e.a.attributes=!0;e.a.childList=!0;e.a.subtree=!0;var e=e.a,f,g,h;if(Lm((nm(),Am),"MutationObserver"))for(d=d.c,g=0,h=d.length;g<h;++g){f=d[g];var n=e,p=void 0,q=void 0,r=void 0,r=pl(fr,f);r||(r=new Ie,ql(fr,f,r));r.we(this)||(r.Le(this),q=Mm(f),p=void 0,p=pl(er,this),p||(p=kr(this,q),ql(er,this,p)),ql(er,this,p),q?p.observe(f,n):Ep(Fp((nm(),Am),Nm(f)?"Array":"Object"),"observe",
+T(G(I,1),l,1,3,[f,p,n])),r.Le(this))}else Pm(Qm(T(G(I,1),l,1,3,["ERROR: this browser does not support MutationObserver: "+$wnd.navigator.userAgent])))}y(123,1,{123:1},bF);_.g=0;_.k=null;_.n=0;_.o=0;_.p=0;E(123);function KG(){jm.call(this)}y(304,5,Wa,KG);_.Ob=function(){var a,b;b=(a=gm(this,0))?Um(a,Lc):null;a=a?Um(a,$a):null;a=null!=a?(H(),""+a):"";b.innerHTML=a||""};E(304);function IG(a,b){this.b=a;this.a=b}y(305,50,{},IG);_.db=function(){this.b.colspan=this.a};_.a=0;E(305);
+function JG(a,b){this.a=a;this.b=b}y(306,50,{},JG);_.db=function(){if(this.b){var a=!OE((EE(),LE),this.a.f,lb).a,b=this.a.i.C;b.e=a;b.ie()}else 0!=this.a.b.c.length&&(a=!OE((EE(),LE),this.a.e,lb).a,b=this.a.i.w,b.e=a,b.ie())};_.b=!1;E(306);
+function HG(a,b){var d;yr(a.a,b)||(d=BC(bG),d.colspan=b.a,b.e==(NC(),xD)?d.content=Hm(cD(b)):b.e==OC?d.content=wD(b):b.e==vD&&(d.content=uD(b)),DC(d,"colspan",new LG(a,new MG(b),b),null),DC(d,"className",new LG(a,new NG(b),b),null),DC(d,"content",new LG(a,new OG(b),b),null),ql(a.a,b,d));return pl(a.a,b)}function CG(a,b,d){b=Gu(Hu(a.b.C,b),d);return HG(a,b)}function PG(a,b){return null!=a?QE((H(),""+a)):b}
+function QG(a,b,d){var e,f,g;f=UE(a.c);for(g=0;g<f.Sc();g++)e=f.Me(g),g<d.length&&(e=Gu(b,e),HG(a,e).content=Fp(d,K(g)))}function aF(a){this.a=new kh;this.c=a;this.b=a.getGrid()}y(277,1,{},aF);_.addFooter=function(a,b){var d;d=PG(a,this.b.w.d.b.length);d=pD(this.b.w,d);b&&QG(this,d,b);this.b.$d();this.c.redraw()};_.addHeader=function(a,b){var d;d=PG(a,this.b.C.d.b.length);d=pD(this.b.C,d);b&&QG(this,d,b);this.b._d();this.c.redraw()};
+_.getDefaultHeader=function(){var a,b;for(b=a=0;b<this.b.C.d.b.length;b++)if(Hu(this.b.C,b).a){a=b;break}return a};_.getFooterCell=function(a,b){var d;d=UE(this.c).Me(TE(this.c,b));d=Gu(Hu(this.b.w,a),d);return HG(this,d)};_.getFooterRowCount=function(){return this.b.w.d.b.length};_.getHeaderCell=function(a,b){var d;d=UE(this.c).Me(TE(this.c,b));return CG(this,a,d)};_.getHeaderRowCount=function(){return this.b.C.d.b.length};_.isFooterHidden=function(){return!this.b.w.e};_.isHeaderHidden=function(){return!this.b.C.e};
+_.removeFooter=function(a){qD(this.b.w,a);this.b.$d();this.c.redraw()};_.removeHeader=function(a){DD(this.b.C,a);this.b._d();this.c.redraw()};_.setDefaultHeader=function(a){a=Hu(this.b.C,a);FD(this.b.C,a);this.b._d();this.c.redraw()};_.setFooterHidden=function(a){var b=this.b.w;b.e=!a;b.ie();this.b.$d();mr(this.c.g,!0)};_.setFooterRowClassName=function(a,b){var d=Hu(this.b.w,a);d.e=b;d.d.ie();this.b.$d();this.c.redraw()};
+_.setHeaderHidden=function(a){var b=this.b.C;b.e=!a;b.ie();this.b._d();mr(this.c.g,!0)};_.setHeaderRowClassName=function(a,b){var d=Hu(this.b.C,a);d.e=b;d.d.ie();this.b._d();this.c.redraw()};E(277);function RG(a){gs();this.$=(W(),a)}y(280,153,Xb,RG);E(280);function MG(a){this.a=a}y(278,1,{},MG);_.le=function(a){yD(this.a,C(a.a))};E(278);function NG(a){this.a=a}y(279,1,{},NG);_.le=function(a){var b=this.a;b.d=a;b.c.ie()};E(279);function OG(a){this.a=a}y(281,1,{},OG);
+_.le=function(a){var b=this.a;null==a?(b.b=null,b.e=(NC(),vD),b.c.ie()):Object(a)!==a||A(a,46)?(a=(H(),""+a),b.b=a,b.e=(NC(),vD),b.c.ie()):Mm(a)&&(a=new RG(a),b.b=a,b.e=(NC(),xD),b.c.ie())};E(281);function LG(a,b,d){this.a=a;this.b=b;this.c=d}y(282,1,{},LG);_.le=function(a){var b=this.a,d=this.c;this.b.le(a);b.c.redraw();a=b.b;A(d,114)?a._d():a.$d()};E(282);function SG(a){if(0==a.c.length)a=0;else{if(0==a.c.length)a=null;else{a=pn(a,0);var b=IE;a=a?Jn(a,ib,b):null}a=a.a}return a}
+function mr(a,b){a.a&&(xn(a.a),!0)&&((a.c=b)&&(a.f=0),Me(a,b?1:30))}function TG(a,b){var d;0<b&&(b=QE((H(),""+b)),b+=a.d.C.e?a.d.C.d.b.length:0,b+=a.d.w.e?a.d.w.d.b.length:0,a.c||b!=a.j)&&(a.j=b,d=C(SG(wn(X(a.d),T(G(z,1),l,2,4,["tr td"]))))+1,a.f=d*b,Py(a.d.u,a.f+w))}function ZE(a){this.c=this.g=this.i=!1;this.e=a;this.d=a.getGrid()}y(317,50,{},ZE);
+_.db=function(){var a;0==this.b&&(this.b=this.e.defaultHeightByRows,0==this.j&&(this.j=this.b));a=this.a;a=C(0==a.c.length?0:vo((!Sn&&(Sn=(!$m&&($m=new an),Ao(),Qo)),Sn),pn(a,0),v));if(this.c||a!=this.k){var b=this.d.u;(W(),b.$).style[v]="100%";Iy(b);yB(this.d.a);this.k=a}if(this.i)TG(this,this.b);else if(a=this.a,a=C(0==a.c.length?0:vo((!Sn&&(Sn=(!$m&&($m=new an),Ao(),Qo)),Sn),pn(a,0),u)),1<Wu(a-this.f))for((this.g=1>=FB(a-SG(X(this.d))))?0==this.f&&(a=this.d.q,a=ph(a?Id(a,a.size,a.Sc).bind(a)():
+0,this.b),TG(this,a)):(Py(this.d.u,"100%"),this.f=a),a=this.d.u,yz(a.j),yz(a.a),yz(a.f),b=0;b<a.c.a.b.length;b++){var d=Fz(a.c,b),e=a.c,f=K(b),d=new Y(d);V();var g=void 0,g=new UG(1);Gz(g.d,f,d);Hz(e,new VG(g))}this.c=!1};_.b=0;_.c=!1;_.f=0;_.g=!1;_.i=!1;_.j=0;_.k=0;E(317);function dF(a){this.a=a;jm.call(this)}y(318,5,Wa,dF);_.Ob=function(){mr(this.a,!1)};E(318);
+function WG(a,b){a.r=-1;a.s=-1;if(1<=b.length)try{a.r=QE(b[0])}catch(d){if(d=Ph(d),!A(d,13))throw Qh(d);}if(2<=b.length){try{a.s=QE(b[1])}catch(e){if(e=Ph(e),!A(e,13))throw Qh(e);}if(-1==a.s&&-1!=b[1].indexOf("-"))try{a.s=QE(ve(b[1],0,ne(b[1],ze(45))))}catch(f){if(f=Ph(f),!A(f,13))throw Qh(f);}}}
+function XG(a,b){var d,e;d=ne(b,ze(46));0>d&&(d=b.length);a.a=QE(YG(b,0,d));e=ze(46);e=b.indexOf(e,d+1);0>e&&(e=b.length);try{a.b=QE(pe(YG(b,d+1,e),"[^0-9].*",""))}catch(f){if(f=Ph(f),!A(f,65))throw Qh(f);}}function YG(a,b,d){0>b&&(b=0);(0>d||d>a.length)&&(d=a.length);return ve(a,b,d-b)}
+function At(a){var b,d,e,f,g;a=a.toLowerCase();this.e=-1!=a.indexOf(cc)&&-1==a.indexOf(vb)&&-1==a.indexOf(Oc);a.indexOf(" presto/");this.o=-1!=a.indexOf(Oc);this.p=!this.o&&-1!=a.indexOf("applewebkit");this.c=-1!=a.indexOf(" chrome/");this.j=-1!=a.indexOf("opera");this.f=(this.f=-1!=a.indexOf(bc)&&!this.j&&-1==a.indexOf("webtv"))||this.o;this.n=!this.c&&!this.f&&-1!=a.indexOf(ac);this.d=-1!=a.indexOf(" firefox/");this.k=-1!=a.indexOf("phantomjs/");a.indexOf("chromeframe");try{this.e?(e=a.indexOf("rv:"),
+0<=e&&(f=ve(a,e+3,a.length-(e+3)),f=re(f,Pc,"$1"),yo(f))):this.p?(f=we(a,a.indexOf("webkit/")+7),f=re(f,"([0-9]+)[^0-9].+","$1"),yo(f)):this.f&&(g=a.indexOf(Oc),0<=g&&(f=ve(a,g+8,a.length-(g+8)),f=re(f,"([0-9]+\\.[0-9]+).*","$1"),yo(f)))}catch(h){if(h=Ph(h),!A(h,13))throw Qh(h);}try{this.f?-1==a.indexOf(bc)?(e=a.indexOf("rv:"),0<=e&&(f=ve(a,e+3,a.length-(e+3)),f=re(f,Pc,"$1"),XG(this,f))):(d=we(a,a.indexOf("msie ")+5),d=YG(d,0,d.indexOf(";")),XG(this,d)):this.d?(b=a.indexOf(" firefox/")+9,XG(this,
+YG(a,b,b+5))):this.c?(b=a.indexOf(" chrome/")+8,XG(this,YG(a,b,b+5))):this.n?(b=a.indexOf(" version/")+9,XG(this,YG(a,b,b+5))):this.j&&(b=a.indexOf(" version/"),-1!=b?b+=9:b=a.indexOf("opera/")+6,XG(this,YG(a,b,b+5)))}catch(n){if(n=Ph(n),!A(n,13))throw Qh(n);}if(-1!=a.indexOf("windows "))this.q=1,a.indexOf("windows phone");else if(-1!=a.indexOf("android"))this.q=5,-1!=a.indexOf("android")&&(a=YG(a,a.indexOf("android ")+8,a.length),a=YG(a,0,a.indexOf(";")),a=se(a,"\\.",0),WG(this,a));else if(-1!=a.indexOf("linux"))this.q=
+3;else if(-1!=a.indexOf("macintosh")||-1!=a.indexOf("mac osx")||-1!=a.indexOf("mac os x"))this.g=-1!=a.indexOf("ipad"),this.i=-1!=a.indexOf("iphone"),this.g||-1!=a.indexOf("ipod")||this.i?(this.q=4,-1!=a.indexOf("os ")&&-1!=a.indexOf(" like mac")&&(a=YG(a,a.indexOf("os ")+3,a.indexOf(" like mac")),a=se(a,"_",0),WG(this,a))):this.q=2}y(573,1,l,At);_.a=-1;_.b=-1;_.c=!1;_.d=!1;_.e=!1;_.f=!1;_.g=!1;_.i=!1;_.j=!1;_.k=!1;_.n=!1;_.o=!1;_.p=!1;_.q=0;_.r=-1;_.s=-1;E(573);
+function uy(){uy=x;vy=new ZG;tE=new $G}y(60,4,Qc);var vy,tE,sE=F(60,function(){uy();return T(G(sE,1),l,60,0,[vy,tE])});function ZG(){S.call(this,"ASCENDING",0)}y(332,60,Qc,ZG);_.oe=function(){return tE};F(332,null);function $G(){S.call(this,"DESCENDING",1)}y(333,60,Qc,$G);_.oe=function(){return vy};F(333,null);function NC(){NC=x;OC=new aH("TEXT",0);vD=new aH("HTML",1);xD=new aH("WIDGET",2)}function aH(a,b){S.call(this,a,b)}y(88,4,{88:1,3:1,6:1,4:1},aH);
+var vD,OC,xD,bH=F(88,function(){NC();return T(G(bH,1),l,88,0,[OC,vD,xD])});function zy(){zy=x;Qy=new cH("CSS",0);Ay=new cH("ROW",1)}function cH(a,b){S.call(this,a,b)}y(89,4,{89:1,3:1,6:1,4:1},cH);var Qy,Ay,dH=F(89,function(){zy();return T(G(dH,1),l,89,0,[Qy,Ay])});function GF(){GF=x;HF=Wi((zy(),T(G(dH,1),l,89,0,[Qy,Ay])))}var HF;function nu(a,b){if(a.b>b.a||b.b>a.a)throw new J("There is a gap between "+a+" and "+b);return new Xt(ph(a.b,b.b),L(a.a,b.a))}function fu(a,b){return a.b<=b&&b<a.a}
+function KC(a,b){return a===b?!0:null==b||eH!=Od(b)||a.a!=b.a||a.b!=b.b?!1:!0}function ru(a,b){return a.b<b.a&&b.b<a.a}function ju(a){return a.b>=a.a}function su(a,b){return a.b>=a.a&&b.b>=b.a?!0:b.b<=a.b&&a.a<=b.a}function Tt(a){return a.a-a.b}function Ot(a,b){var d,e,f;f=fH(a,b.b);e=f[0];d=fH(f[1],b.a);f=d[0];d=d[1];return T(G(eH,1),l,16,0,[e,f,d])}function Wt(a,b){var d,e,f;f=fu(b,a.b);e=fu(b,a.a);d=a.b<b.b&&a.a>=b.a;return f?e?a:new Xt(a.b,b.a):e?new Xt(b.b,a.a):d?b:$(a.b,0)}
+function fH(a,b){return b<a.b?T(G(eH,1),l,16,0,[$(a.b,0),a]):b>=a.a?T(G(eH,1),l,16,0,[a,$(a.a,0)]):T(G(eH,1),l,16,0,[new Xt(a.b,b),new Xt(b,a.a)])}function Xt(a,b){if(a>b)throw new J("start must not be greater than end");this.b=a;this.a=b}function $(a,b){if(0>b)throw new J("length must not be negative");return new Xt(a,a+b)}y(16,1,{16:1,3:1},Xt);_.eQ=function(a){return KC(this,a)};_.hC=function(){var a;a=31+this.a;return a=31*a+this.b};
+_.tS=function(){return de(eH),eH.i+" ["+this.b+".."+this.a+"["+(this.b>=this.a?" (empty)":"")};_.a=0;_.b=0;var eH=E(16);function ox(){ox=x;px=new gH("ANY",0);mF=new gH("START",1);iz=new gH("MIDDLE",2);jF=new gH("END",3)}function gH(a,b){S.call(this,a,b)}y(62,4,{62:1,3:1,6:1,4:1},gH);var px,jF,iz,mF,hH=F(62,function(){ox();return T(G(hH,1),l,62,0,[px,mF,iz,jF])});function kF(){kF=x;lF=Wi((ox(),T(G(hH,1),l,62,0,[px,mF,iz,jF])))}var lF;y(127,1,{});_.tS=$n;E(127);
+function Dl(){sh.call(this,"divide by zero")}y(429,10,wa,Dl);E(429);function Th(a){sh.call(this,a)}y(185,10,wa,Th);E(185);function em(){em=x;Bp=new iH(!1);fm=new iH(!0)}function iH(a){this.a=a}function jH(a){return H(),""+a}y(56,1,{3:1,56:1,6:1},iH);_.Ab=function(a){var b=this.a;a=a.a;em();return b==a?0:b?1:-1};_.eQ=function(a){return A(a,56)&&a.a==this.a};_.hC=function(){return this.a?1231:1237};_.tS=function(){return jH(this.a)};_.a=!1;var Bp,fm,Ap=E(56);
+function yo(a){var b;if(b=kH,!b&&(b=kH=/^\s*[+-]?(NaN|Infinity|((\d+\.?\d*)|(\.\d+))([eE][+-]?\d+)?[dDfF]?)\s*$/),!b.test(a))throw new lH(Rc+a+'"');return parseFloat(a)}
+function QE(a){var b,d;if(null==a)throw new lH(xa);d=a.length;for(b=0<d&&(45==a.charCodeAt(0)||43==a.charCodeAt(0))?1:0;b<d;b++){var e=a.charCodeAt(b);if(-1==(48<=e&&58>e?e-48:97<=e&&97>e?e-97+10:65<=e&&65>e?e-65+10:-1))throw new lH(Rc+a+'"');}d=parseInt(a,10);b=-2147483648>d;if(isNaN(d))throw new lH(Rc+a+'"');if(b||2147483647<d)throw new lH(Rc+a+'"');return d}y(46,1,{3:1,46:1});var kH;E(46);function zp(a){this.a=a}y(96,46,{3:1,96:1,6:1,46:1},zp);_.Ab=mH;_.pe=$n;
+_.eQ=function(a){return A(a,96)&&a.a==this.a};_.hC=$n;_.tS=function(){return jH(this.a)};_.a=0;var wp=E(96);function xp(){xp=x;yp=te(wp,l,96,256,0)}var yp;function Y(a){this.a=a}function RE(a){this.a=yo(a)}y(12,46,{3:1,6:1,12:1,46:1},Y,RE);_.Ab=nH;_.pe=$n;_.eQ=function(a){return A(a,12)&&a.a==this.a};_.hC=oH;_.tS=function(){return jH(this.a)};_.a=0;var IE=E(12);function mp(a){this.a=a}y(126,46,{3:1,6:1,126:1,46:1},mp);_.Ab=nH;_.pe=$n;_.eQ=function(a){return A(a,126)&&a.a==this.a};_.hC=oH;_.tS=function(){return jH(this.a)};
+_.a=0;var lp=E(126);function J(a){sh.call(this,a)}y(8,10,wa,J);E(8);function di(){lh(this)}function Z(a){sh.call(this,a)}y(11,10,wa,di,Z);E(11);function zs(){lh(this)}function Xh(a){sh.call(this,a)}y(28,10,{3:1,13:1,28:1,10:1,15:1},zs,Xh);E(28);function pH(a){this.a=a}function Ol(a){var b,d;if(0>a)return 0;if(0==a)return 32;b=-(a>>16)>>16&16;d=16-b;a>>=b;b=a-256>>16&8;d+=b;a<<=b;b=a-4096>>16&4;d+=b;a<<=b;b=a-16384>>16&2;d+=b;a=a<<b>>14;b=a&~(a>>1);return d+2-b}
+function Il(a){var b,d;if(0==a)return 32;d=0;for(b=1;0==(b&a);b<<=1)++d;return d}function K(a){var b,d;return-129<a&&128>a?(b=a+128,d=(qH(),rH)[b],!d&&(d=rH[b]=new pH(a)),d):new pH(a)}y(83,46,{3:1,6:1,83:1,46:1},pH);_.Ab=function(a){var b=this.a;a=a.a;return b<a?-1:b>a?1:0};_.pe=$n;_.eQ=function(a){return A(a,83)&&a.a==this.a};_.hC=$n;_.tS=function(){return jH(this.a)};_.a=0;var np=E(83);function qH(){qH=x;rH=te(np,l,83,256,0)}var rH;function rp(a){this.a=a}y(85,46,{3:1,6:1,85:1,46:1},rp);
+_.Ab=function(a){var b=this.a;a=a.a;return Ml(b,a)?Wl(b,a)?1:0:-1};_.pe=function(){return Xl(this.a)};_.eQ=function(a){return A(a,85)&&Pl(a.a,this.a)};_.hC=function(){var a=this.a;return a.l|a.m<<22};_.tS=function(){var a=this.a;return H(),""+Yl(a)};_.a={l:0,m:0,h:0};var op=E(85);function pp(){pp=x;qp=te(op,l,85,256,0)}var qp;function FB(a){return 0>=a?0-a:a}function Wu(a){return 0>a?-a:a}function mv(a){return Math.ceil(a)}function cw(a){return Math.floor(a)}function L(a,b){return a>b?a:b}
+function ph(a,b){return a<b?a:b}function Zh(){lh(this)}function ai(a){sh.call(this,a)}y(52,10,{3:1,13:1,52:1,10:1,15:1},Zh,ai);E(52);function lH(a){sh.call(this,a)}y(65,8,{3:1,13:1,65:1,10:1,15:1},lH);E(65);function vp(a){this.a=a}y(86,46,{3:1,6:1,46:1,86:1},vp);_.Ab=mH;_.pe=$n;_.eQ=function(a){return A(a,86)&&a.a==this.a};_.hC=$n;_.tS=function(){return jH(this.a)};_.a=0;var sp=E(86);function tp(){tp=x;up=te(sp,l,86,256,0)}var up;function sH(){sH=x;tH={};uH={}}
+function Vd(a){sH();var b=":"+a,d=uH[b];if(null!=d)return d;d=tH[b];if(null==d){var e,f,g;e=0;f=a.length;g=f-4;for(d=0;d<g;)e=a.charCodeAt(d+3)+31*(a.charCodeAt(d+2)+31*(a.charCodeAt(d+1)+31*(a.charCodeAt(d)+31*e))),e|=0,d+=4;for(;d<f;)e*=31,g=d++,g=a.charCodeAt(g),e+=g;d=e|0}256==vH&&(tH=uH,uH={},vH=0);++vH;return uH[b]=d}var tH,vH=0,uH;function gi(a,b){a.a+=b;return a}function fi(){this.a=""}function ul(a){this.a=a}y(75,127,{649:1},fi,ul);_.tS=$n;E(75);function wH(){lh(this)}
+function us(a){sh.call(this,a)}y(24,10,{3:1,13:1,10:1,15:1,24:1},wH,us);E(24);function dy(a,b){var d,e,f;Yh(b);d=!1;for(f=b.Bc();f.Hc();)e=f.Ic(),d|=il(a,e)}function RA(a,b,d){var e;for(e=a.Bc();e.Hc();)if(a=e.Ic(),ce(b)===ce(a)||null!=b&&Rd(b,a))return d&&e.Jc(),!0;return!1}function BD(a,b){var d,e;Yh(b);for(e=b.Bc();e.Hc();)if(d=e.Ic(),!a.we(d))return!1;return!0}
+function xH(a){var b,d,e,f;f=new ul("[");b=!1;for(e=a.Bc();e.Hc();)d=e.Ic(),b?f.a+=", ":b=!0,gi(f,d===a?"(this Collection)":(H(),""+d));f.a+="]";return f.a}y(629,1,{});_.we=yH;_.eQ=Zd;_.hC=$d;_.xe=zH;_.ye=AH;_.ze=BH;_.tS=function(){return xH(this)};E(629);function CH(a,b){var d,e,f;d=b.We();f=b.ke();e=a.Ee(d);return!(ce(f)===ce(e)||null!=f&&Rd(f,e))||null==e&&!a.Be(d)?!1:!0}
+function DH(a,b){var d,e;if(b===a)return!0;if(!A(b,59)||a.Sc()!=b.Sc())return!1;for(e=b.De().Bc();e.Hc();)if(d=e.Ic(),!a.Ae(d))return!1;return!0}function EH(a,b,d){var e,f;for(e=a.De().Bc();e.Hc();)if(a=e.Ic(),f=a.We(),ce(b)===ce(f)||null!=b&&Rd(b,f))return d&&(a=new FH(a.We(),a.ke()),e.Jc()),a;return null}function GH(a){var b,d,e,f;f=new ul("{");b=!1;for(e=a.De().Bc();e.Hc();)d=e.Ic(),b?f.a+=", ":b=!0,gi(f,HH(a,d.We())),f.a+="\x3d",gi(f,HH(a,d.ke()));f.a+="}";return f.a}
+function HH(a,b){return b===a?"(this Map)":(H(),""+b)}function IH(a){return a?a.ke():null}y(632,1,Sc);_.Ae=function(a){return CH(this,a)};_.Be=function(a){return!!EH(this,a,!1)};_.Ce=function(a){var b,d;for(d=this.De().Bc();d.Hc();)if(b=d.Ic(),b=b.ke(),ce(a)===ce(b)||null!=a&&Rd(a,b))return!0;return!1};_.eQ=function(a){return DH(this,a)};_.Ee=function(a){return IH(EH(this,a,!1))};_.hC=function(){return JH(this.De())};_.xe=zH;_.Fe=function(){throw new us("Put not supported on this map");};
+_.Ge=function(a){return IH(EH(this,a,!0))};_.Sc=function(){return this.De().Sc()};_.tS=function(){return GH(this)};E(632);function yr(a,b){return Jd(b)?null==b?!!KH(a.d,null):void 0!==a.f.gf(b):!!KH(a.d,b)}function pl(a,b){return Jd(b)?Tq(a,b):IH(KH(a.d,b))}function Tq(a,b){return null==b?IH(KH(a.d,null)):a.f.gf(b)}function ql(a,b,d){return Jd(b)?N(a,b,d):Gz(a.d,b,d)}function N(a,b,d){return null==b?Gz(a.d,null,d):a.f.kf(b,d)}
+function sl(a,b){return Jd(b)?null==b?LH(a.d,null):a.f.lf(b):LH(a.d,b)}function Wk(a){MH();a.d=NH.cf();a.d.b=a;a.f=NH.df();a.f.b=a;a.e=0;OH(a)}y(99,632,Sc);_.He=function(){Wk(this)};_.Be=function(a){return yr(this,a)};_.Ce=function(a){return this.f.Ce(a)||this.d.Ce(a)};_.De=function(){return new PH(this)};_.Ee=function(a){return pl(this,a)};_.Fe=function(a,b){return ql(this,a,b)};_.Ge=function(a){return sl(this,a)};_.Sc=gF;_.e=0;E(99);y(633,629,Tc);_.we=yH;
+_.eQ=function(a){return a===this?!0:A(a,45)&&a.Sc()==this.Sc()?BD(this,a):!1};_.hC=function(){return JH(this)};_.xe=zH;_.ye=AH;_.ze=BH;E(633);function PH(a){this.a=a}y(128,633,Tc,PH);_.we=function(a){return A(a,41)?CH(this.a,a):!1};_.Bc=function(){return new QH(this.a)};_.Sc=RH;E(128);function SH(a){if(a.a.Hc())return!0;if(a.a!=a.c)return!1;a.a=a.d.d._e();return a.a.Hc()}function QH(a){this.d=a;this.a=this.c=this.d.f._e();this._gwt_modCount=a._gwt_modCount}y(338,1,{},QH);_.Hc=function(){return SH(this)};
+_.Ic=function(){return TH(this.d,this),P(SH(this)),this.b=this.a,this.a.Ic()};_.Jc=function(){ci(!!this.b);TH(this.d,this);this.b.Jc();this.b=null;this._gwt_modCount=this.d._gwt_modCount};E(338);function aB(a){var b=a.b,d;d=new CA(a,0);for(a=0;a<b;++a)P(d.b<d.d.Sc()),d.d.Me(d.c=d.b++),PB(d)}function kA(a,b){var d,e;d=0;for(e=a.Sc();d<e;++d)if(UH(b,a.Me(d)))return d;return-1}y(630,629,Uc);_.Ke=function(){throw new us("Add not supported on this list");};_.Le=function(a){this.Ke(this.Sc(),a);return!0};
+_.we=yH;_.eQ=function(a){var b,d,e;if(a===this)return!0;if(!A(a,44)||this.Sc()!=a.Sc())return!1;e=a.Bc();for(b=this.Bc();b.Hc();)if(a=b.Ic(),d=e.Ic(),!(ce(a)===ce(d)||null!=a&&Rd(a,d)))return!1;return!0};_.hC=function(){V();var a,b,d;d=1;for(b=this.Bc();b.Hc();)a=b.Ic(),d=31*d+(null!=a?Pd(a):0),d|=0;return d};_.Ne=function(a){return kA(this,a)};_.xe=zH;_.Bc=function(){return new kl(this)};_.Oe=function(){return this.Pe(0)};_.Pe=function(a){return new CA(this,a)};
+_.Qe=function(){throw new us("Remove not supported on this list");};_.Re=function(a){return RA(this,a,!0)};_.Se=function(){throw new us("Set not supported on this list");};_.Te=function(a,b){return new Cv(this,a,b)};_.ye=AH;_.ze=BH;E(630);function PB(a){ci(-1!=a.c);a.d.Qe(a.c);a.b=a.c;a.c=-1}function kl(a){this.d=a}y(20,1,{},kl);_.Hc=function(){return this.b<this.d.Sc()};_.Ic=function(){return P(this.Hc()),this.d.Me(this.c=this.b++)};_.Jc=VH;_.b=0;_.c=-1;E(20);function OA(a){return a.b<a.d.Sc()}
+function PA(a){return P(a.b<a.d.Sc()),a.d.Me(a.c=a.b++)}function CA(a,b){this.d=this.a=a;bi(b,a.Sc());this.b=b}y(97,20,{},CA);_.Hc=function(){return OA(this)};_.Ue=function(){return 0<this.b};_.Ic=function(){return PA(this)};_.Ve=function(){return P(0<this.b),this.a.Me(this.c=--this.b)};_.Jc=VH;E(97);function Cv(a,b,d){var e=a.Sc();if(0>b)throw new Xh(ya+b+" \x3c 0");if(d>e)throw new Xh("toIndex: "+d+" \x3e size "+e);if(b>d)throw new J(ya+b+" \x3e toIndex: "+d);this.c=a;this.a=b;this.b=d-b}
+y(38,630,Uc,Cv);_.Ke=function(a,b){bi(a,this.b);this.c.Ke(this.a+a,b);++this.b};_.Me=function(a){return Wh(a,this.b),this.c.Me(this.a+a)};_.Qe=function(a){Wh(a,this.b);a=this.c.Qe(this.a+a);--this.b;return a};_.Se=function(a,b){Wh(a,this.b);return this.c.Se(this.a+a,b)};_.Sc=eF;_.a=0;_.b=0;E(38);function sn(a){a=a.a.De().Bc();return new WH(a)}function tn(a){this.a=a}y(35,633,Tc,tn);_.we=function(a){return this.a.Be(a)};_.Bc=function(){return sn(this)};_.Sc=RH;E(35);
+function un(a){return a.a.Ic().We()}function WH(a){this.a=a}y(340,1,{},WH);_.Hc=XH;_.Ic=function(){return un(this)};_.Jc=YH;E(340);function My(a){a=a.a.De().Bc();return new ZH(a)}function Ny(a){this.a=a}y(32,629,{},Ny);_.we=function(a){return this.a.Ce(a)};_.Bc=function(){return My(this)};_.Sc=RH;E(32);function Oy(a){return a.a.Ic().ke()}function ZH(a){this.a=a}y(341,1,{},ZH);_.Hc=XH;_.Ic=function(){return Oy(this)};_.Jc=YH;E(341);function $H(a,b){var d;d=a.e;a.e=b;return d}y(63,1,Vc);
+_.eQ=function(a){return A(a,41)?UH(this.d,a.We())&&UH(this.e,a.ke()):!1};_.We=fF;_.ke=gF;_.hC=function(){return aI(this.d)^aI(this.e)};_.Xe=function(a){return $H(this,a)};_.tS=function(){return this.d+"\x3d"+this.e};E(63);function FH(a,b){this.d=a;this.e=b}y(64,63,Wc,FH);E(64);function kC(a){var b=a.e;this.d=a.d;this.e=b}y(339,63,Vc,kC);_.Xe=bI;E(339);y(635,1,{41:1});_.eQ=function(a){return A(a,41)?UH(this.b,a.We())&&UH(this.a.gf(this.b),a.ke()):!1};_.hC=function(){return aI(this.b)^aI(this.a.gf(this.b))};
+_.tS=function(){return this.b+"\x3d"+this.a.gf(this.b)};E(635);function cI(a,b){var d;d=b.We();d=a.Ze(d);return!!d&&UH(d.e,b.ke())}function lB(a,b){return IH(a.Ze(b))}function hC(a){if(!a)throw new Vh;return a.d}y(646,632,Sc);_.Ae=function(a){return cI(this,a)};_.Be=function(a){return!!this.Ze(a)};_.De=function(){return new dI(this)};_.Ee=function(a){return lB(this,a)};E(646);function dI(a){this.b=a}y(141,633,Tc,dI);_.we=function(a){return A(a,41)&&cI(this.b,a)};_.Bc=function(){return this.b.Ye()};
+_.Sc=eI;E(141);function $z(a,b,d){Yh(d);a=rA(a,b);for(b=new kl(d);b.b<b.d.Sc();)d=(P(b.b<b.d.Sc()),b.d.Me(b.c=b.b++)),fI(a,d)}function cA(a,b){var d;d=rA(a,b);try{return P(d.b!=d.d.c),d.c=d.b,d.b=d.b.a,++d.a,d.c.c}catch(e){e=Ph(e);if(A(e,43))throw new Xh("Can't get element "+b);throw Qh(e);}}function qA(a,b){var d,e;d=rA(a,b);try{return e=(P(d.b!=d.d.c),d.c=d.b,d.b=d.b.a,++d.a,d.c.c),DA(d),e}catch(f){f=Ph(f);if(A(f,43))throw new Xh("Can't remove element "+b);throw Qh(f);}}y(636,630,Uc);
+_.Ke=function(a,b){var d;d=rA(this,a);fI(d,b)};_.Me=function(a){return cA(this,a)};_.Bc=function(){return rA(this,0)};_.Qe=function(a){return qA(this,a)};_.Se=function(a,b){var d,e;d=rA(this,a);try{return e=(P(d.b!=d.d.c),d.c=d.b,d.b=d.b.a,++d.a,d.c.c),ci(!!d.c),d.c.c=b,e}catch(f){f=Ph(f);if(A(f,43))throw new Xh("Can't set element "+a);throw Qh(f);}};E(636);function gI(a){a.b=te(I,l,1,0,3)}function BA(a,b,d){bi(b,a.b.length);a.b.splice(b,0,d)}function Le(a,b){a.b[a.b.length]=b;return!0}
+function Ju(a,b){var d;d=b.ye();0!=d.length&&zl(d,0,a.b,a.b.length,d.length,!1)}function Gv(a,b){Wh(b,a.b.length);return a.b[b]}function vq(a,b){for(var d=0;d<a.b.length;++d)if(UH(b,a.b[d]))return d;return-1}function Fv(a,b){var d;d=(Wh(b,a.b.length),a.b[b]);a.b.splice(b,1);return d}function Se(a,b){var d;d=vq(a,b);if(-1==d)return!1;a.Qe(d);return!0}function zv(a,b,d){var e;e=(Wh(b,a.b.length),a.b[b]);a.b[b]=d;return e}
+function Qe(a,b){var d,e;e=a.b.length;b.length<e&&(b=xl(b,e));for(d=0;d<e;++d)b[d]=a.b[d];b.length>e&&(b[e]=null);return b}function Ie(){gI(this)}function Xx(a){gI(this);Uh(0<=a,"Initial capacity must not be negative")}function Fq(a){gI(this);a=a.ye();zl(a,0,this.b,0,a.length,!1)}y(9,630,Xc,Ie,Xx,Fq);_.Ke=function(a,b){BA(this,a,b)};_.Le=function(a){return Le(this,a)};_.we=function(a){return-1!=vq(this,a)};_.Me=function(a){return Gv(this,a)};_.Ne=function(a){return vq(this,a)};
+_.xe=function(){return 0==this.b.length};_.Qe=function(a){return Fv(this,a)};_.Re=function(a){return Se(this,a)};_.Se=function(a,b){return zv(this,a,b)};_.Sc=function(){return this.b.length};_.ye=function(){return wl(this.b,this.b.length)};_.ze=function(a){return Qe(this,a)};E(9);
+function EF(a,b,d,e,f,g){var h,n,p;if(7>e-d)for(a=d,h=a+1;h<e;++h)for(p=h;p>a&&0<g.me(b[p-1],b[p]);--p)d=b[p],b[p]=b[p-1],b[p-1]=d;else if(n=d+f,h=e+f,p=n+(h-n>>1),EF(b,a,n,p,-f,g),EF(b,a,p,h,-f,g),0>=g.me(a[p-1],a[p]))for(;d<e;)b[d++]=a[n++];else for(f=n,n=p;d<e;)n>=h||f<p&&0>=g.me(a[f],a[n])?b[d++]=a[f++]:b[d++]=a[n++]}function Em(a){this.a=a}y(36,630,Xc,Em);_.we=function(a){return-1!=kA(this,a)};_.Me=function(a){return Wh(a,this.a.length),this.a[a]};
+_.Se=function(a,b){var d;d=(Wh(a,this.a.length),this.a[a]);this.a[a]=b;return d};_.Sc=function(){return this.a.length};_.ye=function(){var a=this.a;return wl(a,a.length)};_.ze=function(a){var b,d;d=this.a.length;a.length<d&&(a=xl(a,d));for(b=0;b<d;++b)a[b]=this.a[b];a.length>d&&(a[d]=null);return a};E(36);function V(){V=x;tl=new hI;uA=new iI}function JH(a){V();var b,d;d=0;for(b=a.Bc();b.Hc();)a=b.Ic(),d+=null!=a?Pd(a):0,d|=0;return d}function Iu(a){V();return A(a,110)?new DB(a):new Ku(a)}var tl,uA;
+function hI(){}y(418,630,Xc,hI);_.we=jy;_.Me=function(a){Wh(a,0);return null};_.Bc=jI;_.Oe=jI;_.Sc=MD;E(418);function kI(){kI=x;lI=new mI}function mI(){}y(419,1,{},mI);_.Hc=am;_.Ue=am;_.Ic=nI;_.Ve=nI;_.Jc=function(){throw new di;};var lI;E(419);y(421,632,Yc,function(){});_.Be=jy;_.Ce=jy;_.De=function(){return V(),uA};_.Ee=function(){return null};_.Sc=MD;E(421);function iI(){}y(420,633,Zc,iI);_.we=jy;_.Bc=jI;_.Sc=MD;E(420);y(180,630,{3:1,44:1},function(a){this.a=a});
+_.we=function(a){return UH(this.a,a)};_.Me=function(a){Wh(a,1);return this.a};_.Sc=function(){return 1};E(180);function Zz(a){this.b=a}y(91,1,{},Zz);_.we=oI;_.eQ=Zd;_.hC=$d;_.xe=pI;_.Bc=qI;_.Sc=eI;_.ye=rI;_.ze=sI;_.tS=function(){return this.b.tS()};E(91);function RB(a){this.b=a}y(39,1,{},RB);_.Hc=tI;_.Ic=uI;_.Jc=vI;E(39);function Nu(a,b){return a.a.Ne(b)}function Lu(a,b,d){return new Ku(a.a.Te(b,d))}function Ku(a){this.a=this.b=a}y(66,91,Uc,Ku);_.Le=function(){throw new wH;};_.we=oI;_.eQ=wI;
+_.Me=function(a){return this.a.Me(a)};_.hC=xI;_.Ne=function(a){return Nu(this,a)};_.xe=function(){return this.a.xe()};_.Bc=qI;_.Oe=function(){return new yI(this.a.Pe(0))};_.Pe=function(a){return new yI(this.a.Pe(a))};_.Re=function(){throw new wH;};_.Se=zI;_.Sc=eI;_.Te=function(a,b){return Lu(this,a,b)};_.ye=rI;_.ze=sI;E(66);function yI(a){this.a=this.b=a}y(184,39,{},yI);_.Hc=tI;_.Ue=function(){return this.a.Ue()};_.Ic=uI;_.Ve=function(){return this.a.Ve()};_.Jc=vI;E(184);function VG(a){this.b=a}
+y(422,1,Sc,VG);_.De=function(){!this.a&&(this.a=new AI(new PH(this.b)));return this.a};_.eQ=function(a){return DH(this.b,a)};_.Ee=function(a){return Tq(this.b,a)};_.hC=function(){return JH(new PH(this.b))};_.xe=function(){return 0==this.b.e};_.Fe=zI;_.Ge=bI;_.Sc=function(){return this.b.e};_.tS=function(){return GH(this.b)};E(422);function cy(a){this.b=a}y(181,91,Tc,cy);_.we=oI;_.eQ=function(a){return this.b.eQ(a)};_.hC=function(){return this.b.hC()};_.xe=pI;_.Bc=qI;_.Sc=eI;_.ye=rI;_.ze=sI;E(181);
+function BI(a,b){var d;for(d=0;d<b;++d)a[d]=new CI(a[d])}function AI(a){this.b=a}y(423,181,Tc,AI);_.we=oI;_.Bc=function(){var a;a=this.b.Bc();return new DI(a)};_.ye=function(){var a;a=this.b.ye();BI(a,a.length);return a};_.ze=function(a){a=this.b.ze(a);BI(a,this.b.Sc());return a};E(423);function DI(a){this.a=a}y(424,1,{},DI);_.Hc=XH;_.Ic=function(){return new CI(this.a.Ic())};_.Jc=ks;E(424);function CI(a){this.a=a}y(182,1,{41:1},CI);_.eQ=wI;_.We=function(){return this.a.We()};_.ke=function(){return this.a.ke()};
+_.hC=xI;_.Xe=bI;_.tS=function(){return this.a.tS()};E(182);function DB(a){Ku.call(this,a)}y(183,66,Uc,DB);E(183);function CF(){CF=x;DF=new EI}var DF;function lC(a,b){Yh(a);Yh(b);return H(),Jd(a)?ye(a,b):a.Ab(b)}function EI(){}y(471,1,{},EI);_.me=function(a,b){return lC(a,b)};_.eQ=Zd;E(471);function TH(a,b){if(b._gwt_modCount!=a._gwt_modCount)throw new FI;}function OH(a){a._gwt_modCount=(a._gwt_modCount|0)+1}function FI(){lh(this)}y(596,10,wa,FI);E(596);function kh(){Wk(this)}
+function UG(a){Uh(0<=a,"Negative initial capacity");Uh(!0,"Non-positive load factor");Wk(this)}function AA(a){Wk(this);var b;Yh(a);for(b=(new GI(a)).b.Ye();OA(b.a);)a=b.b=PA(b.a),this.Fe(a.We(),a.ke())}y(17,99,Yc,kh,UG,AA);_.Ie=function(a,b){return ce(a)===ce(b)||null!=a&&Rd(a,b)};_.Je=function(a){return Pd(a)|0};E(17);function il(a,b){return null==a.a.Fe(b,a)}function ps(a,b){return a.a.Be(b)}function hl(){this.a=new kh}function fG(a){this.a=new UG(a.a.Sc());dy(this,a)}y(34,633,Zc,hl,fG);
+_.we=function(a){return ps(this,a)};_.xe=function(){return 0==this.a.Sc()};_.Bc=function(){return sn(new tn(this.a))};_.Sc=RH;_.tS=function(){return xH(new tn(this.a))};E(34);function KH(a,b){var d,e,f,g;d=null==b?"0":(H(),""+a.b.Je(b));e=a.a[d]||[];f=0;for(g=e.length;f<g;++f)if(d=e[f],a.b.Ie(b,d.We()))return d;return null}
+function Gz(a,b,d){var e,f,g,h;e=null==b?"0":(H(),""+a.b.Je(b));f=a.a;e=f[e]||(f[e]=[]);g=0;for(h=e.length;g<h;++g)if(f=e[g],a.b.Ie(b,f.We()))return f.Xe(d);e[e.length]=new FH(b,d);a=a.b;++a.e;OH(a);return null}function LH(a,b){var d,e,f,g;f=null==b?"0":(H(),""+a.b.Je(b));d=a.a[f]||[];for(g=0;g<d.length;g++)if(e=d[g],a.b.Ie(b,e.We()))return 1==d.length?delete a.a[f]:d.splice(g,1),d=a.b,--d.e,OH(d),e.ke();return null}function HI(){this.a=this.$e()}y(187,1,{},HI);
+_.Ce=function(a){var b,d,e,f,g,h,n;g=Object.getOwnPropertyNames(this.a);h=0;for(n=g.length;h<n;++h)for(b=g[h],d=this.a[b],e=0,f=d.length;e<f;++e)if(b=d[e],this.b.Ie(a,b.ke()))return!0;return!1};_.$e=function(){return Object.create(null)};_._e=function(){return new II(this)};E(187);function JI(a){if(a.c<a.a.length)return!0;if(a.b<a.d.length-1){var b=a.d[++a.b];a.a=a.g.a[b];a.c=0;return!0}return!1}function II(a){this.g=a;this.d=Object.getOwnPropertyNames(this.g.a);this.a=te(KI,l,41,0,0)}
+y(470,1,{},II);_.Hc=function(){return JI(this)};_.Ic=function(){return P(JI(this)),this.e=this.a,this.f=this.a[this.c++],this.f};_.Jc=function(){ci(!!this.f);LH(this.g,this.f.We());ce(this.a)===ce(this.e)&&1!=this.a.length&&--this.c;this.f=null};_.b=-1;_.c=0;_.e=null;_.f=null;E(470);function LI(){HI.call(this)}y(468,187,{},LI);_.Ce=function(a){var b=this.a,d;for(d in b)if(d==parseInt(d,10))for(var e=b[d],f=0,g=e.length;f<g;++f){var h=e[f].ke();if(this.af(a,h))return!0}return!1};_.$e=function(){return{}};
+_._e=function(){var a=this.bf(),b=this.a,d;for(d in b)if(d==parseInt(d,10))for(var e=b[d],f=0,g=e.length;f<g;++f)a.Le(e[f]);return a.Bc()};_.af=MI;_.bf=function(){return new NI(this)};E(468);function NI(a){this.a=a;gI(this)}y(469,9,Xc,NI);_.Qe=function(a){var b;return b=Fv(this,a),LH(this.a,b.We()),b};E(469);function OI(){}y(488,1,{},OI);_.cf=function(){return new HI};_.df=function(){return new PI};E(488);
+function MH(){MH=x;var a,b;if(b=Object.create&&Object.getOwnPropertyNames)b=Object.create(null),void 0!==b[$c]||0!=Object.getOwnPropertyNames(b).length?b=!1:(b[$c]=42,b=42!==b[$c]?!1:!0);NH=b?(a=Object.create(null),a[$c]=42,0==Object.getOwnPropertyNames(a).length)?new QI:new OI:new RI}var NH;function QI(){}y(490,488,{},QI);_.df=function(){return new SI};E(490);function RI(){}y(489,488,{},RI);_.cf=function(){return new LI};_.df=function(){return new TI};E(489);
+function UI(a,b){var d=a.a,e;for(e in d)if(a.ff(b,d[e]))return!0;return!1}function VI(a,b,d){var e;e=a.a[b];if(void 0===e){var f=a.b;++f.e;OH(f)}a.a[b]=void 0===d?null:d;return e}function WI(a,b){var d;d=a.a[b];if(void 0!==d){delete a.a[b];var e=a.b;--e.e;OH(e)}return d}function PI(){this.a=this.ef()}y(132,1,{},PI);_.Ce=function(a){return UI(this,a)};_.ef=function(){return Object.create(null)};_._e=function(){var a;a=this.hf();return new XI(this,a)};_.ff=MI;_.gf=function(a){return this.a[a]};
+_.hf=function(){return Object.getOwnPropertyNames(this.a)};_.jf=function(a){return new YI(this,a)};_.kf=function(a,b){return VI(this,a,b)};_.lf=function(a){return WI(this,a)};E(132);function XI(a,b){this.c=a;this.d=b}y(415,1,{},XI);_.Hc=function(){return this.a<this.d.length};_.Ic=function(){return P(this.a<this.d.length),new YI(this.c,this.d[this.b=this.a++])};_.Jc=function(){ci(-1!=this.b);this.c.lf(this.d[this.b]);this.b=-1};_.a=0;_.b=-1;E(415);function YI(a,b){this.a=a;this.b=b}
+y(178,635,{41:1},YI);_.We=eF;_.ke=function(){return this.a.gf(this.b)};_.Xe=function(a){return this.a.kf(this.b,a)};E(178);function TI(){PI.call(this)}y(412,132,{},TI);_.Ce=function(a){var b=this.a,d;for(d in b)if(58==d.charCodeAt(0)&&this.ff(a,b[d]))return!0;return!1};_.ef=function(){return{}};_._e=function(){var a=this.mf(),b;for(b in this.a)if(58==b.charCodeAt(0)){var d=this.jf(b.substring(1));a.Le(d)}return a.Bc()};_.gf=function(a){return this.a[":"+a]};_.mf=function(){return new ZI(this)};
+_.kf=function(a,b){return VI(this,":"+a,b)};_.lf=function(a){return WI(this,":"+a)};E(412);function ZI(a){this.a=a;gI(this)}y(414,9,Xc,ZI);_.Qe=function(a){var b;return b=Fv(this,a),WI(this.a,":"+b.We()),b};E(414);function SI(){PI.call(this)}y(413,132,{},SI);_.Ce=function(a){var b;b=this.a[$c];return void 0!==b&&this.b.Ie(a,b)?!0:UI(this,a)};_.hf=function(){var a;a=Object.getOwnPropertyNames(this.a);void 0!==this.a[$c]&&(a[a.length]=$c);return a};E(413);
+function zC(a,b,d){var e;if(e=pl(a.c,b))return b=$H(e,d),a.a&&($I(e),aJ(e)),b;e=new bJ(a,b,d);ql(a.c,b,e);aJ(e);return null}function yC(){Wk(this);this.b=new cJ(this);this.c=new kh;this.b.b=this.b;this.b.a=this.b}y(106,17,Yc,yC);_.He=function(){Wk(this.c);this.b.b=this.b;this.b.a=this.b};_.Be=function(a){return yr(this.c,a)};_.Ce=function(a){var b;for(b=this.b.a;b!=this.b;){if(UH(b.e,a))return!0;b=b.a}return!1};_.De=function(){return new dJ(this)};
+_.Ee=function(a){return(a=pl(this.c,a))?(this.a&&($I(a),aJ(a)),a.e):null};_.Fe=function(a,b){return zC(this,a,b)};_.Ge=function(a){(a=sl(this.c,a))?($I(a),a=a.e):a=null;return a};_.Sc=function(){return this.c.e};_.a=!1;E(106);function aJ(a){var b;b=a.c.b.b;a.b=b;a.a=a.c.b;b.a=a.c.b.b=a}function $I(a){a.a.b=a.b;a.b.a=a.a;a.a=a.b=null}function cJ(a){bJ.call(this,a,null,null)}function bJ(a,b,d){this.c=a;this.d=b;this.e=d}y(146,64,Wc,cJ,bJ);E(146);function dJ(a){this.a=a}y(585,633,Tc,dJ);
+_.we=function(a){return A(a,41)?CH(this.a,a):!1};_.Bc=function(){return new eJ(this)};_.Sc=function(){return this.a.c.e};E(585);function eJ(a){this.c=a;this.b=a.a.b.a;this._gwt_modCount=a.a.c._gwt_modCount}y(586,1,{},eJ);_.Hc=function(){return this.b!=this.c.a.b};_.Ic=function(){return TH(this.c.a.c,this),P(this.b!=this.c.a.b),this.a=this.b,this.b=this.b.a,this.a};
+_.Jc=function(){ci(!!this.a);TH(this.c.a.c,this);$I(this.a);sl(this.c.a.c,this.a.d);this._gwt_modCount=this.c.a.c._gwt_modCount;this.a=null};E(586);function ay(){this.a=new yC}function by(a){this.a=new yC;dy(this,a)}y(68,34,Zc,ay,by);E(68);function Pp(a,b,d,e){var f;f=new fJ;f.c=b;f.b=d;f.a=e;e.b=d.a=f;++a.b}function Ey(a){P(0!=a.b);return a.a.a.c}function Fy(a){P(0!=a.b);return a.c.b.c}
+function rA(a,b){var d,e;bi(b,a.b);if(b>=a.b>>1)for(e=a.c,d=a.b;d>b;--d)e=e.b;else for(e=a.a.a,d=0;d<b;++d)e=e.a;return new gJ(a,b,e)}function kq(a,b){b.a.b=b.b;b.b.a=b.a;b.a=b.b=null;b.c=null;--a.b}function tz(a){a.a.a=a.c;a.c.b=a.a;a.a.b=a.c.a=null;a.b=0}function Op(){this.a=new fJ;this.c=new fJ;tz(this)}y(179,636,{3:1,44:1},Op);_.Le=function(a){return Pp(this,a,this.c.b,this.c),!0};_.Pe=function(a){return rA(this,a)};_.Sc=eF;_.b=0;E(179);function fI(a,b){Pp(a.d,b,a.b.b,a.b);++a.a;a.c=null}
+function DA(a){var b;ci(!!a.c);b=a.c.a;kq(a.d,a.c);a.b==a.c?a.b=b:--a.a;a.c=null}function gJ(a,b,d){this.d=a;this.b=d;this.a=b}y(416,1,{},gJ);_.Hc=function(){return this.b!=this.d.c};_.Ue=function(){return this.b.b!=this.d.a};_.Ic=function(){return P(this.b!=this.d.c),this.c=this.b,this.b=this.b.a,++this.a,this.c.c};_.Ve=function(){return P(this.b.b!=this.d.a),this.c=this.b=this.b.b,--this.a,this.c.c};_.Jc=function(){DA(this)};_.a=0;_.c=null;E(416);function fJ(){}y(133,1,{},fJ);E(133);var KI=ke();
+function Vh(){lh(this)}y(43,10,{3:1,13:1,10:1,15:1,43:1},Vh);E(43);function UH(a,b){return ce(a)===ce(b)||null!=a&&Rd(a,b)}function aI(a){return null!=a?Pd(a):0}function hJ(a,b){var d,e;for(e=a.b;e;){d=lC(b,e.d);if(0==d)return e;d=0>d?0:1;e=e.a[d]}return null}function iC(a){var b;if(!a.b)return null;for(b=a.b;a=b.a[0];)b=a;return b}function jC(a,b,d){var e,f;e=null;for(f=a.b;f;){a=lC(b,f.d);if(d&&0==a)return f;0<=a?f=f.a[1]:(e=f,f=f.a[0])}return e}
+function bA(a,b){return new IA(a,(JA(),iJ),null,!1,b)}function jJ(a,b,d,e,f,g,h,n){var p;e&&((p=e.a[0])&&jJ(a,b,d,p,f,g,h,n),kJ(d,e.d,f,g,h,n)&&b.Le(e),(e=e.a[1])&&jJ(a,b,d,e,f,g,h,n))}function kJ(a,b,d,e,f,g){var h,n;return a.nf()&&(h=lC(b,d),0>h||!e&&0==h)||a.of()&&(n=lC(b,f),0<n||!g&&0==n)?!1:!0}
+function lJ(a,b,d,e){var f;if(b){f=lC(d.d,b.d);if(0==f)return e.d=$H(b,d.e),e.b=!0,b;f=0>f?0:1;b.a[f]=lJ(a,b.a[f],d,e);mJ(b.a[f])&&(mJ(b.a[1-f])?(b.b=!0,b.a[0].b=!1,b.a[1].b=!1):mJ(b.a[f].a[f])?b=nJ(b,1-f):mJ(b.a[f].a[1-f])&&(b=oJ(b,1-f)))}else return d;return b}function mJ(a){return!!a&&a.b}function Yu(a,b,d){b=new pJ(b,d);d=new qJ;a.b=lJ(a,a.b,b,d);d.b||++a.c;a.b.b=!1;return d.d}function qB(a,b){var d;d=new qJ;rJ(a,b,d);return d.d}
+function rJ(a,b,d){var e,f,g,h,n,p,q,r,t;if(a.b){r=g=null;n=new pJ(null,null);f=1;n.a[1]=a.b;for(q=n;q.a[f];)(p=f,h=r,r=q,q=q.a[f],e=lC(b,q.d),f=0>e?0:1,0!=e||d.c&&!UH(q.e,d.d)||(g=q),q&&q.b||mJ(q.a[f]))||(mJ(q.a[1-f])?r=r.a[p]=nJ(q,f):!mJ(q.a[1-f])&&(t=r.a[1-p])&&(mJ(t.a[1-p])||mJ(t.a[p])?(e=h.a[1]==r?1:0,mJ(t.a[p])?h.a[e]=oJ(r,p):mJ(t.a[1-p])&&(h.a[e]=nJ(r,p)),q.b=h.a[e].b=!0,h.a[e].a[0].b=!1,h.a[e].a[1].b=!1):(r.b=!1,t.b=!0,q.b=!0)));if(g){d.b=!0;d.d=g.e;if(q!=g){b=new pJ(q.d,q.e);d=g;h=n;for(f=
+null==h.d||0<lC(d.d,h.d)?1:0;h.a[f]!=d;)h=h.a[f],f=0<lC(d.d,h.d)?1:0;h.a[f]=b;b.b=d.b;b.a[0]=d.a[0];b.a[1]=d.a[1];d.a[0]=null;d.a[1]=null;r==g&&(r=b)}r.a[r.a[1]==q?1:0]=q.a[q.a[0]?0:1];--a.c}a.b=n.a[1];a.b&&(a.b.b=!1)}}function oJ(a,b){var d;d=1-b;a.a[d]=nJ(a.a[d],d);return nJ(a,b)}function nJ(a,b){var d,e;d=1-b;e=a.a[d];a.a[d]=e.a[b];e.a[b]=a;a.b=!0;e.b=!1;return e}function nB(){var a=null;this.b=null;!a&&(a=(CF(),CF(),DF));this.a=a}y(142,646,Yc,nB);_.Ye=function(){return new sJ(this)};_.De=function(){return new GI(this)};
+_.Ze=function(a){return hJ(this,a)};_.Fe=function(a,b){return Yu(this,a,b)};_.Ge=function(a){return qB(this,a)};_.Sc=Ek;_.c=0;E(142);function QA(a){PB(a.a);var b=a.c,d=a.b,e;e=new qJ;e.c=!0;e.d=d.ke();rJ(b,d.We(),e);a.b=null}function sJ(a){tJ.call(this,a,(JA(),uJ),null,!1,null,!1)}function tJ(a,b,d,e,f,g){var h;this.c=a;h=new Ie;jJ(a,h,b,a.b,d,e,f,g);this.a=new CA(h,0)}y(105,1,{},sJ,tJ);_.Hc=function(){return OA(this.a)};_.Ic=function(){return this.b=PA(this.a)};_.Jc=function(){QA(this)};E(105);
+function GI(a){this.b=a}y(193,141,Tc,GI);E(193);function pJ(a,b){this.d=a;this.e=b;this.a=te(vJ,l,78,2,0);this.b=!0}y(78,64,{63:1,64:1,41:1,78:1},pJ);_.b=!1;var vJ=E(78);function qJ(){}y(143,1,{},qJ);_.tS=function(){return"State: mv\x3d"+this.c+" value\x3d"+this.d+" done\x3d"+this.a+" found\x3d"+this.b};_.a=!1;_.b=!1;_.c=!1;E(143);function LA(a){var b;a.f.nf()?a.a?b=jC(a.c,a.b,!0):b=jC(a.c,a.b,!1):b=iC(a.c);return b&&kJ(a.f,b.d,a.b,a.a,a.e,a.d)?b:null}
+function IA(a,b,d,e,f){this.c=a;switch(b.g){case 2:if(0>lC(f,d))throw new J("subMap: "+f+" less than "+d);break;case 1:lC(f,f);break;case 3:lC(d,d)}this.f=b;this.b=d;this.a=e;this.e=f;this.d=!1}y(144,646,Sc,IA);_.Ye=function(){return new tJ(this.c,this.f,this.b,this.a,this.e,this.d)};_.De=function(){return new NA(this,this)};_.Ze=function(a){return(a=hJ(this.c,a))&&kJ(this.f,a.d,this.b,this.a,this.e,this.d)?a:null};_.xe=function(){return!LA(this)};
+_.Fe=function(a,b){if(!kJ(this.f,a,this.b,this.a,this.e,this.d))throw new J(a+" outside the range "+this.b+" to "+this.e);return Yu(this.c,a,b)};_.Ge=function(a){return kJ(this.f,a,this.b,this.a,this.e,this.d)?qB(this.c,a):null};_.Sc=function(){var a,b;a=0;for(b=new tJ(this.c,this.f,this.b,this.a,this.e,this.d);OA(b.a);b.b=PA(b.a))++a;return a};_.a=!1;_.d=!1;E(144);function NA(a,b){this.a=a;this.b=b}y(194,141,Tc,NA);_.xe=function(){return!LA(this.a)};E(194);
+function JA(){JA=x;uJ=new wJ("All",0);iJ=new xJ;KA=new yJ;mB=new zJ}function wJ(a,b){S.call(this,a,b)}y(53,4,ad,wJ);_.nf=am;_.of=am;var uJ,iJ,KA,mB,AJ=F(53,function(){JA();return T(G(AJ,1),l,53,0,[uJ,iJ,KA,mB])});function xJ(){S.call(this,"Head",1)}y(503,53,ad,xJ);_.of=bm;F(503,null);function yJ(){S.call(this,"Range",2)}y(504,53,ad,yJ);_.nf=bm;_.of=bm;F(504,null);function zJ(){S.call(this,"Tail",3)}y(505,53,ad,zJ);_.nf=bm;F(505,null);E(606);E(608);var Vl=E(null);E(611);var gz,BJ;BJ=ie("D");BJ.j="D";
+BJ.e=1;gz=BJ;var oh=E(null);_=Kd("vaadin.GridComponent",WE);_=Kd("vaadin.GridDataSource",hG);_=Kd("vaadin.GridStaticSection",aF);
+function Ee(a){return function(){var b;a:{var d=arguments,e;0!=Bh&&(e=Fe(),2E3<e-Dh&&(Dh=e,Ch=$wnd.setTimeout(Ah,10)));if(0==Bh++){e=(Eh(),Fh);var f,g;if(e.c){g=null;do f=e.c,e.c=null,g=Oh(f,g);while(e.c);e.c=g}e=!0}else e=!1;try{b=a.apply(this,d);break a}finally{if(d=e)if(e=(Eh(),Fh),e.d){g=null;do f=e.d,e.d=null,g=Oh(f,g);while(e.d);e.d=g}--Bh;d&&-1!=Ch&&($wnd.clearTimeout(Ch),Ch=-1)}b=void 0}return b}}
+var gwtOnLoad=gwtOnLoad=function(a,b,d,e){function f(){for(var a=0;a<g.length;a++)g[a]()}null==bd&&(bd=[]);var g=bd;$moduleName=b;$moduleBase=d;dd=e;if(a)try{Ee(f)()}catch(h){a(b,h)}else Ee(f)()};(function(){null==bd&&(bd=[]);for(var a=bd,b=0;b<arguments.length;b++)a.push(arguments[b])})(function(){$wnd.setTimeout(Ee(qt));var a,b,d;b=$doc.compatMode;a=T(vl(z),l,2,4,[Ca]);for(d=0;d<a.length&&a[d]!==b;d++);Zl();Fn(X((nm(),sm)),"v-grid-loaded")});
+var CJ=[[["locale","default"],["user.agent","gecko1_8"]],[["locale","default"],["user.agent","gecko1_8"]],[["locale","default"],["user.agent","gecko1_8"]],[["locale","default"],["user.agent","gecko1_8"]],[["locale","default"],["user.agent","ie10"]],[["locale","default"],["user.agent","ie10"]],[["locale","default"],["user.agent",ac]]];typeof window===ba&&typeof window.$gwt===ba&&(window.$gwt.permProps=CJ);function Zd(a){return this===a}function $d(){return Wd(this)}function am(){return!1}
+function bm(){return!0}function cm(){return Sa+this.g+Ta+this.d+Ua+this.f+Va+this.e+" ie6\x3d"+this.a+" ie8\x3d"+this.b+" ie9\x3d"+this.c}function Hp(){if(this.a){var a=G(I,1),b=l,d;d=gm(this,0);d=kp([this.a(d)]);hm(this,T(a,b,1,3,[d]))}}function tq(){}function uq(){}function rs(){}function ss(){if(!this.tc())throw new Z("Should only call onDetach when the widget is attached to the browser's document");try{this.xc()}finally{try{this.sc()}finally{W(),this.$.__listener=null,this.W=!1}}}
+function $n(){return this.a}function rv(){}function Kv(a){a.style[ec]=""}function uk(){return this.g}function vw(){return Ui(this.n.style,u)}function uw(){return Ui(this.n.style,v)}function Ak(){}function Or(){null.pf()}function ix(){ax()}function ey(){return null}function uz(){Iy(this.a)}function GA(){return"td"}function jy(){return!1}function qh(){return this.f}function Uz(){return this.k}function kD(){gs();de(gC);de(Tw)}function ND(){return-1}function RC(){return this.j}
+function gF(){return this.e}function bC(){return this.u}function uG(){this.b.length=0;Zk(this.c,new Vx(this.c,null,null))}function Tn(){return!1}function vG(){return BC(Ud)}function MD(){return 0}function wG(){this.c.length=0;Zk(this.b,new Vx(this.b,null,null))}function xG(a){return this.deselect(sG(this.b,a),!0)}function yG(a){return this.select(sG(this.b,a),!0)}function nH(a){var b=this.a;a=a.a;return b<a?-1:b>a?1:b==a?0:isNaN(b)?isNaN(a)?0:1:-1}function oH(){return C(this.a)}
+function mH(a){return this.a-a.a}function zH(){return 0==this.Sc()}function yH(a){return RA(this,a,!1)}function AH(){return this.ze(te(I,l,1,this.Sc(),3))}function BH(a){var b,d,e;e=this.Sc();a.length<e&&(a=xl(a,e));d=this.Bc();for(b=0;b<e;++b)a[b]=d.Ic();a.length>e&&(a[e]=null);return a}function VH(){PB(this)}function eF(){return this.b}function RH(){return this.a.Sc()}function XH(){return this.a.Hc()}function YH(){this.a.Jc()}function fF(){return this.d}function jI(){return V(),kI(),lI}
+function nI(){throw new Vh;}function eI(){return this.b.Sc()}function oI(a){return this.b.we(a)}function qI(){return new RB(this.b.Bc())}function rI(){return this.b.ye()}function sI(a){return this.b.ze(a)}function tI(){return this.b.Hc()}function uI(){return this.b.Ic()}function vI(){throw new wH;}function zI(){throw new wH;}function bI(){throw new wH;}function pI(){return this.b.xe()}function ks(){throw new wH;}function wI(a){return this.a.eQ(a)}function xI(){return this.a.hC()}
+function MI(a,b){return this.b.Ie(a,b)}function Ek(){return this.c};window.gwtOnLoad=gwtOnLoad;
+$sendStats('moduleStartup', 'moduleEvalEnd');gwtOnLoad(__gwtModuleFunction.__errFn, __gwtModuleFunction.__moduleName, __gwtModuleFunction.__moduleBase, __gwtModuleFunction.__softPermutationId,__gwtModuleFunction.__computePropValue);$sendStats('moduleStartup', 'end');$gwt && $gwt.permProps && __gwtModuleFunction.__moduleStartupDone($gwt.permProps);
+//# sourceURL=VaadinGrid-0.js
+
+}
+</script>
+</head>
+<body>
+</body>
+</html>
diff --git a/vaadin-grid/vaadin-grid.css b/vaadin-grid/vaadin-grid.css
new file mode 100644
index 0000000..24f5ab5
--- /dev/null
+++ b/vaadin-grid/vaadin-grid.css
@@ -0,0 +1 @@
+@-webkit-keyframes valo-grid-editor-footer-animate-in{0%{margin-top:-37px}}@keyframes valo-grid-editor-footer-animate-in{0%{margin-top:-37px}}@-webkit-keyframes valo-grid-editor-footer-animate-in-alt{0%{margin-bottom:-38px}100%{margin-bottom:-1px}}@keyframes valo-grid-editor-footer-animate-in-alt{0%{margin-bottom:-38px}100%{margin-bottom:-1px}}v-grid{font:300 16px/1.55 "Open Sans",sans-serif;display:block}v-grid .v-grid{position:relative}v-grid .v-grid-scroller{position:absolute;z-index:1;outline:none;box-sizing:border-box}v-grid .v-grid-scroller-horizontal{left:0;right:0;bottom:0;overflow-y:hidden;-ms-overflow-y:hidden}v-grid .v-grid-scroller-vertical{right:0;top:0;bottom:0;overflow-x:hidden;-ms-overflow-x:hidden}v-grid .v-grid-tablewrapper{position:absolute;overflow:hidden;box-sizing:border-box;z-index:5}v-grid .v-grid-tablewrapper>table{border-spacing:0;table-layout:fixed;width:inherit;position:static}v-grid .v-grid-header-deco,v-grid .v-grid-footer-deco{position:absolute;right:0;box-sizing:border-box}v-grid .v-grid-horizontal-scrollbar-deco{position:absolute;bottom:0;left:0;right:0;box-sizing:border-box}v-grid .v-grid-header,v-grid .v-grid-body,v-grid .v-grid-footer{position:absolute;left:0;width:inherit;z-index:10}v-grid .v-grid-header,v-grid .v-grid-header-deco{top:0}v-grid .v-grid-footer,v-grid .v-grid-footer-deco{bottom:0}v-grid .v-grid-body{z-index:0;top:0}v-grid .v-grid-body .v-grid-row{position:absolute;top:0;left:0}v-grid .v-grid-row{display:block}.v-ie8 v-grid .v-grid-row,.v-ie9 v-grid .v-grid-row{float:left;clear:left;margin-top:0}v-grid .v-grid-row>td,v-grid .v-grid-row>th{background-color:#fff}v-grid .v-grid-row{width:inherit}v-grid .v-grid-cell{display:block;float:left;padding:2px;white-space:nowrap;box-sizing:border-box;overflow:hidden;font-size:16px}v-grid .v-grid-cell.frozen{position:relative;z-index:1}v-grid .v-grid{outline:none}v-grid .v-grid-scroller-vertical,v-grid .v-grid-scroller-horizontal{border:1px solid #d4d4d4}v-grid .v-grid-scroller-vertical{border-left:none}v-grid .v-grid-scroller-horizontal{border-top:none}v-grid .v-grid-tablewrapper{border:1px solid #d4d4d4}v-grid .v-grid-cell{background-color:#fff;padding:0 12px;line-height:37px;text-overflow:ellipsis}v-grid .v-grid-cell>*{line-height:1.55;vertical-align:middle}v-grid .v-grid-cell>div{display:inline-block}v-grid .v-grid-cell.frozen{box-shadow:1px 0 2px rgba(0,0,0,0.1);border-right:1px solid #d4d4d4}v-grid .v-grid-cell.frozen+th,v-grid .v-grid-cell.frozen+td{border-left:none}v-grid .v-grid-row>td,v-grid .v-grid-editor-cells>div{border-left:1px solid #d4d4d4;border-bottom:1px solid #d4d4d4}v-grid .v-grid-row>td:first-child,v-grid .v-grid-editor-cells>div:first-child{border-left:none}v-grid .v-grid-row-stripe>td{background-color:#f5f5f5}v-grid .v-grid-row-selected>td{background:#197de1}v-grid .v-grid-header th{position:relative;background-color:#fafafa;font-size:14px;font-weight:inherit;border-left:1px solid #d4d4d4;border-bottom:1px solid #d4d4d4;text-align:left}v-grid .v-grid-header th:first-child{border-left:none}v-grid .v-grid-header .sort-asc,v-grid .v-grid-header .sort-desc{padding-right:29px}v-grid .v-grid-header .sort-asc:after,v-grid .v-grid-header .sort-desc:after{font-family:sans-serif;content:"▲" " " attr(sort-order);position:absolute;right:12px;font-size:12px}v-grid .v-grid-header .sort-desc:after{content:"▼" " " attr(sort-order)}v-grid .v-grid-footer td{background-color:#fafafa;font-size:14px;font-weight:inherit;border-left:1px solid #d4d4d4;border-top:1px solid #d4d4d4;border-bottom:none}v-grid .v-grid-footer td:first-child{border-left:none}v-grid .v-grid-header-deco{border-top:1px solid #d4d4d4;border-right:1px solid #d4d4d4;background-color:#fafafa}v-grid .v-grid-footer-deco{border-bottom:1px solid #d4d4d4;border-right:1px solid #d4d4d4;background-color:#fafafa}v-grid .v-grid-horizontal-scrollbar-deco{background-color:#fafafa;border:1px solid #d4d4d4;border-top:none}v-grid .v-grid-cell-focused{position:relative}v-grid .v-grid-cell-focused:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid #197de1;display:none;pointer-events:none}.ie8 v-grid .v-grid-cell-focused:before,.ie9 v-grid .v-grid-cell-focused:before,.ie10 v-grid .v-grid-cell-focused:before{content:url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==)}v-grid .v-grid:focus .v-grid-cell-focused:before{display:block}v-grid .v-grid.v-disabled:focus .v-grid-cell-focused:before{display:none}v-grid .v-grid-editor{position:absolute;z-index:20;overflow:hidden;left:0;right:0;border:1px solid #d4d4d4;margin-top:-1px;box-shadow:0 0 9px rgba(0,0,0,0.2)}v-grid .v-grid-editor-cells{position:relative;white-space:nowrap}v-grid .v-grid-editor-cells>div{display:inline-block;box-sizing:border-box;vertical-align:middle;background:#fff}v-grid .v-grid-editor-cells>div:first-child{border-left:none}v-grid .v-grid-editor-cells>div>*{vertical-align:middle;display:inline-block}v-grid .v-grid-editor-cells>div .v-textfield,v-grid .v-grid-editor-cells>div .v-datefield,v-grid .v-grid-editor-cells>div .v-filterselect{min-width:100%;max-width:100%;min-height:100%;max-height:100%}v-grid .v-grid-editor-cells>div .v-select,v-grid .v-grid-editor-cells>div .v-select-select{min-width:100%;max-width:100%}v-grid .v-grid-editor-cells .error::before{position:absolute;display:block;height:0;width:0;content:"";border-top:5px solid red;border-right:5px solid transparent}v-grid .v-grid-editor-cells .error,v-grid .v-grid-editor-cells .error>input{background-color:#fee}v-grid .v-grid-editor-footer{display:table;height:37px;border-top:1px solid #d4d4d4;margin-top:-1px;background:#fff;padding:0 5px}v-grid .v-grid-editor-footer+.v-grid-editor-cells>div{border-bottom:none;border-top:1px solid #d4d4d4}v-grid .v-grid-editor-footer:first-child{border-top:none;margin-top:0;border-bottom:1px solid #d4d4d4;margin-bottom:-1px}v-grid .v-grid-editor-message,v-grid .v-grid-editor-buttons{display:table-cell;white-space:nowrap;vertical-align:middle}v-grid .v-grid-editor-message{width:100%;position:relative}v-grid .v-grid-editor-message>div{position:absolute;width:100%;overflow:hidden;text-overflow:ellipsis;line-height:37px;top:0}v-grid .v-grid-editor-save{margin-right:4px}v-grid .v-grid-cell>.v-progressbar{width:100%}v-grid .v-grid{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text;background-color:#fafafa}v-grid .v-grid-header .v-grid-cell{background:linear-gradient(to bottom, #fafafa 2%,#f0f0f0 98%);text-shadow:0 1px 0 rgba(255,255,255,0.05)}v-grid .v-grid-footer .v-grid-cell{background:linear-gradient(to bottom, #fafafa 2%,#f0f0f0 98%);text-shadow:0 1px 0 rgba(255,255,255,0.05)}v-grid .v-grid-header-deco{background:linear-gradient(to bottom, #fafafa 2%,#f0f0f0 98%)}v-grid .v-grid-footer-deco,v-grid .v-grid-horizontal-scrollbar-deco{background:linear-gradient(to bottom, #fafafa 2%,#f0f0f0 98%)}v-grid .v-grid-row-selected>.v-grid-cell{background:linear-gradient(to bottom, #1b87e3 2%,#166ed6 98%);color:#c8dbed;text-shadow:0 -1px 0 rgba(0,0,0,0.05);border-color:#1d69b4}v-grid .v-grid-row-selected>.v-grid-cell-focused:before{border-color:#71b0ef}v-grid .v-grid-editor{box-shadow:0 0 0 2px rgba(25,125,225,0.5);border-color:#197de1}v-grid .v-grid-editor-footer{font-size:14px;padding:0 6px;background:#fafafa;-webkit-animation:valo-grid-editor-footer-animate-in 200ms 120ms backwards;animation:valo-grid-editor-footer-animate-in 200ms 120ms backwards}v-grid .v-grid-editor-footer:first-child{-webkit-animation:valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards;animation:valo-grid-editor-footer-animate-in-alt 200ms 120ms backwards}v-grid .v-grid-editor-cells{z-index:1}v-grid .v-grid-editor-cells>div:before{content:"";display:inline-block;height:100%;vertical-align:middle}v-grid .v-grid-editor-cells>div .error::before{border-top:9px solid #ed473b;border-right:9px solid transparent}v-grid .v-grid-editor-cells>div .error,v-grid .v-grid-editor-cells>div .error>input{background-color:#fffbfb}v-grid .v-grid-editor-cells>div .v-textfield,v-grid .v-grid-editor-cells>div .v-textfield-focus,v-grid .v-grid-editor-cells>div .v-datefield,v-grid .v-grid-editor-cells>div .v-datefield .v-textfield-focus,v-grid .v-grid-editor-cells>div .v-filterselect-input,v-grid .v-grid-editor-cells>div .v-filterselect-input:focus{border:none;border-radius:0;background:transparent;box-shadow:inset 0 1px 0 #f2f2f2}v-grid .v-grid-editor-cells>div .v-textfield-focus,v-grid .v-grid-editor-cells>div .v-datefield .v-textfield-focus,v-grid .v-grid-editor-cells>div .v-filterselect-input:focus{position:relative}v-grid .v-grid-editor-cells>div .v-select{padding-left:6px;padding-right:6px}v-grid .v-grid-editor-cells>div .v-checkbox{margin:0 6px}v-grid .v-grid-editor-cells>div .v-checkbox label{white-space:nowrap}v-grid .v-grid-editor-message>div:before{display:inline-block;color:#ed473b;font-weight:600;width:19px;text-align:center;content:"!"}v-grid .v-grid-editor-save,v-grid .v-grid-editor-cancel{cursor:pointer;color:#197de1;text-decoration:underline;font-weight:inherit;transition:color 140ms;font-weight:400;text-decoration:none;border:none;background:transparent;padding:6px 6px;margin:0;outline:none}v-grid .v-grid-editor-save:hover,v-grid .v-grid-editor-cancel:hover{color:#4396ea}v-grid .v-grid-editor-save.v-disabled,v-grid .v-grid-editor-cancel.v-disabled{opacity:0.5}v-grid .v-grid-scroller::-webkit-scrollbar{border:none}v-grid .v-grid-scroller::-webkit-scrollbar-thumb{border-radius:10px;border:4px solid transparent;background:rgba(0,0,0,0.3);background-clip:content-box}v-grid .v-grid-scroller-vertical::-webkit-scrollbar-thumb{min-height:30px}v-grid .v-grid-scroller-horizontal::-webkit-scrollbar-thumb{min-width:30px}
diff --git a/vaadin-grid/vaadin-grid.html b/vaadin-grid/vaadin-grid.html
new file mode 100644
index 0000000..7f4a81d
--- /dev/null
+++ b/vaadin-grid/vaadin-grid.html
@@ -0,0 +1,500 @@
+<!--
+@element v-grid
+-->
+
+<link rel='import' href='vaadin-grid-import.html'>
+<link rel='import' href='../../polymer/polymer.html'>
+<link rel="stylesheet" href="vaadin-grid.css" shim-shadowdom>
+
+<dom-module id="v-grid">
+ <template>
+ </template>
+</dom-module>
+
+<script>
+ var prototype = {
+ is: "v-grid",
+
+ _grid: undefined,
+
+ properties: {
+ /**
+ * The columns array
+ *
+ * @property columns
+ * @type array
+ */
+ columns: {
+ type: Array,
+ observer: 'columnsChanged'
+ },
+
+ /**
+ * The row editor specific fields
+ *
+ * @property editor
+ * @type Object
+ */
+ editor: {
+ type: Object,
+ value: function() {
+ var _this = this;
+ return {
+ get enabled() {
+ return _this._grid.getEditor().isEnabled();
+ },
+ set enabled(enabled) {
+ _this._grid.getEditor().setEnabled(enabled);
+ if (_this.editable !== enabled) {
+ _this.editable = enabled;
+ }
+ },
+ get handler() {
+ return _this._grid.getEditor().getHandler();
+ },
+ set handler(handler) {
+ _this._grid.getEditor().setHandler(handler);
+ },
+ get saveButtonText() {
+ return _this._grid.getEditor().getSaveButtonText();
+ },
+ set saveButtonText(saveButtonText) {
+ _this._grid.getEditor().setSaveButtonText(saveButtonText);
+ },
+ get cancelButtonText() {
+ return _this._grid.getEditor().getSaveButtonText();
+ },
+ set cancelButtonText(cancelButtonText) {
+ _this._grid.getEditor().setCancelButtonText(cancelButtonText);
+ },
+ editRow: function(row) {
+ _this._grid.getEditor().editRow(row);
+ },
+ save: function() {
+ _this._grid.getEditor().save();
+ },
+ cancel: function() {
+ _this._grid.getEditor().cancel();
+ }
+ };
+ },
+ },
+ /**
+ * The data source object for the grid.
+ *
+ * @property data
+ * @type Object
+ */
+ data: {
+ type: Object,
+ value: function() {
+ var _this = this;
+ return {
+
+ get source() {
+ return this._source;
+ },
+ set source(source) {
+ var sourceFunction = source;
+ if (Array.isArray(source)) {
+ sourceFunction = function(req) {
+ var array = source.slice(req.index, req.index + req.count);
+ req.success(array, source.length);
+ };
+ }
+ _this._grid.setDataSource(sourceFunction);
+
+ this._source = source;
+ },
+ /**
+ * Sets the sort order to use. Setting this causes the Grid to re-sort
+ * itself. If set to null, the sort order is cleared.
+ *
+ * @attribute sortOrder
+ * @type array
+ */
+ get sortOrder() {
+ return _this._grid.getSortOrder();
+ },
+ set sortOrder(sortOrder) {
+ _this._grid.setSortOrder(sortOrder);
+ },
+
+ clearCache: function(estimatedNewSize) {
+ _this._grid.getDataSource().clearCache(estimatedNewSize);
+ },
+
+ };
+ }
+ },
+
+ /**
+ * Object for manipulating header rows
+ *
+ * @property header
+ * @type Object
+ */
+ header: {
+ type: Object,
+ value: function() {
+ var _this = this;
+ return {
+ getCell: function(rowIndex, columnId) {
+ return _this._grid.getStaticSection().getHeaderCell(rowIndex, columnId);
+ },
+ addRow: function(rowIndex, cellContent) {
+ _this._grid.getStaticSection().addHeader(rowIndex, cellContent);
+ },
+ removeRow: function(rowIndex) {
+ _this._grid.getStaticSection().removeHeader(rowIndex);
+ },
+ setRowClassName: function(rowIndex, className) {
+ _this._grid.getStaticSection().setHeaderRowClassName(rowIndex, className);
+ },
+ /**
+ * Sets the default row of the header. The default row is a special header
+ * row providing a user interface for sorting columns.
+ *
+ * @attribute rowIndex
+ * @type number
+ */
+ get defaultRow() {
+ return _this._grid.getStaticSection().getDefaultHeader();
+ },
+ set defaultRow(rowIndex) {
+ _this._grid.getStaticSection().setDefaultHeader(rowIndex);
+ },
+ get hidden() {
+ return _this._grid.getStaticSection().isHeaderHidden();
+ },
+ set hidden(hidden) {
+ _this._grid.getStaticSection().setHeaderHidden(hidden);
+ },
+ get rowCount() {
+ return _this._grid.getStaticSection().getHeaderRowCount();
+ }
+ };
+ }
+ },
+
+ /**
+ * Object for manipulating footer rows
+ *
+ * @property footer
+ * @type Object
+ */
+ footer: {
+ type: Object,
+ value: function() {
+ var _this = this;
+ return {
+ getCell: function(rowIndex, columnId) {
+ return _this._grid.getStaticSection().getFooterCell(rowIndex, columnId);
+ },
+ addRow: function(rowIndex, cellContent) {
+ _this._grid.getStaticSection().addFooter(rowIndex, cellContent);
+ },
+ removeRow: function(rowIndex) {
+ _this._grid.getStaticSection().removeFooter(rowIndex);
+ },
+ setRowClassName: function(rowIndex, className) {
+ _this._grid.getStaticSection().setFooterRowClassName(rowIndex, className);
+ },
+ get hidden() {
+ return _this._grid.getStaticSection().isFooterHidden();
+ },
+ set hidden(hidden) {
+ _this._grid.getStaticSection().setFooterHidden(hidden);
+ },
+ get rowCount() {
+ return _this._grid.getStaticSection().getFooterRowCount();
+ }
+ };
+ }
+ },
+
+ selection: {
+ type: Object,
+ value: function() {
+ var _this = this;
+ return {
+ select: function(index) {
+ _this._grid.getSelectionModel().select(index);
+
+ return _this;
+ },
+ deselect: function(index) {
+ _this._grid.getSelectionModel().deselect(index);
+
+ return _this;
+ },
+ clear: function() {
+ _this._grid.getSelectionModel().clear();
+
+ return _this;
+ },
+ selectAll: function() {
+ _this._grid.getSelectionModel().selectAll();
+
+ return _this;
+ },
+ selected: function(mapper, from, to) {
+ return _this._grid.getSelectionModel().selected(mapper, from, to);
+ },
+ deselected: function(mapper, from, to) {
+ return _this._grid.getSelectionModel().deselected(mapper, from, to);
+ },
+ get size() {
+ return _this._grid.getSelectionModel().size();
+ },
+ get mode() {
+ return _this._grid.getSelectionMode();
+ },
+ set mode(mode) {
+ _this._grid.setSelectionMode(mode);
+ _this.serializeValueToAttribute(_this.selection.mode, "selection-mode");
+ }
+ };
+ }
+ },
+ },
+
+ columnsChanged: function() {
+ var oldcols = this._grid.getColumns();
+ var newcols = this.columns;
+ if (!oldcols._obs || newcols != oldcols) {
+ if (oldcols._obs) {
+ Polymer.ArrayObserve.unobserve(oldcols, oldcols._obs);
+ }
+ var _this = this;
+ newcols._obs = function() {
+ _this._grid.setColumns(newcols);
+ };
+ Polymer.ArrayObserve.observe(newcols, newcols._obs);
+ }
+ this._grid.setColumns(newcols);
+ },
+
+ attributeChanged: function(name, type, value) {
+ switch (name) {
+ case 'disabled':
+ this.disabled = typeof value == "string";
+ break;
+ case 'editable':
+ this.editable = typeof value == "string";
+ break;
+ case 'style':
+ this._grid.redraw();
+ break;
+ case 'selection-mode':
+ this.selection.mode = value;
+ break;
+ default:
+ this[Polymer.CaseMap.dashToCamelCase(name)] = value;
+ }
+ },
+
+ listeners: {
+ /**
+ * @event sort
+ */
+ /**
+ * @event select
+ */
+ 'select': 'onSelect'
+ },
+
+ onSelect: function() {
+ this.serializeValueToAttribute(this.selection.mode, "selection-mode");
+ },
+
+ created: function() {
+ this._grid = new vaadin.GridComponent();
+ },
+
+ ready: function() {
+ var _this = this;
+ // Set read-only properties
+ ["data", "editor", "header", "footer"].forEach(function(prop) {
+ Object.defineProperty(_this, prop, {
+ writable: false
+ });
+ });
+ setTimeout(function() {
+ for (var i = 0; i < _this.attributes.length; i++) {
+ _this.attributeChanged(_this.attributes[i].nodeName, null, _this.attributes[i].nodeValue);
+ }
+ }, 1);
+
+ this.columns = _this._grid.getColumns();
+ },
+
+ attached: function() {
+ this._grid.attached(this, Polymer.dom(this).querySelector("table"), Polymer.dom(this.root));
+ },
+
+ /**
+ * Scrolls to a certain row, using user-specified scroll destination.
+ * Since its asynchronous nature, this method returns a 'thenable'
+ * so as you can use the 'then()' method to be notified when the data
+ * request finished and the scroll is actually moved.
+ *
+ * @method scrollToRow
+ * @param {number} index - zero-based index of the row to scroll to.
+ * @param {string} scrollDestination - desired destination placement of scrolled-to-row.
+ */
+ scrollToRow: function(index, scrollDestination) {
+ this._grid.scrollToRow(index, scrollDestination);
+ return this;
+ },
+
+ /**
+ * Scrolls to the beginning of the very first row.
+ * Since its asynchronous nature, this method returns a 'thenable'
+ * so as you can use the 'then()' method to be notified when the data
+ * request finished and the scroll is actually moved.
+ *
+ * @method scrollToStart
+ */
+ scrollToStart: function() {
+ this._grid.scrollToStart();
+ return this;
+ },
+
+ /**
+ * Scrolls to the end of the very last row.
+ * Since its asynchronous nature, this method returns a 'thenable'
+ * so as you can use the 'then()' method to be notified when the data
+ * request finished and the scroll is actually moved.
+ *
+ * @method scrollToEnd
+ */
+ scrollToEnd: function() {
+ this._grid.scrollToEnd();
+ return this;
+ },
+
+ /**
+ * Adds new column
+ *
+ * @method addColumn
+ * @param {Object} column
+ * @param {string} beforeColumn
+ */
+ addColumn: function(column, beforeColumn) {
+ this._grid.addColumn(column, beforeColumn);
+ },
+
+ /**
+ * Removes column with certain id
+ *
+ * @method removeColumn
+ * @param {string} id
+ */
+ removeColumn: function(id) {
+ this._grid.removeColumn(id);
+ },
+
+ /**
+ * Sets the style generator that is used for generating styles for rows.
+ *
+ * @attribute rowClassGenerator
+ * @type object
+ */
+ get rowClassGenerator() {
+ return this._grid.getRowClassGenerator();
+ },
+ set rowClassGenerator(rowClassGenerator) {
+ this._grid.setRowClassGenerator(rowClassGenerator);
+ },
+ /**
+ * Sets the style generator that is used for generating styles for cells.
+ *
+ * @attribute cellClassGenerator
+ * @type object
+ */
+ get cellClassGenerator() {
+ return this._grid.getCellClassGenerator();
+ },
+ set cellClassGenerator(cellClassGenerator) {
+ this._grid.setCellClassGenerator(cellClassGenerator);
+ },
+ /**
+ * Disables the grid functionality.
+ *
+ * @attribute disabled
+ * @type boolean
+ */
+ get disabled() {
+ return this._grid.isDisabled();
+ },
+ set disabled(disabled) {
+ this._grid.setDisabled(disabled);
+ this.reflectPropertyToAttribute("disabled");
+ },
+ /**
+ * Enables the row editor feature (double click/tap or or Enter key in a content row activates the editing mode)
+ *
+ * @attribute editable
+ * @type boolean
+ */
+ get editable() {
+ return this.editor.enabled;
+ },
+ set editable(editable) {
+ this.editor.enabled = editable;
+ this.reflectPropertyToAttribute("editable");
+ },
+ /**
+ * Sets the number of frozen columns in this grid. Setting the count to 0
+ * means that no data columns will be frozen, but the built-in selection
+ * checkbox column will still be frozen if it's in use. Setting the count to
+ * -1 will also disable the selection column.
+ *
+ * @attribute frozen-columns
+ * @type Number
+ */
+ get frozenColumns() {
+ return this._grid.getFrozenColumns();
+ },
+ set frozenColumns(frozenColumns) {
+ this._grid.setFrozenColumns(frozenColumns);
+ this.reflectPropertyToAttribute("frozenColumns");
+ },
+ /**
+ * Declares the number of visible rows in the grid. Implicitly sets the height
+ * in the inline style, overriding any previous height. Setting style.height
+ * in this case should be ignored if possible.
+ *
+ * @attribute rows
+ * @type Number
+ */
+ get rows() {
+ return this._grid.getRows();
+ },
+ set rows(rows) {
+ this._grid.setRows(rows);
+ this.reflectPropertyToAttribute("rows");
+ },
+ then: function(cb) {
+ return this._grid.then(cb);
+ }
+ };
+
+ function loadComponent() {
+ VGrid = Polymer(prototype);
+ // Give some time to gwt async processes to run (we need this in FF)
+ setTimeout(function() {
+ vaadin._v_grid_ready = true;
+ document.dispatchEvent(new Event('v-grid-ready'));
+ }, 5);
+ }
+
+ if (window.vaadin && window.vaadin.GridComponent) {
+ loadComponent();
+ } else {
+ document.addEventListener("v-grid-loaded", function() {
+ loadComponent();
+ });
+ }
+</script>