Add polymer bridges implementation

These files allow to use Polymer 2 code with a Polymer 3 library.

Change-Id: Id19a83a49955150fbf72a3c433fa778553264e81
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..87c683b
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,27 @@
+// Copyright (c) 2017 The Polymer Authors. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//    * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//    * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b4becdd
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+This repository contains a code to provide compatibility layer
+between Polymer 3 and Polymer 2. It allows to run Polymer 2 
+application on top of Polymer 3 without changing a code.
+
+The repository is added as a submodule to gerrit project;
+polygerrit-ui/app/package.json references a local folder
+(with submodule). 
+
+folder will be removed after full switch from Polymer 2 to Polymer 3.
+
+Some files have code related to google-closure-library, but it is not
+necessary to use google-closure-library - the polymer/lib/utils/boot_bridge.js
+file provides placoholders for it.
+
+Note: it is expected, that this repository is used only during transition
+period (Polymer 2 -> Polymer 3). After the transitition is complete (including Plugins),
+the submodule will be removed from gerrit repository.
\ No newline at end of file
diff --git a/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html b/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html
new file mode 100644
index 0000000..17689e6
--- /dev/null
+++ b/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-a11y-keys-behavior_bridge.js"></script>
+
diff --git a/iron-a11y-keys-behavior/iron-a11y-keys-behavior_bridge.js b/iron-a11y-keys-behavior/iron-a11y-keys-behavior_bridge.js
new file mode 100644
index 0000000..e1fe06e
--- /dev/null
+++ b/iron-a11y-keys-behavior/iron-a11y-keys-behavior_bridge.js
@@ -0,0 +1,20 @@
+/**
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronA11yKeysBehavior} from '@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.js';
+
+/**
+ * @const
+ */
+Polymer.IronA11yKeysBehavior = IronA11yKeysBehavior;
+
+goog.declareModuleId('HtmlImportsNamespace.IronA11yKeysBehavior.IronA11yKeysBehavior');
+
diff --git a/iron-autogrow-textarea/iron-autogrow-textarea.html b/iron-autogrow-textarea/iron-autogrow-textarea.html
new file mode 100644
index 0000000..a8a8f38
--- /dev/null
+++ b/iron-autogrow-textarea/iron-autogrow-textarea.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-autogrow-textarea_bridge.js"></script>
+
diff --git a/iron-autogrow-textarea/iron-autogrow-textarea_bridge.js b/iron-autogrow-textarea/iron-autogrow-textarea_bridge.js
new file mode 100644
index 0000000..dda20d1
--- /dev/null
+++ b/iron-autogrow-textarea/iron-autogrow-textarea_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-autogrow-textarea/iron-autogrow-textarea.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronAutogrowTextarea.IronAutogrowTextarea');
+
diff --git a/iron-dropdown/iron-dropdown-scroll-manager.html b/iron-dropdown/iron-dropdown-scroll-manager.html
new file mode 100644
index 0000000..44931b9
--- /dev/null
+++ b/iron-dropdown/iron-dropdown-scroll-manager.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-dropdown-scroll-manager_bridge.js"></script>
+
diff --git a/iron-dropdown/iron-dropdown-scroll-manager_bridge.js b/iron-dropdown/iron-dropdown-scroll-manager_bridge.js
new file mode 100644
index 0000000..d81b299
--- /dev/null
+++ b/iron-dropdown/iron-dropdown-scroll-manager_bridge.js
@@ -0,0 +1,25 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronDropdownScrollManager} from '@polymer/iron-dropdown/iron-dropdown-scroll-manager.js';
+
+/** @const */
+Polymer.IronDropdownScrollManager = IronDropdownScrollManager;
+
+goog.declareModuleId('HtmlImportsNamespace.IronDropdown.IronDropdownScrollManager');
+
diff --git a/iron-dropdown/iron-dropdown.html b/iron-dropdown/iron-dropdown.html
new file mode 100644
index 0000000..cb12528
--- /dev/null
+++ b/iron-dropdown/iron-dropdown.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-dropdown_bridge.js"></script>
+
diff --git a/iron-dropdown/iron-dropdown_bridge.js b/iron-dropdown/iron-dropdown_bridge.js
new file mode 100644
index 0000000..1388e28
--- /dev/null
+++ b/iron-dropdown/iron-dropdown_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-dropdown/iron-dropdown.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronDropdown.IronDropdown');
+
diff --git a/iron-fit-behavior/iron-fit-behavior.html b/iron-fit-behavior/iron-fit-behavior.html
new file mode 100644
index 0000000..9ddb4d4
--- /dev/null
+++ b/iron-fit-behavior/iron-fit-behavior.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-fit-behavior_bridge.js"></script>
+
diff --git a/iron-fit-behavior/iron-fit-behavior_bridge.js b/iron-fit-behavior/iron-fit-behavior_bridge.js
new file mode 100644
index 0000000..290b42a
--- /dev/null
+++ b/iron-fit-behavior/iron-fit-behavior_bridge.js
@@ -0,0 +1,29 @@
+// Copyright (C) 2019 The Android Open Source Project
+//
+// 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.
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronFitBehavior} from '@polymer/iron-fit-behavior/iron-fit-behavior.js';
+
+/** @const */
+Polymer.IronFitBehavior = IronFitBehavior;
+
+goog.declareModuleId('HtmlImportsNamespace.IronFitBehavior.IronFitBehavior');
+
diff --git a/iron-icon/iron-icon.html b/iron-icon/iron-icon.html
new file mode 100644
index 0000000..c060148
--- /dev/null
+++ b/iron-icon/iron-icon.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-icon_bridge.js"></script>
+
diff --git a/iron-icon/iron-icon_bridge.js b/iron-icon/iron-icon_bridge.js
new file mode 100644
index 0000000..0a65af0
--- /dev/null
+++ b/iron-icon/iron-icon_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-icon/iron-icon.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronIcon.IronIcon');
+
diff --git a/iron-iconset-svg/iron-iconset-svg.html b/iron-iconset-svg/iron-iconset-svg.html
new file mode 100644
index 0000000..141cf1b
--- /dev/null
+++ b/iron-iconset-svg/iron-iconset-svg.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-iconset-svg_bridge.js"></script>
+
diff --git a/iron-iconset-svg/iron-iconset-svg_bridge.js b/iron-iconset-svg/iron-iconset-svg_bridge.js
new file mode 100644
index 0000000..a0777a5
--- /dev/null
+++ b/iron-iconset-svg/iron-iconset-svg_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-iconset-svg/iron-iconset-svg.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronIconsetSvg.IronIconsetSvg');
+
diff --git a/iron-input/iron-input.html b/iron-input/iron-input.html
new file mode 100644
index 0000000..32c0a94
--- /dev/null
+++ b/iron-input/iron-input.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-input_bridge.js"></script>
+
diff --git a/iron-input/iron-input_bridge.js b/iron-input/iron-input_bridge.js
new file mode 100644
index 0000000..c68bd22
--- /dev/null
+++ b/iron-input/iron-input_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-input/iron-input.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronInput.IronInput');
+
diff --git a/iron-overlay-behavior/iron-focusables-helper.html b/iron-overlay-behavior/iron-focusables-helper.html
new file mode 100644
index 0000000..40dff6b
--- /dev/null
+++ b/iron-overlay-behavior/iron-focusables-helper.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-focusables-helper_bridge.js"></script>
+
diff --git a/iron-overlay-behavior/iron-focusables-helper_bridge.js b/iron-overlay-behavior/iron-focusables-helper_bridge.js
new file mode 100644
index 0000000..ad4c2e0
--- /dev/null
+++ b/iron-overlay-behavior/iron-focusables-helper_bridge.js
@@ -0,0 +1,25 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronFocusablesHelper} from '@polymer/iron-overlay-behavior/iron-focusables-helper.js';
+
+/** @const */
+Polymer.IronFocusablesHelper = IronFocusablesHelper;
+
+goog.declareModuleId('HtmlImportsNamespace.IronOverlayBehavior.IronFocusablesHelper');
+
diff --git a/iron-overlay-behavior/iron-overlay-backdrop.html b/iron-overlay-behavior/iron-overlay-backdrop.html
new file mode 100644
index 0000000..b7d0814
--- /dev/null
+++ b/iron-overlay-behavior/iron-overlay-backdrop.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-overlay-backdrop_bridge.js"></script>
+
diff --git a/iron-overlay-behavior/iron-overlay-backdrop_bridge.js b/iron-overlay-behavior/iron-overlay-backdrop_bridge.js
new file mode 100644
index 0000000..705b6ae
--- /dev/null
+++ b/iron-overlay-behavior/iron-overlay-backdrop_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-overlay-behavior/iron-overlay-backdrop.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronOverlayBehavior.IronOverlayBackdrop');
+
diff --git a/iron-overlay-behavior/iron-overlay-behavior.html b/iron-overlay-behavior/iron-overlay-behavior.html
new file mode 100644
index 0000000..f01552f
--- /dev/null
+++ b/iron-overlay-behavior/iron-overlay-behavior.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-overlay-behavior_bridge.js"></script>
+
diff --git a/iron-overlay-behavior/iron-overlay-behavior_bridge.js b/iron-overlay-behavior/iron-overlay-behavior_bridge.js
new file mode 100644
index 0000000..9877e7f
--- /dev/null
+++ b/iron-overlay-behavior/iron-overlay-behavior_bridge.js
@@ -0,0 +1,26 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronOverlayBehavior, IronOverlayBehaviorImpl} from '@polymer/iron-overlay-behavior/iron-overlay-behavior.js';
+
+/** @const */
+Polymer.IronOverlayBehaviorImpl = IronOverlayBehaviorImpl;
+/** @const */
+Polymer.IronOverlayBehavior = IronOverlayBehavior;
+
+goog.declareModuleId('HtmlImportsNamespace.IronOverlayBehavior.IronOverlayBehavior');
diff --git a/iron-overlay-behavior/iron-overlay-manager.html b/iron-overlay-behavior/iron-overlay-manager.html
new file mode 100644
index 0000000..4bff313
--- /dev/null
+++ b/iron-overlay-behavior/iron-overlay-manager.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-overlay-manager_bridge.js"></script>
+
diff --git a/iron-overlay-behavior/iron-overlay-manager_bridge.js b/iron-overlay-behavior/iron-overlay-manager_bridge.js
new file mode 100644
index 0000000..f836145
--- /dev/null
+++ b/iron-overlay-behavior/iron-overlay-manager_bridge.js
@@ -0,0 +1,28 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronOverlayManager, IronOverlayManagerClass} from '@polymer/iron-overlay-behavior/iron-overlay-manager.js';
+
+/** @const */
+Polymer.IronOverlayManager = IronOverlayManager;
+
+/** @const */
+Polymer.IronOverlayManagerClass = IronOverlayManagerClass;
+
+goog.declareModuleId('HtmlImportsNamespace.IronOverlayBehavior.IronOverlayManager');
+
diff --git a/iron-overlay-behavior/iron-scroll-manager.html b/iron-overlay-behavior/iron-scroll-manager.html
new file mode 100644
index 0000000..d363157
--- /dev/null
+++ b/iron-overlay-behavior/iron-scroll-manager.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-scroll-manager_bridge.js"></script>
+
diff --git a/iron-overlay-behavior/iron-scroll-manager_bridge.js b/iron-overlay-behavior/iron-scroll-manager_bridge.js
new file mode 100644
index 0000000..8d4e4bd
--- /dev/null
+++ b/iron-overlay-behavior/iron-scroll-manager_bridge.js
@@ -0,0 +1,75 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../polymer/lib/utils/boot_bridge.js';
+import {elementIsScrollLocked, pushScrollLock, removeScrollLock, _lockingElements, _lockedElementCache, _unlockedElementCache, _hasCachedLockedElement, _hasCachedUnlockedElement, _composedTreeContains, _scrollInteractionHandler, _boundScrollHandler, _lockScrollInteractions, _unlockScrollInteractions, _shouldPreventScrolling, _getScrollableNodes, _getScrollingNode, _getScrollInfo} from '@polymer/iron-overlay-behavior/iron-scroll-manager.js';
+
+Polymer.IronScrollManager = {};
+
+/** @const */
+Polymer.IronScrollManager.elementIsScrollLocked = elementIsScrollLocked;
+
+/** @const */
+Polymer.IronScrollManager.pushScrollLock = pushScrollLock;
+
+/** @const */
+Polymer.IronScrollManager.removeScrollLock = removeScrollLock;
+
+/** @const */
+Polymer.IronScrollManager._lockingElements = _lockingElements;
+
+/** @const */
+Polymer.IronScrollManager._lockedElementCache = _lockedElementCache;
+
+/** @const */
+Polymer.IronScrollManager._unlockedElementCache = _unlockedElementCache;
+
+/** @const */
+Polymer.IronScrollManager._hasCachedLockedElement = _hasCachedLockedElement;
+
+/** @const */
+Polymer.IronScrollManager._hasCachedUnlockedElement = _hasCachedUnlockedElement;
+
+/** @const */
+Polymer.IronScrollManager._composedTreeContains = _composedTreeContains;
+
+/** @const */
+Polymer.IronScrollManager._scrollInteractionHandler = _scrollInteractionHandler;
+
+/** @const */
+Polymer.IronScrollManager._boundScrollHandler = _boundScrollHandler;
+
+/** @const */
+Polymer.IronScrollManager._lockScrollInteractions = _lockScrollInteractions;
+
+/** @const */
+Polymer.IronScrollManager._unlockScrollInteractions = _unlockScrollInteractions;
+
+/** @const */
+Polymer.IronScrollManager._shouldPreventScrolling = _shouldPreventScrolling;
+
+/** @const */
+Polymer.IronScrollManager._getScrollableNodes = _getScrollableNodes;
+
+/** @const */
+Polymer.IronScrollManager._getScrollingNode = _getScrollingNode;
+
+/** @const */
+Polymer.IronScrollManager._getScrollInfo = _getScrollInfo;
+
+goog.declareModuleId('HtmlImportsNamespace.IronOverlayBehavior.IronScrollManager');
+
diff --git a/iron-selector/iron-multi-selectable.html b/iron-selector/iron-multi-selectable.html
new file mode 100644
index 0000000..927ff0f
--- /dev/null
+++ b/iron-selector/iron-multi-selectable.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-multi-selectable_bridge.js"></script>
+
diff --git a/iron-selector/iron-multi-selectable_bridge.js b/iron-selector/iron-multi-selectable_bridge.js
new file mode 100644
index 0000000..c888378
--- /dev/null
+++ b/iron-selector/iron-multi-selectable_bridge.js
@@ -0,0 +1,32 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronMultiSelectableBehaviorImpl, IronMultiSelectableBehavior} from '@polymer/iron-selector/iron-multi-selectable.js';
+
+/**
+ * @const
+ */
+Polymer.IronMultiSelectableBehaviorImpl = IronMultiSelectableBehaviorImpl;
+/**
+ * @const
+ */
+Polymer.IronMultiSelectableBehavior = IronMultiSelectableBehavior;
+
+
+goog.declareModuleId('HtmlImportsNamespace.IronSelector.IronMultiSelectable');
+
diff --git a/iron-selector/iron-selectable.html b/iron-selector/iron-selectable.html
new file mode 100644
index 0000000..64429a8
--- /dev/null
+++ b/iron-selector/iron-selectable.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-selectable_bridge.js"></script>
+
diff --git a/iron-selector/iron-selectable_bridge.js b/iron-selector/iron-selectable_bridge.js
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/iron-selector/iron-selectable_bridge.js
diff --git a/iron-selector/iron-selection.html b/iron-selector/iron-selection.html
new file mode 100644
index 0000000..ddb2636
--- /dev/null
+++ b/iron-selector/iron-selection.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-selection_bridge.js"></script>
+
diff --git a/iron-selector/iron-selection_bridge.js b/iron-selector/iron-selection_bridge.js
new file mode 100644
index 0000000..16b3dce
--- /dev/null
+++ b/iron-selector/iron-selection_bridge.js
@@ -0,0 +1,26 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {IronSelection} from '@polymer/iron-selector/iron-selection.js';
+
+/** @const */
+Polymer.IronSelection = IronSelection;
+
+
+goog.declareModuleId('HtmlImportsNamespace.IronSelector.IronSelection');
+
diff --git a/iron-selector/iron-selector.html b/iron-selector/iron-selector.html
new file mode 100644
index 0000000..143e9bb
--- /dev/null
+++ b/iron-selector/iron-selector.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./iron-selector_bridge.js"></script>
+
diff --git a/iron-selector/iron-selector_bridge.js b/iron-selector/iron-selector_bridge.js
new file mode 100644
index 0000000..83c704f
--- /dev/null
+++ b/iron-selector/iron-selector_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/iron-selector/iron-selector.js';
+
+goog.declareModuleId('HtmlImportsNamespace.IronSelector.IronSelector');
+
diff --git a/iron-test-helpers/iron-test-helpers.html b/iron-test-helpers/iron-test-helpers.html
new file mode 100644
index 0000000..f56bb76
--- /dev/null
+++ b/iron-test-helpers/iron-test-helpers.html
@@ -0,0 +1,15 @@
+<!-- Copyright (C) 2019 The Android Open Source Project -->
+<!-- -->
+<!-- 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. -->
+
+<script src="iron-test-helpers_bridge.js" type="module"></script>
diff --git a/iron-test-helpers/iron-test-helpers_bridge.js b/iron-test-helpers/iron-test-helpers_bridge.js
new file mode 100644
index 0000000..506b482
--- /dev/null
+++ b/iron-test-helpers/iron-test-helpers_bridge.js
@@ -0,0 +1 @@
+import '@polymer/iron-test-helpers/iron-test-helpers';
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..385b4ca
--- /dev/null
+++ b/package.json
@@ -0,0 +1,7 @@
+{
+  "name": "polymer-bridges",
+  "version": "1.0.0",
+  "description": "Polymer legacy support for Gerrit Code Review",
+  "author": "The Polymer Project Authors",
+  "license": "BSD-3-Clause"
+}
diff --git a/paper-button/paper-button.html b/paper-button/paper-button.html
new file mode 100644
index 0000000..76081c6
--- /dev/null
+++ b/paper-button/paper-button.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-button_bridge.js"></script>
+
diff --git a/paper-button/paper-button_bridge.js b/paper-button/paper-button_bridge.js
new file mode 100644
index 0000000..19ac08e
--- /dev/null
+++ b/paper-button/paper-button_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-button/paper-button.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperButton.PaperButton');
+
diff --git a/paper-input/all-imports.html b/paper-input/all-imports.html
new file mode 100644
index 0000000..0f45771
--- /dev/null
+++ b/paper-input/all-imports.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="paper-input.html">
+<link rel="import" href="paper-textarea.html">
diff --git a/paper-input/paper-input-addon-behavior.html b/paper-input/paper-input-addon-behavior.html
new file mode 100644
index 0000000..00dde9b
--- /dev/null
+++ b/paper-input/paper-input-addon-behavior.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-input-addon-behavior_bridge.js"></script>
+
diff --git a/paper-input/paper-input-addon-behavior_bridge.js b/paper-input/paper-input-addon-behavior_bridge.js
new file mode 100644
index 0000000..239cb1b
--- /dev/null
+++ b/paper-input/paper-input-addon-behavior_bridge.js
@@ -0,0 +1,25 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {PaperInputAddonBehavior} from '@polymer/paper-input/paper-input-addon-behavior.js';
+
+/** @const */
+Polymer.PaperInputAddonBehavior = PaperInputAddonBehavior;
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperInputAddonBehavior');
+
diff --git a/paper-input/paper-input-behavior.html b/paper-input/paper-input-behavior.html
new file mode 100644
index 0000000..59460e4
--- /dev/null
+++ b/paper-input/paper-input-behavior.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-input-behavior_bridge.js"></script>
+
diff --git a/paper-input/paper-input-behavior_bridge.js b/paper-input/paper-input-behavior_bridge.js
new file mode 100644
index 0000000..0f96390
--- /dev/null
+++ b/paper-input/paper-input-behavior_bridge.js
@@ -0,0 +1,29 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {PaperInputHelper, PaperInputBehavior, PaperInputBehaviorImpl} from '@polymer/paper-input/paper-input-behavior.js';
+
+/** @const */
+Polymer.PaperInputHelper = PaperInputHelper;
+/** @const */
+Polymer.PaperInputBehavior = PaperInputBehavior;
+/** @const */
+Polymer.PaperInputBehaviorImpl = PaperInputBehaviorImpl;
+
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperInputBehavior');
diff --git a/paper-input/paper-input-char-counter.html b/paper-input/paper-input-char-counter.html
new file mode 100644
index 0000000..fac5eaa
--- /dev/null
+++ b/paper-input/paper-input-char-counter.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-input-char-counter_bridge.js"></script>
+
diff --git a/paper-input/paper-input-char-counter_bridge.js b/paper-input/paper-input-char-counter_bridge.js
new file mode 100644
index 0000000..4bc87b4
--- /dev/null
+++ b/paper-input/paper-input-char-counter_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-input/paper-input-char-counter.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperInputCharCounter');
+
diff --git a/paper-input/paper-input-container.html b/paper-input/paper-input-container.html
new file mode 100644
index 0000000..81c7f77
--- /dev/null
+++ b/paper-input/paper-input-container.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-input-container_bridge.js"></script>
+
diff --git a/paper-input/paper-input-container_bridge.js b/paper-input/paper-input-container_bridge.js
new file mode 100644
index 0000000..e4e038e
--- /dev/null
+++ b/paper-input/paper-input-container_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-input/paper-input-container.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperInputContainer');
+
diff --git a/paper-input/paper-input-error.html b/paper-input/paper-input-error.html
new file mode 100644
index 0000000..f49fd81
--- /dev/null
+++ b/paper-input/paper-input-error.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-input-error_bridge.js"></script>
+
diff --git a/paper-input/paper-input-error_bridge.js b/paper-input/paper-input-error_bridge.js
new file mode 100644
index 0000000..7df1148
--- /dev/null
+++ b/paper-input/paper-input-error_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-input/paper-input-error.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperInputError');
+
diff --git a/paper-input/paper-input.html b/paper-input/paper-input.html
new file mode 100644
index 0000000..56652de
--- /dev/null
+++ b/paper-input/paper-input.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-input_bridge.js"></script>
+
diff --git a/paper-input/paper-input_bridge.js b/paper-input/paper-input_bridge.js
new file mode 100644
index 0000000..626dac7
--- /dev/null
+++ b/paper-input/paper-input_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-input/paper-input.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperInput');
+
diff --git a/paper-input/paper-textarea.html b/paper-input/paper-textarea.html
new file mode 100644
index 0000000..bb6cacc
--- /dev/null
+++ b/paper-input/paper-textarea.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-textarea_bridge.js"></script>
+
diff --git a/paper-input/paper-textarea_bridge.js b/paper-input/paper-textarea_bridge.js
new file mode 100644
index 0000000..e0875ff
--- /dev/null
+++ b/paper-input/paper-textarea_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-input/paper-textarea.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperInput.PaperTextarea');
+
diff --git a/paper-item/all-imports.html b/paper-item/all-imports.html
new file mode 100644
index 0000000..4b1583f
--- /dev/null
+++ b/paper-item/all-imports.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="paper-item.html">
+<link rel="import" href="paper-item-body.html">
+<link rel="import" href="paper-icon-item.html">
diff --git a/paper-item/paper-icon-item.html b/paper-item/paper-icon-item.html
new file mode 100644
index 0000000..026266e
--- /dev/null
+++ b/paper-item/paper-icon-item.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-icon-item_bridge.js"></script>
+
diff --git a/paper-item/paper-icon-item_bridge.js b/paper-item/paper-icon-item_bridge.js
new file mode 100644
index 0000000..0e09973
--- /dev/null
+++ b/paper-item/paper-icon-item_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-item/paper-icon-item.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperItem.PaperIconItem');
+
diff --git a/paper-item/paper-item-behavior.html b/paper-item/paper-item-behavior.html
new file mode 100644
index 0000000..353b05d
--- /dev/null
+++ b/paper-item/paper-item-behavior.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-item-behavior_bridge.js"></script>
+
diff --git a/paper-item/paper-item-behavior_bridge.js b/paper-item/paper-item-behavior_bridge.js
new file mode 100644
index 0000000..f1338d3
--- /dev/null
+++ b/paper-item/paper-item-behavior_bridge.js
@@ -0,0 +1,27 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import {PaperItemBehavior, PaperItemBehaviorImpl} from '@polymer/paper-item/paper-item-behavior.js';
+
+/** @const */
+Polymer.PaperItemBehavior = PaperItemBehavior;
+/** @const */
+Polymer.PaperItemBehaviorImpl = PaperItemBehaviorImpl;
+
+goog.declareModuleId('HtmlImportsNamespace.PaperItem.PaperItemBehavior');
+
diff --git a/paper-item/paper-item-body.html b/paper-item/paper-item-body.html
new file mode 100644
index 0000000..70c7168
--- /dev/null
+++ b/paper-item/paper-item-body.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-item-body_bridge.js"></script>
+
diff --git a/paper-item/paper-item-body_bridge.js b/paper-item/paper-item-body_bridge.js
new file mode 100644
index 0000000..34055d6
--- /dev/null
+++ b/paper-item/paper-item-body_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-item/paper-item-body.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperItem.PaperItemBody');
+
diff --git a/paper-item/paper-item-shared-styles.html b/paper-item/paper-item-shared-styles.html
new file mode 100644
index 0000000..24ad3c2
--- /dev/null
+++ b/paper-item/paper-item-shared-styles.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-item-shared-styles_bridge.js"></script>
+
diff --git a/paper-item/paper-item-shared-styles_bridge.js b/paper-item/paper-item-shared-styles_bridge.js
new file mode 100644
index 0000000..5412e9f
--- /dev/null
+++ b/paper-item/paper-item-shared-styles_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-item/paper-item-shared-styles.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperItem.PaperItemSharedStyles');
+
diff --git a/paper-item/paper-item.html b/paper-item/paper-item.html
new file mode 100644
index 0000000..ab3add3
--- /dev/null
+++ b/paper-item/paper-item.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-item_bridge.js"></script>
+
diff --git a/paper-item/paper-item_bridge.js b/paper-item/paper-item_bridge.js
new file mode 100644
index 0000000..cf53e37
--- /dev/null
+++ b/paper-item/paper-item_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-item/paper-item.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperItem.PaperItem');
+
diff --git a/paper-listbox/paper-listbox.html b/paper-listbox/paper-listbox.html
new file mode 100644
index 0000000..9ad35cf
--- /dev/null
+++ b/paper-listbox/paper-listbox.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-listbox_bridge.js"></script>
+
diff --git a/paper-listbox/paper-listbox_bridge.js b/paper-listbox/paper-listbox_bridge.js
new file mode 100644
index 0000000..f1d85b3
--- /dev/null
+++ b/paper-listbox/paper-listbox_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-listbox/paper-listbox.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperListbox.PaperListbox');
+
diff --git a/paper-tabs/paper-tab.html b/paper-tabs/paper-tab.html
new file mode 100644
index 0000000..7da01f2
--- /dev/null
+++ b/paper-tabs/paper-tab.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-tab_bridge.js"></script>
+
diff --git a/paper-tabs/paper-tab_bridge.js b/paper-tabs/paper-tab_bridge.js
new file mode 100644
index 0000000..d78cea9
--- /dev/null
+++ b/paper-tabs/paper-tab_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-tabs/paper-tab.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperTabs.PaperTab');
+
diff --git a/paper-tabs/paper-tabs-icons.html b/paper-tabs/paper-tabs-icons.html
new file mode 100644
index 0000000..ebfa1a0
--- /dev/null
+++ b/paper-tabs/paper-tabs-icons.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-tabs-icons_bridge.js"></script>
+
diff --git a/paper-tabs/paper-tabs-icons_bridge.js b/paper-tabs/paper-tabs-icons_bridge.js
new file mode 100644
index 0000000..3e17040
--- /dev/null
+++ b/paper-tabs/paper-tabs-icons_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-tabs/paper-tabs-icons.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperTabs.PaperTabsIcons');
+
diff --git a/paper-tabs/paper-tabs.html b/paper-tabs/paper-tabs.html
new file mode 100644
index 0000000..f8f54d6
--- /dev/null
+++ b/paper-tabs/paper-tabs.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-tabs_bridge.js"></script>
+
diff --git a/paper-tabs/paper-tabs_bridge.js b/paper-tabs/paper-tabs_bridge.js
new file mode 100644
index 0000000..28b843d
--- /dev/null
+++ b/paper-tabs/paper-tabs_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-tabs/paper-tabs.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperTabs.PaperTabs');
+
diff --git a/paper-toggle-button/paper-toggle-button.html b/paper-toggle-button/paper-toggle-button.html
new file mode 100644
index 0000000..1a72078
--- /dev/null
+++ b/paper-toggle-button/paper-toggle-button.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<script crossorigin type="module" src="./paper-toggle-button_bridge.js"></script>
+
diff --git a/paper-toggle-button/paper-toggle-button_bridge.js b/paper-toggle-button/paper-toggle-button_bridge.js
new file mode 100644
index 0000000..f74a2df
--- /dev/null
+++ b/paper-toggle-button/paper-toggle-button_bridge.js
@@ -0,0 +1,22 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+ 
+import '../polymer/lib/utils/boot_bridge.js';
+import '@polymer/paper-toggle-button/paper-toggle-button.js';
+
+goog.declareModuleId('HtmlImportsNamespace.PaperToggleButton.PaperToggleButton');
+
diff --git a/polymer-resin/standalone/polymer-resin.html b/polymer-resin/standalone/polymer-resin.html
new file mode 100644
index 0000000..4453d13
--- /dev/null
+++ b/polymer-resin/standalone/polymer-resin.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../../polymer/polymer.html">
+
+<script crossorigin type="module" src="./polymer-resin_bridge.js"></script>
diff --git a/polymer-resin/standalone/polymer-resin_bridge.js b/polymer-resin/standalone/polymer-resin_bridge.js
new file mode 100644
index 0000000..dfb4f40
--- /dev/null
+++ b/polymer-resin/standalone/polymer-resin_bridge.js
@@ -0,0 +1,11 @@
+/**
+ @license
+ Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+ This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+ The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+ The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+ Code distributed by Google as part of the polymer project is also
+ subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+ */
+
+import 'polymer-resin/standalone/polymer-resin.js';
diff --git a/polymer/externs/closure-types.js b/polymer/externs/closure-types.js
new file mode 100644
index 0000000..e1d70f6
--- /dev/null
+++ b/polymer/externs/closure-types.js
@@ -0,0 +1,1448 @@
+/**
+ * @fileoverview Generated typings for Polymer mixins
+ * @externs
+ * @suppress {checkPrototypalTypes}
+ *
+ * @license
+ * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+ * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+ * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+ * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+ * Code distributed by Google as part of the polymer project is also
+ * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+ */
+/* eslint-disable */
+/**
+ * @interface
+ */
+function Polymer_PropertiesChanged(){}
+/** @protected {boolean} */
+Polymer_PropertiesChanged.prototype.__dataEnabled;
+
+/**
+* @param {string} property Name of the property
+* @param {boolean=} readOnly When true, no setter is created; the
+  protected `_setProperty` function must be used to set the property
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._createPropertyAccessor = function(property, readOnly){};
+/**
+* @param {string} property Name of the property
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._addPropertyToAttributeMap = function(property){};
+/**
+* @param {string} property Name of the property
+* @param {boolean=} readOnly When true, no setter is created
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._definePropertyAccessor = function(property, readOnly){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype.ready = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._initializeProperties = function(){};
+/**
+* @param {Object} props Bag of property values that were overwritten
+  when creating property accessors.
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._initializeInstanceProperties = function(props){};
+/**
+* @param {string} property Name of the property
+* @param {*} value Value to set
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._setProperty = function(property, value){};
+/**
+* @param {string} property Name of property
+* @return {*}
+*/
+Polymer_PropertiesChanged.prototype._getProperty = function(property){};
+/**
+* @param {string} property Name of the property
+* @param {*} value Value to set
+* @param {boolean=} ext Not used here; affordance for closure
+* @return {boolean}
+*/
+Polymer_PropertiesChanged.prototype._setPendingProperty = function(property, value, ext){};
+/**
+* @param {string} property Name of the property
+* @return {boolean}
+*/
+Polymer_PropertiesChanged.prototype._isPropertyPending = function(property){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._invalidateProperties = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._enableProperties = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._flushProperties = function(){};
+/**
+* @param {!Object} currentProps Bag of all current accessor values
+* @param {!Object} changedProps Bag of properties changed since the last
+  call to `_propertiesChanged`
+* @param {!Object} oldProps Bag of previous values for each property
+  in `changedProps`
+* @return {boolean}
+*/
+Polymer_PropertiesChanged.prototype._shouldPropertiesChange = function(currentProps, changedProps, oldProps){};
+/**
+* @param {!Object} currentProps Bag of all current accessor values
+* @param {!Object} changedProps Bag of properties changed since the last
+  call to `_propertiesChanged`
+* @param {!Object} oldProps Bag of previous values for each property
+  in `changedProps`
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){};
+/**
+* @param {string} property Property name
+* @param {*} value New property value
+* @param {*} old Previous property value
+* @return {boolean}
+*/
+Polymer_PropertiesChanged.prototype._shouldPropertyChange = function(property, value, old){};
+/**
+* @param {string} name Name of attribute that changed
+* @param {?string} old Old attribute value
+* @param {?string} value New attribute value
+* @param {?string} namespace Attribute namespace.
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype.attributeChangedCallback = function(name, old, value, namespace){};
+/**
+* @param {string} attribute Name of attribute to deserialize.
+* @param {?string} value of the attribute.
+* @param {*=} type type to deserialize to, defaults to the value
+returned from `typeForProperty`
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._attributeToProperty = function(attribute, value, type){};
+/**
+* @param {string} property Property name to reflect.
+* @param {string=} attribute Attribute name to reflect to.
+* @param {*=} value Property value to refect.
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._propertyToAttribute = function(property, attribute, value){};
+/**
+* @param {Element} node Element to set attribute to.
+* @param {*} value Value to serialize.
+* @param {string} attribute Attribute name to serialize to.
+* @return {void}
+*/
+Polymer_PropertiesChanged.prototype._valueToNodeAttribute = function(node, value, attribute){};
+/**
+* @param {*} value Property value to serialize.
+* @return {(string | undefined)}
+*/
+Polymer_PropertiesChanged.prototype._serializeValue = function(value){};
+/**
+* @param {?string} value Value to deserialize.
+* @param {*=} type Type to deserialize the string to.
+* @return {*}
+*/
+Polymer_PropertiesChanged.prototype._deserializeValue = function(value, type){};
+/**
+* @param {!Object} props Object whose keys are names of accessors.
+* @return {void}
+*/
+Polymer_PropertiesChanged.createProperties = function(props){};
+/**
+* @param {string} property Property to convert
+* @return {string}
+*/
+Polymer_PropertiesChanged.attributeNameForProperty = function(property){};
+/**
+* @param {string} name Name of property
+* @return {void}
+*/
+Polymer_PropertiesChanged.typeForProperty = function(name){};
+
+
+/**
+* @interface
+* @extends {Polymer_PropertiesChanged}
+*/
+function Polymer_PropertyAccessors(){}
+/**
+* @param {string} property Name of the property
+* @param {boolean=} readOnly When true, no setter is created
+
+When calling on a prototype, any overwritten values are saved in
+`__dataProto`, and it is up to the subclasser to decide how/when
+to set those properties back into the accessor.  When calling on an
+instance, the overwritten value is set via `_setPendingProperty`,
+and the user should call `_invalidateProperties` or `_flushProperties`
+for the values to take effect.
+* @return {void}
+*/
+Polymer_PropertyAccessors.prototype._definePropertyAccessor = function(property, readOnly){};
+/**
+* @return {void}
+*/
+Polymer_PropertyAccessors.prototype._initializeProperties = function(){};
+/**
+* @param {string} prop Property name
+* @return {boolean}
+*/
+Polymer_PropertyAccessors.prototype._isPropertyPending = function(prop){};
+/**
+* @param {*} value Property value to serialize.
+* @return {(string | undefined)}
+*/
+Polymer_PropertyAccessors.prototype._serializeValue = function(value){};
+/**
+* @param {?string} value Attribute value to deserialize.
+* @param {*=} type Type to deserialize the string to.
+* @return {*}
+*/
+Polymer_PropertyAccessors.prototype._deserializeValue = function(value, type){};
+/**
+* @param {Object} props Bag of property values that were overwritten
+  when creating property accessors.
+* @return {void}
+*/
+Polymer_PropertyAccessors.prototype._initializeProtoProperties = function(props){};
+/**
+* @param {string} attribute Name of attribute to ensure is set.
+* @param {string} value of the attribute.
+* @return {void}
+*/
+Polymer_PropertyAccessors.prototype._ensureAttribute = function(attribute, value){};
+/**
+* @param {string} property Property name
+* @return {boolean}
+*/
+Polymer_PropertyAccessors.prototype._hasAccessor = function(property){};
+/**
+* @param {string} property Property to convert
+* @return {string}
+*/
+Polymer_PropertyAccessors.attributeNameForProperty = function(property){};
+/**
+* @return {void}
+*/
+Polymer_PropertyAccessors.createPropertiesForAttributes = function(){};
+/**
+* @interface
+*/
+function Polymer_TemplateStamp(){}
+/**
+* @param {!HTMLTemplateElement} template Template to stamp
+* @param {TemplateInfo=} templateInfo Optional template info associated
+  with the template to be stamped; if omitted the template will be
+  automatically parsed.
+* @return {!StampedTemplate}
+*/
+Polymer_TemplateStamp.prototype._stampTemplate = function(template, templateInfo){};
+/**
+* @param {!Node} node Node to add listener on
+* @param {string} eventName Name of event
+* @param {string} methodName Name of method
+* @param {*=} context Context the method will be called on (defaults
+  to `node`)
+* @return {Function}
+*/
+Polymer_TemplateStamp.prototype._addMethodEventListenerToNode = function(node, eventName, methodName, context){};
+/**
+* @param {!Node} node Node to add event listener to
+* @param {string} eventName Name of event
+* @param {function (!Event): void} handler Listener function to add
+* @return {void}
+*/
+Polymer_TemplateStamp.prototype._addEventListenerToNode = function(node, eventName, handler){};
+/**
+* @param {!Node} node Node to remove event listener from
+* @param {string} eventName Name of event
+* @param {function (!Event): void} handler Listener function to remove
+* @return {void}
+*/
+Polymer_TemplateStamp.prototype._removeEventListenerFromNode = function(node, eventName, handler){};
+/**
+* @param {!HTMLTemplateElement} template Template to parse
+* @param {TemplateInfo=} outerTemplateInfo Template metadata from the outer
+  template, for parsing nested templates
+* @return {!TemplateInfo}
+*/
+Polymer_TemplateStamp._parseTemplate = function(template, outerTemplateInfo){};
+/**
+* @param {*} template .
+* @param {*} templateInfo .
+* @param {*} nodeInfo .
+* @return {boolean}
+*/
+Polymer_TemplateStamp._parseTemplateContent = function(template, templateInfo, nodeInfo){};
+/**
+* @param {Node} node Node to parse
+* @param {!TemplateInfo} templateInfo Template metadata for current template
+* @param {!NodeInfo} nodeInfo Node metadata for current template.
+* @return {boolean}
+*/
+Polymer_TemplateStamp._parseTemplateNode = function(node, templateInfo, nodeInfo){};
+/**
+* @param {Node} root Root node whose `childNodes` will be parsed
+* @param {!TemplateInfo} templateInfo Template metadata for current template
+* @param {!NodeInfo} nodeInfo Node metadata for current template.
+* @return {void}
+*/
+Polymer_TemplateStamp._parseTemplateChildNodes = function(root, templateInfo, nodeInfo){};
+/**
+* @param {HTMLTemplateElement} node Node to parse (a <template>)
+* @param {TemplateInfo} outerTemplateInfo Template metadata for current template
+  that includes the template `node`
+* @param {!NodeInfo} nodeInfo Node metadata for current template.
+* @return {boolean}
+*/
+Polymer_TemplateStamp._parseTemplateNestedTemplate = function(node, outerTemplateInfo, nodeInfo){};
+/**
+* @param {Element} node Node to parse
+* @param {TemplateInfo} templateInfo Template metadata for current
+    template
+* @param {NodeInfo} nodeInfo Node metadata for current template.
+* @return {boolean}
+*/
+Polymer_TemplateStamp._parseTemplateNodeAttributes = function(node, templateInfo, nodeInfo){};
+/**
+* @param {Element} node Node to parse
+* @param {!TemplateInfo} templateInfo Template metadata for current template
+* @param {!NodeInfo} nodeInfo Node metadata for current template.
+* @param {string} name Attribute name
+* @param {string} value Attribute value
+* @return {boolean}
+*/
+Polymer_TemplateStamp._parseTemplateNodeAttribute = function(node, templateInfo, nodeInfo, name, value){};
+/**
+* @param {HTMLTemplateElement} template Template to retrieve `content` for
+* @return {DocumentFragment}
+*/
+Polymer_TemplateStamp._contentForTemplate = function(template){};
+/**
+* @interface
+* @extends {Polymer_TemplateStamp}
+* @extends {Polymer_PropertyAccessors}
+*/
+function Polymer_PropertyEffects(){}
+/** @type {boolean} */
+Polymer_PropertyEffects.prototype.__dataClientsReady;
+
+/** @type {Array} */
+Polymer_PropertyEffects.prototype.__dataPendingClients;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__dataToNotify;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__dataLinkedPaths;
+
+/** @type {boolean} */
+Polymer_PropertyEffects.prototype.__dataHasPaths;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__dataCompoundStorage;
+
+/** @type {Polymer_PropertyEffects} */
+Polymer_PropertyEffects.prototype.__dataHost;
+
+/** @type {!Object} */
+Polymer_PropertyEffects.prototype.__dataTemp;
+
+/** @type {boolean} */
+Polymer_PropertyEffects.prototype.__dataClientsInitialized;
+
+/** @type {!Object} */
+Polymer_PropertyEffects.prototype.__data;
+
+/** @type {!Object|null} */
+Polymer_PropertyEffects.prototype.__dataPending;
+
+/** @type {!Object} */
+Polymer_PropertyEffects.prototype.__dataOld;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__computeEffects;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__computeInfo;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__reflectEffects;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__notifyEffects;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__propagateEffects;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__observeEffects;
+
+/** @type {Object} */
+Polymer_PropertyEffects.prototype.__readOnly;
+
+/** @type {!TemplateInfo} */
+Polymer_PropertyEffects.prototype.__templateInfo;
+
+/**
+* @override
+* @param {!HTMLTemplateElement} template Template to stamp
+* @param {TemplateInfo=} templateInfo Optional bound template info associated
+  with the template to be stamped; if omitted the template will be
+  automatically bound.
+* @return {!StampedTemplate}
+*/
+Polymer_PropertyEffects.prototype._stampTemplate = function(template, templateInfo){};
+/**
+* @override
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.ready = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._initializeProperties = function(){};
+/**
+* @override
+* @param {Object} props Properties to initialize on the instance
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._initializeInstanceProperties = function(props){};
+/**
+* @override
+* @param {string} property Name of the property
+* @param {*} value Value to set
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._setProperty = function(property, value){};
+/**
+* @override
+* @param {string} property Name of the property
+* @param {*} value Value to set
+* @param {boolean=} shouldNotify True if property should fire notification
+  event (applies only for `notify: true` properties)
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._setPendingProperty = function(property, value, shouldNotify){};
+/**
+* @override
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._invalidateProperties = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._flushProperties = function(){};
+/**
+* @param {!Object} currentProps Bag of all current accessor values
+* @param {!Object} changedProps Bag of properties changed since the last
+  call to `_propertiesChanged`
+* @param {!Object} oldProps Bag of previous values for each property
+  in `changedProps`
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._propertiesChanged = function(currentProps, changedProps, oldProps){};
+/**
+* @override
+* @param {Object} props Properties to initialize on the prototype
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._initializeProtoProperties = function(props){};
+/**
+* @param {string} property Property that should trigger the effect
+* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES
+* @param {Object=} effect Effect metadata object
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._addPropertyEffect = function(property, type, effect){};
+/**
+* @param {string} property Property the effect was associated with
+* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES
+* @param {Object=} effect Effect metadata object to remove
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._removePropertyEffect = function(property, type, effect){};
+/**
+* @param {string} property Property name
+* @param {string=} type Effect type, from this.PROPERTY_EFFECT_TYPES
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._hasPropertyEffect = function(property, type){};
+/**
+* @param {string} property Property name
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._hasReadOnlyEffect = function(property){};
+/**
+* @param {string} property Property name
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._hasNotifyEffect = function(property){};
+/**
+* @param {string} property Property name
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._hasReflectEffect = function(property){};
+/**
+* @param {string} property Property name
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._hasComputedEffect = function(property){};
+/**
+* @param {(string | !Array.<(number | string)>)} path Path to set
+* @param {*} value Value to set
+* @param {boolean=} shouldNotify Set to true if this change should
+ cause a property notification event dispatch
+* @param {boolean=} isPathNotification If the path being set is a path
+  notification of an already changed value, as opposed to a request
+  to set and notify the change.  In the latter `false` case, a dirty
+  check is performed and then the value is set to the path before
+  enqueuing the pending property change.
+* @return {boolean}
+*/
+Polymer_PropertyEffects.prototype._setPendingPropertyOrPath = function(path, value, shouldNotify, isPathNotification){};
+/**
+* @param {!Node} node The node to set a property on
+* @param {string} prop The property to set
+* @param {*} value The value to set
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._setUnmanagedPropertyToNode = function(node, prop, value){};
+/**
+* @param {Object} client PropertyEffects client to enqueue
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._enqueueClient = function(client){};
+/**
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._flushClients = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._readyClients = function(){};
+/**
+* @param {Object} props Bag of one or more key-value pairs whose key is
+  a property and value is the new value to set for that property.
+* @param {boolean=} setReadOnly When true, any private values set in
+  `props` will be set. By default, `setProperties` will not set
+  `readOnly: true` root properties.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.setProperties = function(props, setReadOnly){};
+/**
+* @param {Object} changedProps Bag of changed properties
+* @param {Object} oldProps Bag of previous values for changed properties
+* @param {boolean} hasPaths True with `props` contains one or more paths
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._propagatePropertyChanges = function(changedProps, oldProps, hasPaths){};
+/**
+* @param {(string | !Array.<(string | number)>)} to Target path to link.
+* @param {(string | !Array.<(string | number)>)} from Source path to link.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.linkPaths = function(to, from){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Target path to unlink.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.unlinkPaths = function(path){};
+/**
+* @param {string} path Path that should be notified.
+* @param {Array} splices Array of splice records indicating ordered
+  changes that occurred to the array. Each record should have the
+  following fields:
+   * index: index at which the change occurred
+   * removed: array of items that were removed from this index
+   * addedCount: number of new items added at this index
+   * object: a reference to the array in question
+   * type: the string literal 'splice'
+
+  Note that splice records _must_ be normalized such that they are
+  reported in index order (raw results from `Object.observe` are not
+  ordered and must be normalized/merged before notifying).
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.notifySplices = function(path, splices){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to the value
+  to read.  The path may be specified as a string (e.g. `foo.bar.baz`)
+  or an array of path parts (e.g. `['foo.bar', 'baz']`).  Note that
+  bracketed expressions are not supported; string-based path parts
+  *must* be separated by dots.  Note that when dereferencing array
+  indices, the index may be used as a dotted part directly
+  (e.g. `users.12.name` or `['users', 12, 'name']`).
+* @param {Object=} root Root object from which the path is evaluated.
+* @return {*}
+*/
+Polymer_PropertyEffects.prototype.get = function(path, root){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to the value
+  to write.  The path may be specified as a string (e.g. `'foo.bar.baz'`)
+  or an array of path parts (e.g. `['foo.bar', 'baz']`).  Note that
+  bracketed expressions are not supported; string-based path parts
+  *must* be separated by dots.  Note that when dereferencing array
+  indices, the index may be used as a dotted part directly
+  (e.g. `'users.12.name'` or `['users', 12, 'name']`).
+* @param {*} value Value to set at the specified path.
+* @param {Object=} root Root object from which the path is evaluated.
+  When specified, no notification will occur.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.set = function(path, value, root){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to array.
+* @param {...*} items Items to push onto array
+* @return {number}
+*/
+Polymer_PropertyEffects.prototype.push = function(path, items){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to array.
+* @return {*}
+*/
+Polymer_PropertyEffects.prototype.pop = function(path){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to array.
+* @param {number} start Index from which to start removing/inserting.
+* @param {number} deleteCount Number of items to remove.
+* @param {...*} items Items to insert into array.
+* @return {Array}
+*/
+Polymer_PropertyEffects.prototype.splice = function(path, start, deleteCount, items){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to array.
+* @return {*}
+*/
+Polymer_PropertyEffects.prototype.shift = function(path){};
+/**
+* @param {(string | !Array.<(string | number)>)} path Path to array.
+* @param {...*} items Items to insert info array
+* @return {number}
+*/
+Polymer_PropertyEffects.prototype.unshift = function(path, items){};
+/**
+* @param {string} path Path that should be notified.
+* @param {*=} value Value at the path (optional).
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype.notifyPath = function(path, value){};
+/**
+* @param {string} property Property name
+* @param {boolean=} protectedSetter Creates a custom protected setter
+  when `true`.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._createReadOnlyProperty = function(property, protectedSetter){};
+/**
+* @param {string} property Property name
+* @param {(string | function (*, *))} method Function or name of observer method
+    to call
+* @param {boolean=} dynamicFn Whether the method name should be included as
+  a dependency to the effect.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._createPropertyObserver = function(property, method, dynamicFn){};
+/**
+* @param {string} expression Method expression
+* @param {(boolean | Object)=} dynamicFn Boolean or object map indicating
+  whether method names should be included as a dependency to the effect.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._createMethodObserver = function(expression, dynamicFn){};
+/**
+* @param {string} property Property name
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._createNotifyingProperty = function(property){};
+/**
+* @param {string} property Property name
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._createReflectedProperty = function(property){};
+/**
+* @param {string} property Name of computed property to set
+* @param {string} expression Method expression
+* @param {(boolean | Object)=} dynamicFn Boolean or object map indicating
+  whether method names should be included as a dependency to the effect.
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._createComputedProperty = function(property, expression, dynamicFn){};
+/**
+* @param {!HTMLTemplateElement} template Template containing binding
+bindings
+* @param {boolean=} instanceBinding When false (default), performs
+"prototypical" binding of the template and overwrites any previously
+bound template for the class. When true (as passed from
+`_stampTemplate`), the template info is instanced and linked into the
+list of bound templates.
+* @return {!TemplateInfo}
+*/
+Polymer_PropertyEffects.prototype._bindTemplate = function(template, instanceBinding){};
+/**
+* @param {!StampedTemplate} dom DocumentFragment previously returned
+  from `_stampTemplate` associated with the nodes to be removed
+* @return {void}
+*/
+Polymer_PropertyEffects.prototype._removeBoundDom = function(dom){};
+/**
+* @param {Node} node Node to parse
+* @param {TemplateInfo} templateInfo Template metadata for current template
+* @param {NodeInfo} nodeInfo Node metadata for current template node
+* @return {boolean}
+*/
+Polymer_PropertyEffects._parseTemplateNode = function(node, templateInfo, nodeInfo){};
+/**
+* @param {Node} node Node to parse
+* @param {TemplateInfo} templateInfo Template metadata for current template
+* @param {NodeInfo} nodeInfo Node metadata for current template node
+* @return {boolean}
+*/
+Polymer_PropertyEffects._parseTemplateNestedTemplate = function(node, templateInfo, nodeInfo){};
+/**
+* @param {Element} node Node to parse
+* @param {TemplateInfo} templateInfo Template metadata for current template
+* @param {NodeInfo} nodeInfo Node metadata for current template node
+* @param {string} name Attribute name
+* @param {string} value Attribute value
+* @return {boolean}
+*/
+Polymer_PropertyEffects._parseTemplateNodeAttribute = function(node, templateInfo, nodeInfo, name, value){};
+/**
+* @param {string} property Property that should trigger the effect
+* @param {string} type Effect type, from this.PROPERTY_EFFECT_TYPES
+* @param {Object=} effect Effect metadata object
+* @return {void}
+*/
+Polymer_PropertyEffects.addPropertyEffect = function(property, type, effect){};
+/**
+* @param {string} property Property name
+* @param {(string | function (*, *))} method Function or name of observer method to call
+* @param {boolean=} dynamicFn Whether the method name should be included as
+  a dependency to the effect.
+* @return {void}
+*/
+Polymer_PropertyEffects.createPropertyObserver = function(property, method, dynamicFn){};
+/**
+* @param {string} expression Method expression
+* @param {(boolean | Object)=} dynamicFn Boolean or object map indicating
+* @return {void}
+*/
+Polymer_PropertyEffects.createMethodObserver = function(expression, dynamicFn){};
+/**
+* @param {string} property Property name
+* @return {void}
+*/
+Polymer_PropertyEffects.createNotifyingProperty = function(property){};
+/**
+* @param {string} property Property name
+* @param {boolean=} protectedSetter Creates a custom protected setter
+  when `true`.
+* @return {void}
+*/
+Polymer_PropertyEffects.createReadOnlyProperty = function(property, protectedSetter){};
+/**
+* @param {string} property Property name
+* @return {void}
+*/
+Polymer_PropertyEffects.createReflectedProperty = function(property){};
+/**
+* @param {string} property Name of computed property to set
+* @param {string} expression Method expression
+* @param {(boolean | Object)=} dynamicFn Boolean or object map indicating whether
+  method names should be included as a dependency to the effect.
+* @return {void}
+*/
+Polymer_PropertyEffects.createComputedProperty = function(property, expression, dynamicFn){};
+/**
+* @param {!HTMLTemplateElement} template Template containing binding
+  bindings
+* @return {!TemplateInfo}
+*/
+Polymer_PropertyEffects.bindTemplate = function(template){};
+/**
+* @param {Object} templateInfo Template metadata to add effect to
+* @param {string} prop Property that should trigger the effect
+* @param {Object=} effect Effect metadata object
+* @return {void}
+*/
+Polymer_PropertyEffects._addTemplatePropertyEffect = function(templateInfo, prop, effect){};
+/**
+* @param {string} text Text to parse from attribute or textContent
+* @param {Object} templateInfo Current template metadata
+* @return {Array.<!BindingPart>}
+*/
+Polymer_PropertyEffects._parseBindings = function(text, templateInfo){};
+/**
+* @param {Element} inst Element that should be used as
+    scope for binding dependencies
+* @param {BindingPart} part Binding part metadata
+* @param {string} path Property/path that triggered this effect
+* @param {Object} props Bag of current property changes
+* @param {Object} oldProps Bag of previous values for changed properties
+* @param {boolean} hasPaths True with `props` contains one or more paths
+* @return {*}
+*/
+Polymer_PropertyEffects._evaluateBinding = function(inst, part, path, props, oldProps, hasPaths){};
+/**
+* @interface
+* @extends {Polymer_PropertiesChanged}
+*/
+function Polymer_PropertiesMixin(){}
+/**
+* @override
+* @return {void}
+*/
+Polymer_PropertiesMixin.prototype._initializeProperties = function(){};
+/** @type {function()|undefined} */
+Polymer_PropertiesMixin.prototype.connectedCallback;
+/** @type {function()|undefined} */
+Polymer_PropertiesMixin.prototype.disconnectedCallback;
+/**
+* @param {string} name Name of property
+* @return {*}
+*/
+Polymer_PropertiesMixin.typeForProperty = function(name){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesMixin.finalize = function(){};
+/**
+* @return {void}
+*/
+Polymer_PropertiesMixin._finalizeClass = function(){};
+/**
+* @interface
+* @extends {Polymer_PropertyEffects}
+* @extends {Polymer_PropertiesMixin}
+*/
+function Polymer_ElementMixin(){}
+/** @type {HTMLTemplateElement} */
+Polymer_ElementMixin.prototype._template;
+
+/** @type {string} */
+Polymer_ElementMixin.prototype._importPath;
+
+/** @type {string} */
+Polymer_ElementMixin.prototype.rootPath;
+
+/** @type {string} */
+Polymer_ElementMixin.prototype.importPath;
+
+/** @type {(StampedTemplate | HTMLElement | ShadowRoot)} */
+Polymer_ElementMixin.prototype.root;
+
+/** @type {!Object.<string, !Element>} */
+Polymer_ElementMixin.prototype.$;
+
+/**
+* @override
+* @return {void}
+*/
+Polymer_ElementMixin.prototype.ready = function(){};
+/**
+* @override
+* @return {void}
+*/
+Polymer_ElementMixin.prototype._initializeProperties = function(){};
+/**
+* @override
+* @return {void}
+*/
+Polymer_ElementMixin.prototype._readyClients = function(){};
+/** @type {function()|undefined} */
+Polymer_ElementMixin.prototype.connectedCallback;
+/**
+* @param {string} property Name of the property
+* @return {boolean} Returns true if the property default can be applied.
+*/
+Polymer_ElementMixin.prototype._canApplyPropertyDefault = function(property){};
+/**
+* @param {StampedTemplate} dom to attach to the element.
+* @return {ShadowRoot}
+*/
+Polymer_ElementMixin.prototype._attachDom = function(dom){};
+/**
+* @param {Object=} properties Bag of custom property key/values to
+  apply to this element.
+* @return {void}
+*/
+Polymer_ElementMixin.prototype.updateStyles = function(properties){};
+/**
+* @param {string} url URL to resolve.
+* @param {string=} base Optional base URL to resolve against, defaults
+to the element's `importPath`
+* @return {string}
+*/
+Polymer_ElementMixin.prototype.resolveUrl = function(url, base){};
+/**
+* @param {!HTMLTemplateElement} template Template
+* @param {!TemplateInfo} templateInfo Template metadata for current template
+* @param {!NodeInfo} nodeInfo Node metadata for current template.
+* @return {boolean}
+*/
+Polymer_ElementMixin._parseTemplateContent = function(template, templateInfo, nodeInfo){};
+/**
+* @param {!Object} props .
+* @return {void}
+*/
+Polymer_ElementMixin.createProperties = function(props){};
+/**
+* @param {Object} templateInfo Template metadata to add effect to
+* @param {string} prop Property that should trigger the effect
+* @param {Object=} effect Effect metadata object
+* @return {void}
+*/
+Polymer_ElementMixin._addTemplatePropertyEffect = function(templateInfo, prop, effect){};
+/**
+* @return {void}
+*/
+Polymer_ElementMixin._finalizeClass = function(){};
+/**
+* @return {void}
+*/
+Polymer_ElementMixin._prepareTemplate = function(){};
+/**
+* @param {Object} observers Array of observer descriptors for
+  this class
+* @param {Object} dynamicFns Object containing keys for any properties
+  that are functions and should trigger the effect when the function
+  reference is changed
+* @return {void}
+*/
+Polymer_ElementMixin.createObservers = function(observers, dynamicFns){};
+/**
+* @param {string} cssText Text containing styling to process
+* @param {string} baseURI Base URI to rebase CSS paths against
+* @return {string}
+*/
+Polymer_ElementMixin._processStyleText = function(cssText, baseURI){};
+/**
+* @param {string} is Tag name (or type extension name) for this element
+* @return {void}
+*/
+Polymer_ElementMixin._finalizeTemplate = function(is){};
+/**
+* @interface
+*/
+function Polymer_GestureEventListeners(){}
+/**
+* @param {!Node} node Node to add event listener to
+* @param {string} eventName Name of event
+* @param {function (!Event): void} handler Listener function to add
+* @return {void}
+*/
+Polymer_GestureEventListeners.prototype._addEventListenerToNode = function(node, eventName, handler){};
+/**
+* @param {!Node} node Node to remove event listener from
+* @param {string} eventName Name of event
+* @param {function (!Event): void} handler Listener function to remove
+* @return {void}
+*/
+Polymer_GestureEventListeners.prototype._removeEventListenerFromNode = function(node, eventName, handler){};
+/**
+* @interface
+* @extends {Polymer_PropertyAccessors}
+*/
+function Polymer_DirMixin(){}
+/** @type {boolean} */
+Polymer_DirMixin.prototype.__autoDirOptOut;
+
+/**
+* @return {void}
+*/
+Polymer_DirMixin.prototype.ready = function(){};
+/** @type {function()|undefined} */
+Polymer_DirMixin.prototype.connectedCallback;
+/** @type {function()|undefined} */
+Polymer_DirMixin.prototype.disconnectedCallback;
+/**
+* @param {string} cssText .
+* @param {string} baseURI .
+* @return {string}
+*/
+Polymer_DirMixin._processStyleText = function(cssText, baseURI){};
+/**
+* @param {string} text CSS text to replace DIR
+* @return {string}
+*/
+Polymer_DirMixin._replaceDirInCssText = function(text){};
+/**
+* @interface
+* @extends {Polymer_ElementMixin}
+* @extends {Polymer_GestureEventListeners}
+* @extends {Polymer_DirMixin}
+*/
+function Polymer_LegacyElementMixin(){}
+/** @type {boolean} */
+Polymer_LegacyElementMixin.prototype.isAttached;
+
+/** @type {WeakMap.<!Element, !Object.<string, !Function>>} */
+Polymer_LegacyElementMixin.prototype.__boundListeners;
+
+/** @type {Object.<string, Function>} */
+Polymer_LegacyElementMixin.prototype._debouncers;
+
+/** @type {?Node} */
+Polymer_LegacyElementMixin.prototype.domHost;
+
+/**
+* @override
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.ready = function(){};
+/**
+* @override
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._initializeProperties = function(){};
+/**
+* @override
+* @param {string} name Name of attribute.
+* @param {?string} old Old value of attribute.
+* @param {?string} value Current value of attribute.
+* @param {?string} namespace Attribute namespace.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.attributeChangedCallback = function(name, old, value, namespace){};
+/** @type {function()|undefined} */
+Polymer_LegacyElementMixin.prototype.connectedCallback;
+/** @type {function()|undefined} */
+Polymer_LegacyElementMixin.prototype.disconnectedCallback;
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.created = function(){};
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.attached = function(){};
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.detached = function(){};
+/**
+* @param {string} name Name of attribute.
+* @param {?string} old Old value of attribute.
+* @param {?string} value Current value of attribute.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.attributeChanged = function(name, old, value){};
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._registered = function(){};
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._ensureAttributes = function(){};
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._applyListeners = function(){};
+/**
+* @param {*} value Value to deserialize
+* @return {(string | undefined)}
+*/
+Polymer_LegacyElementMixin.prototype.serialize = function(value){};
+/**
+* @param {string} value String to deserialize
+* @param {*} type Type to deserialize the string to
+* @return {*}
+*/
+Polymer_LegacyElementMixin.prototype.deserialize = function(value, type){};
+/**
+* @param {string} property Property name to reflect.
+* @param {string=} attribute Attribute name to reflect.
+* @param {*=} value Property value to reflect.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.reflectPropertyToAttribute = function(property, attribute, value){};
+/**
+* @param {*} value Value to serialize.
+* @param {string} attribute Attribute name to serialize to.
+* @param {Element} node Element to set attribute to.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.serializeValueToAttribute = function(value, attribute, node){};
+/**
+* @param {Object} prototype Target object to copy properties to.
+* @param {Object} api Source object to copy properties from.
+* @return {Object}
+*/
+Polymer_LegacyElementMixin.prototype.extend = function(prototype, api){};
+/**
+* @param {!Object} target Target object to copy properties to.
+* @param {!Object} source Source object to copy properties from.
+* @return {!Object}
+*/
+Polymer_LegacyElementMixin.prototype.mixin = function(target, source){};
+/**
+* @param {Object} object The object on which to set the prototype.
+* @param {Object} prototype The prototype that will be set on the given
+`object`.
+* @return {Object}
+*/
+Polymer_LegacyElementMixin.prototype.chainObject = function(object, prototype){};
+/**
+* @param {HTMLTemplateElement} template HTML template element to instance.
+* @return {!DocumentFragment}
+*/
+Polymer_LegacyElementMixin.prototype.instanceTemplate = function(template){};
+/**
+* @param {string} type Name of event type.
+* @param {*=} detail Detail value containing event-specific
+  payload.
+* @param {{bubbles: (boolean | undefined), cancelable: (boolean | undefined), composed: (boolean | undefined)}=} options Object specifying options.  These may include:
+ `bubbles` (boolean, defaults to `true`),
+ `cancelable` (boolean, defaults to false), and
+ `node` on which to fire the event (HTMLElement, defaults to `this`).
+* @return {!Event}
+*/
+Polymer_LegacyElementMixin.prototype.fire = function(type, detail, options){};
+/**
+* @param {?EventTarget} node Element to add event listener to.
+* @param {string} eventName Name of event to listen for.
+* @param {string} methodName Name of handler method on `this` to call.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.listen = function(node, eventName, methodName){};
+/**
+* @param {?EventTarget} node Element to remove event listener from.
+* @param {string} eventName Name of event to stop listening to.
+* @param {string} methodName Name of handler method on `this` to not call
+     anymore.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.unlisten = function(node, eventName, methodName){};
+/**
+* @param {string=} direction Direction to allow scrolling
+Defaults to `all`.
+* @param {Element=} node Element to apply scroll direction setting.
+Defaults to `this`.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.setScrollDirection = function(direction, node){};
+/**
+* @param {string} slctr Selector to run on this local DOM scope
+* @return {Element}
+*/
+Polymer_LegacyElementMixin.prototype.$$ = function(slctr){};
+/**
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.distributeContent = function(){};
+/**
+* @return {!Array.<!Node>}
+*/
+Polymer_LegacyElementMixin.prototype.getEffectiveChildNodes = function(){};
+/**
+* @param {string} selector Selector to run.
+* @return {!Array.<!Node>}
+*/
+Polymer_LegacyElementMixin.prototype.queryDistributedElements = function(selector){};
+/**
+* @return {!Array.<!Node>}
+*/
+Polymer_LegacyElementMixin.prototype.getEffectiveChildren = function(){};
+/**
+* @return {string}
+*/
+Polymer_LegacyElementMixin.prototype.getEffectiveTextContent = function(){};
+/**
+* @param {string} selector Selector to run.
+* @return {Node}
+*/
+Polymer_LegacyElementMixin.prototype.queryEffectiveChildren = function(selector){};
+/**
+* @param {string} selector Selector to run.
+* @return {!Array.<!Node>}
+*/
+Polymer_LegacyElementMixin.prototype.queryAllEffectiveChildren = function(selector){};
+/**
+* @param {string=} slctr CSS selector to choose the desired
+  `<slot>`.  Defaults to `content`.
+* @return {!Array.<!Node>}
+*/
+Polymer_LegacyElementMixin.prototype.getContentChildNodes = function(slctr){};
+/**
+* @param {string=} slctr CSS selector to choose the desired
+  `<content>`.  Defaults to `content`.
+* @return {!Array.<!HTMLElement>}
+*/
+Polymer_LegacyElementMixin.prototype.getContentChildren = function(slctr){};
+/**
+* @param {?Node} node The element to be checked.
+* @return {boolean}
+*/
+Polymer_LegacyElementMixin.prototype.isLightDescendant = function(node){};
+/**
+* @param {!Element} node The element to be checked.
+* @return {boolean}
+*/
+Polymer_LegacyElementMixin.prototype.isLocalDescendant = function(node){};
+/**
+* @param {!Element} container Container element to scope
+* @param {boolean=} shouldObserve if true, start a mutation observer for added nodes to the container
+* @return {?MutationObserver}
+*/
+Polymer_LegacyElementMixin.prototype.scopeSubtree = function(container, shouldObserve){};
+/**
+* @param {string} property The css property name.
+* @return {string}
+*/
+Polymer_LegacyElementMixin.prototype.getComputedStyleValue = function(property){};
+/**
+* @param {string} jobName String to identify the debounce job.
+* @param {function (): void} callback Function that is called (with `this`
+  context) when the wait time elapses.
+* @param {number=} wait Optional wait time in milliseconds (ms) after the
+  last signal that must elapse before invoking `callback`
+* @return {!Object}
+*/
+Polymer_LegacyElementMixin.prototype.debounce = function(jobName, callback, wait){};
+/**
+* @param {string} jobName The name of the debouncer started with `debounce`
+* @return {boolean}
+*/
+Polymer_LegacyElementMixin.prototype.isDebouncerActive = function(jobName){};
+/**
+* @param {string} jobName The name of the debouncer started with `debounce`
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.flushDebouncer = function(jobName){};
+/**
+* @param {string} jobName The name of the debouncer started with `debounce`
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.cancelDebouncer = function(jobName){};
+/**
+* @param {!Function} callback The callback function to run, bound to
+    `this`.
+* @param {number=} waitTime Time to wait before calling the
+  `callback`.  If unspecified or 0, the callback will be run at microtask
+  timing (before paint).
+* @return {number}
+*/
+Polymer_LegacyElementMixin.prototype.async = function(callback, waitTime){};
+/**
+* @param {number} handle Handle returned from original `async` call to
+  cancel.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.cancelAsync = function(handle){};
+/**
+* @param {string} tag HTML element tag to create.
+* @param {Object=} props Object of properties to configure on the
+   instance.
+* @return {!Element}
+*/
+Polymer_LegacyElementMixin.prototype.create = function(tag, props){};
+/**
+* @param {string} selector Selector to test.
+* @param {!Element=} node Element to test the selector against.
+* @return {boolean}
+*/
+Polymer_LegacyElementMixin.prototype.elementMatches = function(selector, node){};
+/**
+* @param {string} name HTML attribute name
+* @param {boolean=} bool Boolean to force the attribute on or off.
+   When unspecified, the state of the attribute will be reversed.
+* @param {Element=} node Node to target.  Defaults to `this`.
+* @return {boolean}
+*/
+Polymer_LegacyElementMixin.prototype.toggleAttribute = function(name, bool, node){};
+/**
+* @param {string} name CSS class name
+* @param {boolean=} bool Boolean to force the class on or off.
+   When unspecified, the state of the class will be reversed.
+* @param {Element=} node Node to target.  Defaults to `this`.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.toggleClass = function(name, bool, node){};
+/**
+* @param {string} transformText Transform setting.
+* @param {Element=} node Element to apply the transform to.
+Defaults to `this`
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.transform = function(transformText, node){};
+/**
+* @param {number|string} x X offset.
+* @param {number|string} y Y offset.
+* @param {number|string} z Z offset.
+* @param {Element=} node Element to apply the transform to.
+Defaults to `this`.
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype.translate3d = function(x, y, z, node){};
+/**
+* @param {(string | !Array.<(number | string)>)} arrayOrPath Path to array from
+    which to remove the item
+  (or the array itself).
+* @param {*} item Item to remove.
+* @return {Array}
+*/
+Polymer_LegacyElementMixin.prototype.arrayDelete = function(arrayOrPath, item){};
+/**
+* @param {string} level One of 'log', 'warn', 'error'
+* @param {Array} args Array of strings or objects to log
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._logger = function(level, args){};
+/**
+* @param {...*} args Array of strings or objects to log
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._log = function(args){};
+/**
+* @param {...*} args Array of strings or objects to log
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._warn = function(args){};
+/**
+* @param {...*} args Array of strings or objects to log
+* @return {void}
+*/
+Polymer_LegacyElementMixin.prototype._error = function(args){};
+/**
+* @param {string} methodName Method name to associate with message
+* @param {...*} args Array of strings or objects to log
+* @return {Array}
+*/
+Polymer_LegacyElementMixin.prototype._logf = function(methodName, args){};
+/**
+* @interface
+* @extends {Polymer_ElementMixin}
+*/
+function Polymer_DisableUpgradeMixin(){}
+/**
+* @return {void}
+*/
+Polymer_DisableUpgradeMixin.prototype._initializeProperties = function(){};
+/**
+* @return {void}
+*/
+Polymer_DisableUpgradeMixin.prototype._enableProperties = function(){};
+/**
+* @param {string} name Attribute name.
+* @param {?string} old The previous value for the attribute.
+* @param {?string} value The new value for the attribute.
+* @param {?string} namespace The XML namespace for the attribute.
+* @return {void}
+*/
+Polymer_DisableUpgradeMixin.prototype.attributeChangedCallback = function(name, old, value, namespace){};
+/** @type {function()|undefined} */
+Polymer_DisableUpgradeMixin.prototype.connectedCallback;
+/** @type {function()|undefined} */
+Polymer_DisableUpgradeMixin.prototype.disconnectedCallback;
+/**
+* @override
+*/
+Polymer_DisableUpgradeMixin.prototype._canApplyPropertyDefault = function(property){};
+/**
+* @interface
+*/
+function Polymer_MutableData(){}
+/**
+* @param {string} property Property name
+* @param {*} value New property value
+* @param {*} old Previous property value
+* @return {boolean}
+*/
+Polymer_MutableData.prototype._shouldPropertyChange = function(property, value, old){};
+/**
+* @interface
+*/
+function Polymer_OptionalMutableData(){}
+/** @type {boolean} */
+Polymer_OptionalMutableData.prototype.mutableData;
+
+/**
+* @param {string} property Property name
+* @param {*} value New property value
+* @param {*} old Previous property value
+* @return {boolean}
+*/
+Polymer_OptionalMutableData.prototype._shouldPropertyChange = function(property, value, old){};
+/**
+* @interface
+* @extends {Polymer_ElementMixin}
+*/
+function Polymer_ArraySelectorMixin(){}
+/** @type {Array} */
+Polymer_ArraySelectorMixin.prototype.items;
+
+/** @type {boolean} */
+Polymer_ArraySelectorMixin.prototype.multi;
+
+/** @type {?(Object | Array.<!Object>)} */
+Polymer_ArraySelectorMixin.prototype.selected;
+
+/** @type {?Object} */
+Polymer_ArraySelectorMixin.prototype.selectedItem;
+
+/** @type {boolean} */
+Polymer_ArraySelectorMixin.prototype.toggle;
+
+/**
+* @return {void}
+*/
+Polymer_ArraySelectorMixin.prototype.clearSelection = function(){};
+/**
+* @param {*} item Item from `items` array to test
+* @return {boolean}
+*/
+Polymer_ArraySelectorMixin.prototype.isSelected = function(item){};
+/**
+* @param {number} idx Index from `items` array to test
+* @return {boolean}
+*/
+Polymer_ArraySelectorMixin.prototype.isIndexSelected = function(idx){};
+/**
+* @param {*} item Item from `items` array to deselect
+* @return {void}
+*/
+Polymer_ArraySelectorMixin.prototype.deselect = function(item){};
+/**
+* @param {number} idx Index from `items` array to deselect
+* @return {void}
+*/
+Polymer_ArraySelectorMixin.prototype.deselectIndex = function(idx){};
+/**
+* @param {*} item Item from `items` array to select
+* @return {void}
+*/
+Polymer_ArraySelectorMixin.prototype.select = function(item){};
+/**
+* @param {number} idx Index from `items` array to select
+* @return {void}
+*/
+Polymer_ArraySelectorMixin.prototype.selectIndex = function(idx){};
+/**
+* @interface
+* @extends {Polymer_PropertyEffects}
+*/
+function Polymer_StrictBindingParser(){}
+/**
+* @param {string} text Text to parse from attribute or textContent
+* @param {Object} templateInfo Current template metadata
+* @return {Array.<!BindingPart>}
+*/
+Polymer_StrictBindingParser._parseBindings = function(text, templateInfo){};
+/**
+* @interface
+*/
+function Polymer_LegacyDataMixin(){}
+/**
+* @interface
+*/
+function Polymer_TemplatizeMixin(){}
diff --git a/polymer/lib/elements/array-selector.html b/polymer/lib/elements/array-selector.html
new file mode 100644
index 0000000..7689d11
--- /dev/null
+++ b/polymer/lib/elements/array-selector.html
@@ -0,0 +1,15 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../../polymer-element.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/array-splice.html">
+
+<script crossorigin type="module" src="./array-selector_bridge.js"></script>
diff --git a/polymer/lib/elements/array-selector_bridge.js b/polymer/lib/elements/array-selector_bridge.js
new file mode 100644
index 0000000..055ff16
--- /dev/null
+++ b/polymer/lib/elements/array-selector_bridge.js
@@ -0,0 +1,33 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../../polymer-element_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/array-splice_bridge.js';
+import '../mixins/element-mixin_bridge.js';
+
+import '../utils/boot_bridge.js';
+
+import {ArraySelectorMixin, ArraySelector} from '@polymer/polymer/lib/elements/array-selector.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Elements.ArraySelector');
+
+/** @const */
+Polymer.ArraySelectorMixin = ArraySelectorMixin;
+
+/** @const */
+Polymer.ArraySelector = ArraySelector;
diff --git a/polymer/lib/elements/custom-style.html b/polymer/lib/elements/custom-style.html
new file mode 100644
index 0000000..eab32d6
--- /dev/null
+++ b/polymer/lib/elements/custom-style.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="../utils/style-gather.html">
+
+<script>// Timing hack for https://crbug.com/767841</script>
+
+<script crossorigin type="module" crossorigin src="./custom-style_bridge.js"></script>
diff --git a/polymer/lib/elements/custom-style_bridge.js b/polymer/lib/elements/custom-style_bridge.js
new file mode 100644
index 0000000..36dbcdb
--- /dev/null
+++ b/polymer/lib/elements/custom-style_bridge.js
@@ -0,0 +1,27 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/style-gather_bridge.js';
+
+import {CustomStyle} from '@polymer/polymer/lib/elements/custom-style.js';
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Elements.CustomStyle');
+
+/** @const */
+Polymer.CustomStyle = CustomStyle;
diff --git a/polymer/lib/elements/dom-bind.html b/polymer/lib/elements/dom-bind.html
new file mode 100644
index 0000000..3586b20
--- /dev/null
+++ b/polymer/lib/elements/dom-bind.html
@@ -0,0 +1,16 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../mixins/property-effects.html">
+<link rel="import" href="../mixins/mutable-data.html">
+<link rel="import" href="../mixins/gesture-event-listeners.html">
+
+<script crossorigin type="module" src="./dom-bind_bridge.js"></script>
diff --git a/polymer/lib/elements/dom-bind_bridge.js b/polymer/lib/elements/dom-bind_bridge.js
new file mode 100644
index 0000000..bc68e03
--- /dev/null
+++ b/polymer/lib/elements/dom-bind_bridge.js
@@ -0,0 +1,28 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../mixins/property-effects_bridge.js';
+import '../mixins/mutable-data_bridge.js';
+import '../mixins/gesture-event-listeners_bridge.js';
+
+import {DomBind} from '@polymer/polymer/lib/elements/dom-bind.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Elements.DomBind');
+
+/** @const */
+Polymer.DomBind = DomBind;
diff --git a/polymer/lib/elements/dom-if.html b/polymer/lib/elements/dom-if.html
new file mode 100644
index 0000000..b0f49da
--- /dev/null
+++ b/polymer/lib/elements/dom-if.html
@@ -0,0 +1,16 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../../polymer-element.html">
+<link rel="import" href="../utils/templatize.html">
+<link rel="import" href="../utils/debounce.html">
+<link rel="import" href="../utils/flush.html">
+
+<script crossorigin type="module" src="./dom-if_bridge.js"></script>
diff --git a/polymer/lib/elements/dom-if_bridge.js b/polymer/lib/elements/dom-if_bridge.js
new file mode 100644
index 0000000..6214644
--- /dev/null
+++ b/polymer/lib/elements/dom-if_bridge.js
@@ -0,0 +1,33 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../../polymer-element_bridge.js';
+
+import '../utils/templatize_bridge.js';
+import '../utils/debounce_bridge.js';
+import '../utils/flush_bridge.js';
+import '../utils/async_bridge.js';
+import '../utils/path_bridge.js';
+
+import {DomIf} from '@polymer/polymer/lib/elements/dom-if.js';
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Elements.DomIf');
+
+/** @const */
+Polymer.DomIf = DomIf;
diff --git a/polymer/lib/elements/dom-module.html b/polymer/lib/elements/dom-module.html
new file mode 100644
index 0000000..20510e0
--- /dev/null
+++ b/polymer/lib/elements/dom-module.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/resolve-url.html">
+
+<script crossorigin type="module" src="./dom-module_bridge.js"></script>
diff --git a/polymer/lib/elements/dom-module_bridge.js b/polymer/lib/elements/dom-module_bridge.js
new file mode 100644
index 0000000..02d5fc3
--- /dev/null
+++ b/polymer/lib/elements/dom-module_bridge.js
@@ -0,0 +1,27 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/resolve-url_bridge.js';
+
+import {DomModule} from '@polymer/polymer/lib/elements/dom-module.js';
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Elements.DomModule');
+
+/** @const */
+Polymer.DomModule = DomModule;
diff --git a/polymer/lib/elements/dom-repeat.html b/polymer/lib/elements/dom-repeat.html
new file mode 100644
index 0000000..5304f30
--- /dev/null
+++ b/polymer/lib/elements/dom-repeat.html
@@ -0,0 +1,17 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../../polymer-element.html">
+<link rel="import" href="../utils/templatize.html">
+<link rel="import" href="../utils/debounce.html">
+<link rel="import" href="../utils/flush.html">
+<link rel="import" href="../mixins/mutable-data.html">
+
+<script crossorigin type="module" src="./dom-repeat_bridge.js"></script>
diff --git a/polymer/lib/elements/dom-repeat_bridge.js b/polymer/lib/elements/dom-repeat_bridge.js
new file mode 100644
index 0000000..5491f82
--- /dev/null
+++ b/polymer/lib/elements/dom-repeat_bridge.js
@@ -0,0 +1,32 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../../polymer-element_bridge.js';
+
+import '../utils/templatize_bridge.js';
+import '../utils/debounce_bridge.js';
+import '../utils/flush_bridge.js';
+import '../mixins/mutable-data_bridge.js';
+import '../utils/path_bridge.js';
+import '../utils/async_bridge.js';
+
+import {DomRepeat} from '@polymer/polymer/lib/elements/dom-repeat.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Elements.DomRepeat');
+
+/** @const */
+Polymer.DomRepeat = DomRepeat;
diff --git a/polymer/lib/legacy/class.html b/polymer/lib/legacy/class.html
new file mode 100644
index 0000000..e18f87d
--- /dev/null
+++ b/polymer/lib/legacy/class.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="legacy-element-mixin.html">
+
+<script crossorigin type="module" src="./class_bridge.js"></script>
diff --git a/polymer/lib/legacy/class_bridge.js b/polymer/lib/legacy/class_bridge.js
new file mode 100644
index 0000000..462114c
--- /dev/null
+++ b/polymer/lib/legacy/class_bridge.js
@@ -0,0 +1,36 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './legacy-element-mixin_bridge.js';
+import '../elements/dom-module_bridge.js';
+import '../utils/settings_bridge.js';
+import '../utils/boot_bridge.js';
+
+import {Class as _Class, mixinBehaviors as _mixinBehaviors} from '@polymer/polymer/lib/legacy/class.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.Class');
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const Class = _Class;
+const mixinBehaviors = _mixinBehaviors;
+
+/** @const */
+Polymer.Class = Class;
+
+/** @const */
+Polymer.mixinBehaviors = mixinBehaviors;
diff --git a/polymer/lib/legacy/legacy-data-mixin.html b/polymer/lib/legacy/legacy-data-mixin.html
new file mode 100644
index 0000000..4b1dca6
--- /dev/null
+++ b/polymer/lib/legacy/legacy-data-mixin.html
@@ -0,0 +1,15 @@
+<!--
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="./class.html">
+<link rel="import" href="../../polymer.html">
+<link rel="import" href="../utils/mixin.html">
+
+<script crossorigin type="module" src="./legacy-data-mixin_bridge.js"></script>
diff --git a/polymer/lib/legacy/legacy-data-mixin_bridge.js b/polymer/lib/legacy/legacy-data-mixin_bridge.js
new file mode 100644
index 0000000..affb8db
--- /dev/null
+++ b/polymer/lib/legacy/legacy-data-mixin_bridge.js
@@ -0,0 +1,30 @@
+/**
+@license
+Copyright (c) 2018 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './class_bridge.js';
+import '../../polymer-legacy_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/boot_bridge.js';
+
+import {LegacyDataMixin} from '@polymer/polymer/lib/legacy/legacy-data-mixin.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.LegacyDataMixin');
+
+/**
+ * @const
+ */
+Polymer.LegacyDataMixin = LegacyDataMixin;
diff --git a/polymer/lib/legacy/legacy-element-mixin.html b/polymer/lib/legacy/legacy-element-mixin.html
new file mode 100644
index 0000000..80680e7
--- /dev/null
+++ b/polymer/lib/legacy/legacy-element-mixin.html
@@ -0,0 +1,27 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../mixins/element-mixin.html">
+<link rel="import" href="../mixins/gesture-event-listeners.html">
+<link rel="import" href="../mixins/dir-mixin.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/import-href.html">
+<link rel="import" href="../utils/render-status.html">
+<link rel="import" href="../utils/unresolved.html">
+<link rel="import" href="polymer.dom.html">
+<link rel="import" href="../utils/gestures.html">
+<link rel="import" href="../utils/debounce.html">
+<link rel="import" href="../utils/async.html">
+<link rel="import" href="../utils/path.html">
+<link rel="import" href="../utils/wrap.html">
+
+<script>// Timing hack for https://crbug.com/767841</script>
+
+<script crossorigin type="module" crossorigin src="./legacy-element-mixin_bridge.js"></script>
diff --git a/polymer/lib/legacy/legacy-element-mixin_bridge.js b/polymer/lib/legacy/legacy-element-mixin_bridge.js
new file mode 100644
index 0000000..74c4b75
--- /dev/null
+++ b/polymer/lib/legacy/legacy-element-mixin_bridge.js
@@ -0,0 +1,39 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../mixins/element-mixin_bridge.js';
+import '../mixins/gesture-event-listeners_bridge.js';
+import '../mixins/dir-mixin_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/render-status_bridge.js';
+import '../utils/unresolved_bridge.js';
+import './polymer.dom_bridge.js';
+import '../utils/gestures_bridge.js';
+import '../utils/debounce_bridge.js';
+import '../utils/async_bridge.js';
+import '../utils/path_bridge.js';
+import '../utils/wrap_bridge.js';
+
+import {LegacyElementMixin as _LegacyElementMixin} from '@polymer/polymer/lib/legacy/legacy-element-mixin.js';
+
+const LegacyElementMixin = _LegacyElementMixin;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.LegacyElementMixin');
+
+/** @const */
+Polymer.LegacyElementMixin = LegacyElementMixin;
diff --git a/polymer/lib/legacy/mutable-data-behavior.html b/polymer/lib/legacy/mutable-data-behavior.html
new file mode 100644
index 0000000..8e67a80
--- /dev/null
+++ b/polymer/lib/legacy/mutable-data-behavior.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../mixins/mutable-data.html">
+
+<script crossorigin type="module" src="./mutable-data-behavior_bridge.js"></script>
diff --git a/polymer/lib/legacy/mutable-data-behavior_bridge.js b/polymer/lib/legacy/mutable-data-behavior_bridge.js
new file mode 100644
index 0000000..c8a4845
--- /dev/null
+++ b/polymer/lib/legacy/mutable-data-behavior_bridge.js
@@ -0,0 +1,33 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../mixins/mutable-data_bridge.js';
+import '../utils/boot_bridge.js';
+
+import {MutableDataBehavior, OptionalMutableDataBehavior} from '@polymer/polymer/lib/legacy/mutable-data-behavior.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.MutableDataBehavior');
+
+/**
+ * @const
+ */
+Polymer.MutableDataBehavior = MutableDataBehavior;
+
+/**
+ * @const
+ */
+Polymer.OptionalMutableDataBehavior = OptionalMutableDataBehavior;
diff --git a/polymer/lib/legacy/polymer-fn.html b/polymer/lib/legacy/polymer-fn.html
new file mode 100644
index 0000000..7bf6475
--- /dev/null
+++ b/polymer/lib/legacy/polymer-fn.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="class.html">
+
+<script crossorigin type="module" src="./polymer-fn_bridge.js"></script>
diff --git a/polymer/lib/legacy/polymer-fn_bridge.js b/polymer/lib/legacy/polymer-fn_bridge.js
new file mode 100644
index 0000000..598ee7f
--- /dev/null
+++ b/polymer/lib/legacy/polymer-fn_bridge.js
@@ -0,0 +1,33 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './class_bridge.js';
+import '../utils/boot_bridge.js';
+
+import {Polymer as _Polymer} from '@polymer/polymer/lib/legacy/polymer-fn.js';
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.PolymerFn');
+
+Polymer._polymerFn = _Polymer;
+
+/** Hook to allow user code to patch the legacy Polymer function. */
+const postPolymerInit = window['onLegacyPolymerFunctionDefinedCallback'];
+if (postPolymerInit) {
+  postPolymerInit();
+}
+
diff --git a/polymer/lib/legacy/polymer.dom.html b/polymer/lib/legacy/polymer.dom.html
new file mode 100644
index 0000000..77fbbea
--- /dev/null
+++ b/polymer/lib/legacy/polymer.dom.html
@@ -0,0 +1,15 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/settings.html">
+<link rel="import" href="../utils/flattened-nodes-observer.html">
+<link rel="import" href="../utils/flush.html">
+
+<script crossorigin type="module" src="./polymer.dom_bridge.js"></script>
diff --git a/polymer/lib/legacy/polymer.dom_bridge.js b/polymer/lib/legacy/polymer.dom_bridge.js
new file mode 100644
index 0000000..ff65c0f
--- /dev/null
+++ b/polymer/lib/legacy/polymer.dom_bridge.js
@@ -0,0 +1,52 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/settings_bridge.js';
+import '../utils/flattened-nodes-observer_bridge.js';
+import '../utils/flush_bridge.js';
+
+import {DomApi as _DomApi, EventApi as _EventApi, dom as _dom, matchesSelector as _matchesSelector, flush as _flush, addDebouncer as _addDebouncer} from '@polymer/polymer/lib/legacy/polymer.dom.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const DomApi = _DomApi;
+const EventApi = _EventApi;
+const dom = _dom;
+const matchesSelector = _matchesSelector;
+const flush = _flush;
+const addDebouncer = _addDebouncer;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.PolymerDom');
+
+/** @const */
+Polymer.DomApi = DomApi;
+
+/** @const */
+Polymer.EventApi = EventApi;
+
+/** @const */
+Polymer.dom = dom;
+
+/** @const */
+Polymer.dom.matchesSelector = matchesSelector;
+
+/** @const */
+Polymer.dom.flush = flush;
+
+/** @const */
+Polymer.dom.addDebouncer = addDebouncer;
diff --git a/polymer/lib/legacy/templatizer-behavior.html b/polymer/lib/legacy/templatizer-behavior.html
new file mode 100644
index 0000000..5030b16
--- /dev/null
+++ b/polymer/lib/legacy/templatizer-behavior.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/templatize.html">
+
+<script crossorigin type="module" src="./templatizer-behavior_bridge.js"></script>
diff --git a/polymer/lib/legacy/templatizer-behavior_bridge.js b/polymer/lib/legacy/templatizer-behavior_bridge.js
new file mode 100644
index 0000000..4e521d0
--- /dev/null
+++ b/polymer/lib/legacy/templatizer-behavior_bridge.js
@@ -0,0 +1,28 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/templatize_bridge.js';
+
+import {Templatizer} from '@polymer/polymer/lib/legacy/templatizer-behavior.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Legacy.TemplatizerBehavior');
+
+/**
+ * @const
+ */
+Polymer.Templatizer = Templatizer;
diff --git a/polymer/lib/mixins/dir-mixin.html b/polymer/lib/mixins/dir-mixin.html
new file mode 100644
index 0000000..72b8f5f
--- /dev/null
+++ b/polymer/lib/mixins/dir-mixin.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="property-accessors.html">
+
+<script crossorigin type="module" src="./dir-mixin_bridge.js"></script>
diff --git a/polymer/lib/mixins/dir-mixin_bridge.js b/polymer/lib/mixins/dir-mixin_bridge.js
new file mode 100644
index 0000000..89bca6b
--- /dev/null
+++ b/polymer/lib/mixins/dir-mixin_bridge.js
@@ -0,0 +1,32 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import './property-accessors_bridge.js';
+import '../utils/mixin_bridge.js';
+
+import {DirMixin as _DirMixin} from '@polymer/polymer/lib/mixins/dir-mixin.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const DirMixin = _DirMixin;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.DirMixin');
+
+/** @const */
+Polymer.DirMixin = DirMixin;
diff --git a/polymer/lib/mixins/disable-upgrade-mixin.html b/polymer/lib/mixins/disable-upgrade-mixin.html
new file mode 100644
index 0000000..3ec3ad6
--- /dev/null
+++ b/polymer/lib/mixins/disable-upgrade-mixin.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="property-accessors.html">
+<link rel="import" href="element-mixin.html">
+<link rel="import" href="../utils/mixin.html">
+
+<script crossorigin type="module" src="./disable-upgrade-mixin_bridge.js"></script>
diff --git a/polymer/lib/mixins/disable-upgrade-mixin_bridge.js b/polymer/lib/mixins/disable-upgrade-mixin_bridge.js
new file mode 100644
index 0000000..70f9cf1
--- /dev/null
+++ b/polymer/lib/mixins/disable-upgrade-mixin_bridge.js
@@ -0,0 +1,31 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import './element-mixin_bridge.js';
+import '../utils/mixin_bridge.js';
+
+import {DisableUpgradeMixin as _DisableUpgradeMixin} from '@polymer/polymer/lib/mixins/disable-upgrade-mixin.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const DisableUpgradeMixin = _DisableUpgradeMixin;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.DisableUpgradeMixin');
+
+/** @const */
+Polymer.DisableUpgradeMixin = DisableUpgradeMixin;
diff --git a/polymer/lib/mixins/element-mixin.html b/polymer/lib/mixins/element-mixin.html
new file mode 100644
index 0000000..9a7fd5c
--- /dev/null
+++ b/polymer/lib/mixins/element-mixin.html
@@ -0,0 +1,20 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/settings.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/style-gather.html">
+<link rel="import" href="../utils/resolve-url.html">
+<link rel="import" href="../elements/dom-module.html">
+<link rel="import" href="property-effects.html">
+<link rel="import" href="properties-mixin.html">
+
+<script crossorigin type="module" src="./element-mixin_bridge.js"></script>
diff --git a/polymer/lib/mixins/element-mixin_bridge.js b/polymer/lib/mixins/element-mixin_bridge.js
new file mode 100644
index 0000000..99b598e
--- /dev/null
+++ b/polymer/lib/mixins/element-mixin_bridge.js
@@ -0,0 +1,41 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/settings_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/style-gather_bridge.js';
+import '../utils/resolve-url_bridge.js';
+import '../elements/dom-module_bridge.js';
+import './property-effects_bridge.js';
+import './properties-mixin_bridge.js';
+
+import {ElementMixin as _ElementMixin, updateStyles as _updateStyles, version} from '@polymer/polymer/lib/mixins/element-mixin.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const ElementMixin = _ElementMixin;
+const updateStyles = _updateStyles;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.ElementMixin');
+
+/** @const */
+Polymer.ElementMixin = ElementMixin;
+/** @const */
+Polymer.updateStyles = updateStyles;
+/** @const */
+Polymer.version = version;
diff --git a/polymer/lib/mixins/gesture-event-listeners.html b/polymer/lib/mixins/gesture-event-listeners.html
new file mode 100644
index 0000000..a00bd52
--- /dev/null
+++ b/polymer/lib/mixins/gesture-event-listeners.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/gestures.html">
+
+<script crossorigin type="module" src="./gesture-event-listeners_bridge.js"></script>
diff --git a/polymer/lib/mixins/gesture-event-listeners_bridge.js b/polymer/lib/mixins/gesture-event-listeners_bridge.js
new file mode 100644
index 0000000..ab6fe87
--- /dev/null
+++ b/polymer/lib/mixins/gesture-event-listeners_bridge.js
@@ -0,0 +1,32 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/gestures_bridge.js';
+
+import {GestureEventListeners as _GestureEventListeners} from '@polymer/polymer/lib/mixins/gesture-event-listeners.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const GestureEventListeners = _GestureEventListeners;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.GestureEventListeners');
+
+/** @const */
+Polymer.GestureEventListeners = GestureEventListeners;
+
diff --git a/polymer/lib/mixins/mutable-data.html b/polymer/lib/mixins/mutable-data.html
new file mode 100644
index 0000000..d25e1b8
--- /dev/null
+++ b/polymer/lib/mixins/mutable-data.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/mixin.html">
+
+<script crossorigin type="module" src="./mutable-data_bridge.js"></script>
diff --git a/polymer/lib/mixins/mutable-data_bridge.js b/polymer/lib/mixins/mutable-data_bridge.js
new file mode 100644
index 0000000..d222030
--- /dev/null
+++ b/polymer/lib/mixins/mutable-data_bridge.js
@@ -0,0 +1,35 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/mixin_bridge.js';
+import '../utils/boot_bridge.js';
+
+import {OptionalMutableData as _OptionalMutableData, MutableData as _MutableData} from '@polymer/polymer/lib/mixins/mutable-data.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const OptionalMutableData = _OptionalMutableData;
+const MutableData = _MutableData;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.MutableData');
+
+/** @const */
+Polymer.MutableData = MutableData;
+
+/** @const */
+Polymer.OptionalMutableData = OptionalMutableData;
diff --git a/polymer/lib/mixins/properties-changed.html b/polymer/lib/mixins/properties-changed.html
new file mode 100644
index 0000000..d855509
--- /dev/null
+++ b/polymer/lib/mixins/properties-changed.html
@@ -0,0 +1,16 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/async.html">
+<link rel="import" href="../utils/wrap.html">
+
+<script crossorigin type="module" src="./properties-changed_bridge.js"></script>
diff --git a/polymer/lib/mixins/properties-changed_bridge.js b/polymer/lib/mixins/properties-changed_bridge.js
new file mode 100644
index 0000000..73f30f0
--- /dev/null
+++ b/polymer/lib/mixins/properties-changed_bridge.js
@@ -0,0 +1,31 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/async_bridge.js';
+import '../utils/wrap_bridge.js';
+import {PropertiesChanged as _PropertiesChanged} from '@polymer/polymer/lib/mixins/properties-changed.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const PropertiesChanged = _PropertiesChanged;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.PropertiesChanged');
+
+/** @const */
+Polymer.PropertiesChanged = PropertiesChanged;
diff --git a/polymer/lib/mixins/properties-mixin.html b/polymer/lib/mixins/properties-mixin.html
new file mode 100644
index 0000000..6f4c50c
--- /dev/null
+++ b/polymer/lib/mixins/properties-mixin.html
@@ -0,0 +1,16 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/telemetry.html">
+<link rel="import" href="../mixins/properties-changed.html">
+
+<script crossorigin type="module" src="./properties-mixin_bridge.js"></script>
diff --git a/polymer/lib/mixins/properties-mixin_bridge.js b/polymer/lib/mixins/properties-mixin_bridge.js
new file mode 100644
index 0000000..d20c462
--- /dev/null
+++ b/polymer/lib/mixins/properties-mixin_bridge.js
@@ -0,0 +1,32 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/telemetry_bridge.js';
+import './properties-changed_bridge.js';
+
+import {PropertiesMixin as _PropertiesMixin} from '@polymer/polymer/lib/mixins/properties-mixin.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const PropertiesMixin = _PropertiesMixin;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.PropertiesMixin');
+
+/** @const */
+Polymer.PropertiesMixin = PropertiesMixin;
diff --git a/polymer/lib/mixins/property-accessors.html b/polymer/lib/mixins/property-accessors.html
new file mode 100644
index 0000000..40fa9a3
--- /dev/null
+++ b/polymer/lib/mixins/property-accessors.html
@@ -0,0 +1,16 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/case-map.html">
+<link rel="import" href="properties-changed.html">
+
+<script crossorigin type="module" src="./property-accessors_bridge.js"></script>
diff --git a/polymer/lib/mixins/property-accessors_bridge.js b/polymer/lib/mixins/property-accessors_bridge.js
new file mode 100644
index 0000000..08dbcd5
--- /dev/null
+++ b/polymer/lib/mixins/property-accessors_bridge.js
@@ -0,0 +1,31 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/mixin_bridge.js';
+import '../utils/case-map_bridge.js';
+import './properties-changed_bridge.js';
+
+import {PropertyAccessors as _PropertyAccessors} from '@polymer/polymer/lib/mixins/property-accessors.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const PropertyAccessors = _PropertyAccessors;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.PropertyAccessors');
+
+/** @const */
+Polymer.PropertyAccessors = PropertyAccessors;
diff --git a/polymer/lib/mixins/property-effects.html b/polymer/lib/mixins/property-effects.html
new file mode 100644
index 0000000..6a71ff8
--- /dev/null
+++ b/polymer/lib/mixins/property-effects.html
@@ -0,0 +1,22 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/mixin.html">
+<link rel="import" href="../utils/path.html">
+<!-- for notify, reflect -->
+<link rel="import" href="../utils/case-map.html">
+<link rel="import" href="../utils/settings.html">
+<link rel="import" href="property-accessors.html">
+<!-- for annotated effects -->
+<link rel="import" href="template-stamp.html">
+
+
+<script crossorigin type="module" src="./property-effects_bridge.js"></script>
diff --git a/polymer/lib/mixins/property-effects_bridge.js b/polymer/lib/mixins/property-effects_bridge.js
new file mode 100644
index 0000000..70f6ca5
--- /dev/null
+++ b/polymer/lib/mixins/property-effects_bridge.js
@@ -0,0 +1,36 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/mixin_bridge.js';
+import '../utils/path_bridge.js';
+import '../utils/case-map_bridge.js';
+import './property-accessors_bridge.js';
+import './template-stamp_bridge.js';
+import '../utils/settings_bridge.js';
+
+import {PropertyEffects as _PropertyEffects} from '@polymer/polymer/lib/mixins/property-effects.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const PropertyEffects = _PropertyEffects;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.PropertyEffects');
+
+/** @const */
+Polymer.PropertyEffects = PropertyEffects;
diff --git a/polymer/lib/mixins/template-stamp.html b/polymer/lib/mixins/template-stamp.html
new file mode 100644
index 0000000..5fa4cd0
--- /dev/null
+++ b/polymer/lib/mixins/template-stamp.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/mixin.html">
+
+<script crossorigin type="module" src="./template-stamp_bridge.js"></script>
diff --git a/polymer/lib/mixins/template-stamp_bridge.js b/polymer/lib/mixins/template-stamp_bridge.js
new file mode 100644
index 0000000..ad670b7
--- /dev/null
+++ b/polymer/lib/mixins/template-stamp_bridge.js
@@ -0,0 +1,30 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import '../utils/boot_bridge.js';
+import '../utils/mixin_bridge.js';
+
+import {TemplateStamp as _TemplateStamp} from '@polymer/polymer/lib/mixins/template-stamp.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const TemplateStamp = _TemplateStamp;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Mixins.TemplateStamp');
+
+/** @const */
+Polymer.TemplateStamp = TemplateStamp;
diff --git a/polymer/lib/utils/array-splice.html b/polymer/lib/utils/array-splice.html
new file mode 100644
index 0000000..02bc48a
--- /dev/null
+++ b/polymer/lib/utils/array-splice.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./array-splice_bridge.js"></script>
diff --git a/polymer/lib/utils/array-splice_bridge.js b/polymer/lib/utils/array-splice_bridge.js
new file mode 100644
index 0000000..15709f6
--- /dev/null
+++ b/polymer/lib/utils/array-splice_bridge.js
@@ -0,0 +1,31 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import {calculateSplices as _calculateSplices} from '@polymer/polymer/lib/utils/array-splice.js';
+import './boot_bridge.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const calculateSplices = _calculateSplices;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.ArraySplice');
+
+/** @const */
+Polymer.ArraySplice = {
+  calculateSplices
+};
+
diff --git a/polymer/lib/utils/async.html b/polymer/lib/utils/async.html
new file mode 100644
index 0000000..87cac93
--- /dev/null
+++ b/polymer/lib/utils/async.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./async_bridge.js"></script>
diff --git a/polymer/lib/utils/async_bridge.js b/polymer/lib/utils/async_bridge.js
new file mode 100644
index 0000000..4e2db43
--- /dev/null
+++ b/polymer/lib/utils/async_bridge.js
@@ -0,0 +1,26 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import {timeOut, animationFrame, idlePeriod, microTask} from '@polymer/polymer/lib/utils/async.js';
+import './boot_bridge.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Async');
+
+/** @const */
+Polymer.Async = {
+  timeOut, animationFrame, idlePeriod, microTask
+};
diff --git a/polymer/lib/utils/boot.html b/polymer/lib/utils/boot.html
new file mode 100644
index 0000000..7c19b27
--- /dev/null
+++ b/polymer/lib/utils/boot.html
@@ -0,0 +1,10 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<script crossorigin type="module" src="./boot_bridge.js"></script>
diff --git a/polymer/lib/utils/boot_bridge.js b/polymer/lib/utils/boot_bridge.js
new file mode 100644
index 0000000..38a7c47
--- /dev/null
+++ b/polymer/lib/utils/boot_bridge.js
@@ -0,0 +1,125 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ *
+ *     This file specifically is the root bridge file, as it ensures that
+ *     calls to certain goog.* methods will work even if
+ *     //javascript/closure:base is not loaded.
+ */
+
+import '@polymer/polymer/lib/utils/boot.js';
+import './require_shim.js';
+
+/**
+ * @suppress {visibility} goog.isInEs6ModuleLoader_ This is for debug-mode code
+ *     to work with HTML Imports + native ES module loading.
+ */
+function polyfillDeclareNamespace() {
+  // For code that doesn't compile or use the goog debug loader, we need to stub
+  // out goog.declareModuleId
+  //
+  // We only use it for ordering and strict deps checking, and when loaded
+  // uncompiled with pure HTML Imports and ES modules, we don't need either of
+  // these.
+
+  // This is a wrapper around goog.declareModuleId that is a no-op if
+  // this code is loaded through native ES modules
+  // (almost certainly via HTML Imports) rather than the closure debug
+  // loader, but should behave exactly the same when compiled.
+  // Note that combining HTML Imports with the closure debug loader
+  // has never been supported, and would always result in duplicated code.
+  // This is introducing another way that this could happen, but hopefully
+  // this will not affect anyone who was already working.
+  let realDeclareModuleId =
+      window.goog && window.goog.declareModuleId || (() => {});
+  const lenientDeclareModuleId = function(id) {
+    if (!goog.isInEs6ModuleLoader_()) {
+      // The real declareNamespace would throw. Don't do that.
+      return;
+    }
+    return realDeclareModuleId(id);
+  };
+
+  if (window.goog.declareModuleId) {
+    // Closure base already loaded, this is the happy normal case. Just
+    // make declareModuleId more lenient.
+    goog.declareModuleId = lenientDeclareModuleId;
+  } else {
+    // Closure base is not loaded. We need to handle two cases here:
+    //     - the case where closure base will be loaded later
+    //     - the case where Polymer core's usage is the only usage of
+    //       closure base in the whole program
+
+    // Bootstrap parts of goog that lenientDeclareModuleId needs.
+    window.goog.isInEs6ModuleLoader_ = () => {
+      return false;
+    };
+
+    // Ensure that declareModuleId is lenient even if goog is loaded
+    // later.
+    Object.defineProperty(window.goog, 'declareModuleId', {
+      get() {
+        return lenientDeclareModuleId;
+      },
+      set(newRealDeclareModuleId) {
+        realDeclareModuleId = newRealDeclareModuleId;
+        return lenientDeclareModuleId;
+      }
+    });
+  }
+}
+if (!COMPILED) {
+  polyfillDeclareNamespace();
+}
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Boot');
+
+const userPolymer = window.Polymer;
+
+/**
+ * @namespace Polymer
+ * @summary Polymer is a lightweight library built on top of the web
+ *   standards-based Web Components API's, and makes it easy to build your
+ *   own custom HTML elements.
+ * @param {!PolymerInit} info Prototype for the custom element. It must contain
+ *   an `is` property to specify the element name. Other properties populate
+ *   the element prototype. The `properties`, `observers`, `hostAttributes`,
+ *   and `listeners` properties are processed to create element features.
+ * @return {function(new:HTMLElement)} Returns a custom element class for the
+ *   given provided prototype `info` object. The name of the element is
+ *   given by `info.is`.
+ */
+window.Polymer = function(info) {
+  return window.Polymer._polymerFn(info);
+};
+
+// support user settings on the Polymer object
+if (userPolymer) {
+  Object.assign(Polymer, userPolymer);
+}
+
+// To be plugged by legacy implementation if loaded
+/* eslint-disable valid-jsdoc */
+/**
+ * @param {!PolymerInit} info Prototype for the custom element. It must contain
+ *   an `is` property to specify the element name. Other properties populate
+ *   the element prototype. The `properties`, `observers`, `hostAttributes`,
+ *   and `listeners` properties are processed to create element features.
+ * @return {function(new:HTMLElement)} Returns a custom element class for the given provided
+ *   prototype `info` object. The name of the element if given by `info.is`.
+ */
+Polymer._polymerFn = function(info) { // eslint-disable-line no-unused-vars
+  throw new Error('Load polymer.html to use the Polymer() function.');
+};
+/* eslint-enable */
diff --git a/polymer/lib/utils/case-map.html b/polymer/lib/utils/case-map.html
new file mode 100644
index 0000000..382454c
--- /dev/null
+++ b/polymer/lib/utils/case-map.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./case-map_bridge.js"></script>
diff --git a/polymer/lib/utils/case-map_bridge.js b/polymer/lib/utils/case-map_bridge.js
new file mode 100644
index 0000000..e8c0e48
--- /dev/null
+++ b/polymer/lib/utils/case-map_bridge.js
@@ -0,0 +1,28 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import {dashToCamelCase as _dashToCamelCase, camelToDashCase as _camelToDashCase} from '@polymer/polymer/lib/utils/case-map.js';
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.CaseMap');
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const dashToCamelCase = _dashToCamelCase;
+const camelToDashCase = _camelToDashCase;
+
+/** @const */
+Polymer.CaseMap = {dashToCamelCase, camelToDashCase};
diff --git a/polymer/lib/utils/debounce.html b/polymer/lib/utils/debounce.html
new file mode 100644
index 0000000..3eaf7a4
--- /dev/null
+++ b/polymer/lib/utils/debounce.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+<link rel="import" href="mixin.html">
+<link rel="import" href="async.html">
+
+<script crossorigin type="module" src="./debounce_bridge.js"></script>
diff --git a/polymer/lib/utils/debounce_bridge.js b/polymer/lib/utils/debounce_bridge.js
new file mode 100644
index 0000000..23a0c69
--- /dev/null
+++ b/polymer/lib/utils/debounce_bridge.js
@@ -0,0 +1,30 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import './mixin_bridge.js';
+import './async_bridge.js';
+import {Debouncer as Debouncer_} from '@polymer/polymer/lib/utils/debounce.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Debounce');
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const Debouncer = Debouncer_;
+
+/** @const */
+Polymer.Debouncer = Debouncer;
diff --git a/polymer/lib/utils/flattened-nodes-observer.html b/polymer/lib/utils/flattened-nodes-observer.html
new file mode 100644
index 0000000..810e043
--- /dev/null
+++ b/polymer/lib/utils/flattened-nodes-observer.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/array-splice.html">
+<link rel="import" href="../utils/async.html">
+
+<script crossorigin type="module" src="./flattened-nodes-observer_bridge.js"></script>
diff --git a/polymer/lib/utils/flattened-nodes-observer_bridge.js b/polymer/lib/utils/flattened-nodes-observer_bridge.js
new file mode 100644
index 0000000..107e88c
--- /dev/null
+++ b/polymer/lib/utils/flattened-nodes-observer_bridge.js
@@ -0,0 +1,26 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import './array-splice_bridge.js';
+import './async_bridge.js';
+import {FlattenedNodesObserver} from '@polymer/polymer/lib/utils/flattened-nodes-observer.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.FlattenedNodesObserver');
+
+/** @const */
+Polymer.FlattenedNodesObserver = FlattenedNodesObserver;
diff --git a/polymer/lib/utils/flush.html b/polymer/lib/utils/flush.html
new file mode 100644
index 0000000..7418f29
--- /dev/null
+++ b/polymer/lib/utils/flush.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./flush_bridge.js"></script>
diff --git a/polymer/lib/utils/flush_bridge.js b/polymer/lib/utils/flush_bridge.js
new file mode 100644
index 0000000..6f8921b
--- /dev/null
+++ b/polymer/lib/utils/flush_bridge.js
@@ -0,0 +1,32 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import {enqueueDebouncer as _enqueueDebouncer, flush as _flush} from '@polymer/polymer/lib/utils/flush.js';
+import './boot_bridge.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const enqueueDebouncer = _enqueueDebouncer;
+const flush = _flush;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Flush');
+
+/** @const */
+Polymer.enqueueDebouncer = enqueueDebouncer;
+
+/** @const */
+Polymer.flush = flush;
diff --git a/polymer/lib/utils/gestures.html b/polymer/lib/utils/gestures.html
new file mode 100644
index 0000000..1ea733d
--- /dev/null
+++ b/polymer/lib/utils/gestures.html
@@ -0,0 +1,15 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+<link rel="import" href="async.html">
+<link rel="import" href="debounce.html">
+<link rel="import" href="settings.html">
+
+<script crossorigin type="module" src="./gestures_bridge.js"></script>
diff --git a/polymer/lib/utils/gestures_bridge.js b/polymer/lib/utils/gestures_bridge.js
new file mode 100644
index 0000000..b3edc63
--- /dev/null
+++ b/polymer/lib/utils/gestures_bridge.js
@@ -0,0 +1,57 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import './async_bridge.js';
+import './debounce_bridge.js';
+import './settings_bridge.js';
+import {gestures as _gestures, recognizers as _recognizers, deepTargetFind as _deepTargetFind, addListener as _addListener, removeListener as _removeListener, register as _register, setTouchAction as _setTouchAction, prevent as _prevent, resetMouseCanceller as _resetMouseCanceller, findOriginalTarget as _findOriginalTarget, add as _add, remove as _remove} from '@polymer/polymer/lib/utils/gestures.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const gestures = _gestures;
+const recognizers = _recognizers;
+const deepTargetFind = _deepTargetFind;
+const addListener = _addListener;
+const removeListener = _removeListener;
+const register = _register;
+const setTouchAction = _setTouchAction;
+const prevent = _prevent;
+const resetMouseCanceller = _resetMouseCanceller;
+const findOriginalTarget = _findOriginalTarget;
+const add = _add;
+const remove = _remove;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Gestures');
+
+/** @const */
+Polymer.Gestures = {
+  gestures,
+  recognizers,
+  deepTargetFind,
+  addListener,
+  removeListener,
+  register,
+  setTouchAction,
+  prevent,
+  resetMouseCanceller,
+  /** @deprecated */
+  findOriginalTarget,
+  add,
+  remove,
+};
diff --git a/polymer/lib/utils/html-tag.html b/polymer/lib/utils/html-tag.html
new file mode 100644
index 0000000..f5a9331
--- /dev/null
+++ b/polymer/lib/utils/html-tag.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./html-tag_bridge.js"></script>
diff --git a/polymer/lib/utils/html-tag_bridge.js b/polymer/lib/utils/html-tag_bridge.js
new file mode 100644
index 0000000..fe47529
--- /dev/null
+++ b/polymer/lib/utils/html-tag_bridge.js
@@ -0,0 +1,31 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import {html as _html, htmlLiteral as _htmlLiteral} from '@polymer/polymer/lib/utils/html-tag.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const html = _html;
+const htmlLiteral = _htmlLiteral;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.HtmlTag');
+
+/** @const */
+Polymer.html = html;
+/** @const */
+Polymer.htmlLiteral = htmlLiteral;
diff --git a/polymer/lib/utils/import-href.html b/polymer/lib/utils/import-href.html
new file mode 100644
index 0000000..80d354b
--- /dev/null
+++ b/polymer/lib/utils/import-href.html
@@ -0,0 +1,107 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="boot.html">
+
+<script>
+
+(function() {
+
+  'use strict';
+
+  // run a callback when HTMLImports are ready or immediately if
+  // this api is not available.
+  function whenImportsReady(cb) {
+    if (window.HTMLImports) {
+      HTMLImports.whenReady(cb);
+    } else {
+      cb();
+    }
+  }
+
+  /**
+   * Convenience method for importing an HTML document imperatively.
+   *
+   * This method creates a new `<link rel="import">` element with
+   * the provided URL and appends it to the document to start loading.
+   * In the `onload` callback, the `import` property of the `link`
+   * element will contain the imported document contents.
+   *
+   * @memberof Polymer
+   * @param {string} href URL to document to load.
+   * @param {?function(!Event):void=} onload Callback to notify when an import successfully
+   *   loaded.
+   * @param {?function(!ErrorEvent):void=} onerror Callback to notify when an import
+   *   unsuccessfully loaded.
+   * @param {boolean=} optAsync True if the import should be loaded `async`.
+   *   Defaults to `false`.
+   * @return {!HTMLLinkElement} The link element for the URL to be loaded.
+   */
+  Polymer.importHref = function(href, onload, onerror, optAsync) {
+    let link = /** @type {HTMLLinkElement} */
+      (document.head.querySelector('link[href="' + href + '"][import-href]'));
+    if (!link) {
+      link = /** @type {HTMLLinkElement} */ (document.createElement('link'));
+      link.rel = 'import';
+      link.href = href;
+      link.setAttribute('import-href', '');
+    }
+    // always ensure link has `async` attribute if user specified one,
+    // even if it was previously not async. This is considered less confusing.
+    if (optAsync) {
+      link.setAttribute('async', '');
+    }
+    // NOTE: the link may now be in 3 states: (1) pending insertion,
+    // (2) inflight, (3) already loaded. In each case, we need to add
+    // event listeners to process callbacks.
+    let cleanup = function() {
+      link.removeEventListener('load', loadListener);
+      link.removeEventListener('error', errorListener);
+    };
+    let loadListener = function(event) {
+      cleanup();
+      // In case of a successful load, cache the load event on the link so
+      // that it can be used to short-circuit this method in the future when
+      // it is called with the same href param.
+      link.__dynamicImportLoaded = true;
+      if (onload) {
+        whenImportsReady(() => {
+          onload(event);
+        });
+      }
+    };
+    let errorListener = function(event) {
+      cleanup();
+      // In case of an error, remove the link from the document so that it
+      // will be automatically created again the next time `importHref` is
+      // called.
+      if (link.parentNode) {
+        link.parentNode.removeChild(link);
+      }
+      if (onerror) {
+        whenImportsReady(() => {
+          onerror(event);
+        });
+      }
+    };
+    link.addEventListener('load', loadListener);
+    link.addEventListener('error', errorListener);
+    if (link.parentNode == null) {
+      document.head.appendChild(link);
+    // if the link already loaded, dispatch a fake load event
+    // so that listeners are called and get a proper event argument.
+    } else if (link.__dynamicImportLoaded) {
+      link.dispatchEvent(new Event('load'));
+    }
+    return link;
+  };
+
+})();
+</script>
diff --git a/polymer/lib/utils/mixin.html b/polymer/lib/utils/mixin.html
new file mode 100644
index 0000000..d130dc2
--- /dev/null
+++ b/polymer/lib/utils/mixin.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./mixin_bridge.js"></script>
diff --git a/polymer/lib/utils/mixin_bridge.js b/polymer/lib/utils/mixin_bridge.js
new file mode 100644
index 0000000..e18454b
--- /dev/null
+++ b/polymer/lib/utils/mixin_bridge.js
@@ -0,0 +1,30 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import {dedupingMixin as _dedupingMixin} from '@polymer/polymer/lib/utils/mixin.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const dedupingMixin = _dedupingMixin;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Mixin');
+
+/** @const */
+Polymer.dedupingMixin = dedupingMixin;
+
diff --git a/polymer/lib/utils/path.html b/polymer/lib/utils/path.html
new file mode 100644
index 0000000..ec902d1
--- /dev/null
+++ b/polymer/lib/utils/path.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./path_bridge.js"></script>
diff --git a/polymer/lib/utils/path_bridge.js b/polymer/lib/utils/path_bridge.js
new file mode 100644
index 0000000..c53baf2
--- /dev/null
+++ b/polymer/lib/utils/path_bridge.js
@@ -0,0 +1,39 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import {isPath as _isPath, root as _root, isAncestor as _isAncestor, isDescendant as _isDescendant, translate as _translate, matches as _matches, normalize as _normalize, split as _split, get as _get, set as _set, isDeep as _isDeep} from '@polymer/polymer/lib/utils/path.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const isPath = _isPath;
+const root = _root;
+const isAncestor = _isAncestor;
+const isDescendant = _isDescendant;
+const translate = _translate;
+const matches = _matches;
+const normalize = _normalize;
+const split = _split;
+const get = _get;
+const set = _set;
+const isDeep = _isDeep;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Path');
+
+/** @const */
+Polymer.Path = {isPath, root, isAncestor, isDescendant, translate, matches, normalize, split, get, set, isDeep};
diff --git a/polymer/lib/utils/render-status.html b/polymer/lib/utils/render-status.html
new file mode 100644
index 0000000..aa631cb
--- /dev/null
+++ b/polymer/lib/utils/render-status.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./render-status_bridge.js"></script>
diff --git a/polymer/lib/utils/render-status_bridge.js b/polymer/lib/utils/render-status_bridge.js
new file mode 100644
index 0000000..a645139
--- /dev/null
+++ b/polymer/lib/utils/render-status_bridge.js
@@ -0,0 +1,33 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+
+import {beforeNextRender as _beforeNextRender, afterNextRender as _afterNextRender, flush as _flush} from '@polymer/polymer/lib/utils/render-status.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const beforeNextRender = _beforeNextRender;
+const afterNextRender = _afterNextRender;
+const flush = _flush;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.RenderStatus');
+
+/** @const */
+Polymer.RenderStatus = {beforeNextRender, afterNextRender, flush};
diff --git a/polymer/lib/utils/require_shim.js b/polymer/lib/utils/require_shim.js
new file mode 100644
index 0000000..d1b9419
--- /dev/null
+++ b/polymer/lib/utils/require_shim.js
@@ -0,0 +1,44 @@
+/**
+@license
+Copyright (c) 2019 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+// polyfill the global 'COMPILED' define without assuming that base.js has
+// loaded.
+window['COMPILED'] = window['COMPILED'] || false;
+
+function polyfillGoogRequire() {
+  // For code that doesn't compile or use the goog debug loader, we need to stub
+  // out goog.require
+
+  if (!window.goog) {
+    window.goog = {
+      require(id) {
+        if (id === 'webcomponentsjs.custom_elements.auto_es5_shim') {
+          // we're in a (deprecated) uncompiled configuration, that file is
+          // unnecessary
+          return;
+        }
+        throw new Error(
+            `Called goog.require without loading //javascript/closure:base`);
+      }
+    };
+    // For uncompiled tests that want to only do a goog.require if it's a
+    // real implementation of goog.require.
+    window.goog.require['isDevModeNoOpImpl'] = true;
+  }
+}
+if (!COMPILED) {
+  polyfillGoogRequire();
+}
+
+/** @suppress {extraRequire} */
+goog.require('webcomponentsjs.custom_elements.auto_es5_shim');
+
+export {};
diff --git a/polymer/lib/utils/resolve-url.html b/polymer/lib/utils/resolve-url.html
new file mode 100644
index 0000000..3231004
--- /dev/null
+++ b/polymer/lib/utils/resolve-url.html
@@ -0,0 +1,12 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./resolve-url_bridge.js"></script>
diff --git a/polymer/lib/utils/resolve-url_bridge.js b/polymer/lib/utils/resolve-url_bridge.js
new file mode 100644
index 0000000..f69d220
--- /dev/null
+++ b/polymer/lib/utils/resolve-url_bridge.js
@@ -0,0 +1,37 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+
+import {pathFromUrl as _pathFromUrl, resolveCss as _resolveCss, resolveUrl as _resolveUrl} from '@polymer/polymer/lib/utils/resolve-url.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const pathFromUrl = _pathFromUrl;
+const resolveCss = _resolveCss;
+const resolveUrl = _resolveUrl;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.ResolveUrl');
+
+/** @const */
+Polymer.ResolveUrl = {
+  resolveCss,
+  resolveUrl,
+  pathFromUrl
+};
diff --git a/polymer/lib/utils/settings.html b/polymer/lib/utils/settings.html
new file mode 100644
index 0000000..64653ba
--- /dev/null
+++ b/polymer/lib/utils/settings.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="../utils/boot.html">
+<link rel="import" href="../utils/resolve-url.html">
+
+<script crossorigin type="module" src="./settings_bridge.js"></script>
diff --git a/polymer/lib/utils/settings_bridge.js b/polymer/lib/utils/settings_bridge.js
new file mode 100644
index 0000000..4ef4eef
--- /dev/null
+++ b/polymer/lib/utils/settings_bridge.js
@@ -0,0 +1,106 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import './resolve-url_bridge.js';
+
+// Use a settings object to make things easier on js compiler.
+import * as settingsObj from '@polymer/polymer/lib/utils/settings.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Settings');
+
+/**
+ * Sets the global, legacy settings.
+ *
+ * @deprecated
+ * @namespace
+ * @memberof Polymer
+ */
+Polymer.Settings = {
+  useShadow: settingsObj.useShadow,
+  useNativeCSSProperties: settingsObj.useNativeCSSProperties,
+  useNativeCustomElements: settingsObj.useNativeCustomElements,
+  get rootPath() {
+    return settingsObj.rootPath;
+  },
+  setRootPath: settingsObj.setRootPath,
+  get sanitizeDOMValue() {
+    return settingsObj.sanitizeDOMValue;
+  },
+  setSanitizeDOMValue: settingsObj.setSanitizeDOMValue,
+  get passiveTouchGestures() {
+    return settingsObj.passiveTouchGestures;
+  },
+  setPassiveTouchGestures: settingsObj.setPassiveTouchGestures,
+  get strictTemplatePolicy() {
+    return settingsObj.strictTemplatePolicy;
+  },
+  setStrictTemplatePolicy: settingsObj.setStrictTemplatePolicy,
+  get allowTemplateFromDomModule() {
+    return settingsObj.allowTemplateFromDomModule;
+  },
+  setAllowTemplateFromDomModule: settingsObj.setAllowTemplateFromDomModule,
+  get legacyOptimizations() {
+    return settingsObj.legacyOptimizations;
+  },
+  setLegacyOptimizations: settingsObj.setLegacyOptimizations,
+  get syncInitialRender() {
+    return settingsObj.syncInitialRender;
+  },
+  setSyncInitialRender: settingsObj.setSyncInitialRender,
+};
+
+// Pass settings from Polymer global into settings module
+if (Polymer.rootPath !== undefined) {
+  settingsObj.setRootPath(Polymer.rootPath);
+}
+if (Polymer.sanitizeDOMValue !== undefined) {
+  settingsObj.setSanitizeDOMValue(Polymer.sanitizeDOMValue);
+}
+if (Polymer.passiveTouchGestures !== undefined) {
+  settingsObj.setPassiveTouchGestures(Polymer.passiveTouchGestures);
+}
+if (Polymer.strictTemplatePolicy !== undefined) {
+  settingsObj.setStrictTemplatePolicy(Polymer.strictTemplatePolicy);
+}
+if (Polymer.allowTemplateFromDomModule !== undefined) {
+  settingsObj.setAllowTemplateFromDomModule(Polymer.allowTemplateFromDomModule);
+} else {
+  // For the HTML Imports bridge, default to allowing <dom-module>
+  settingsObj.setAllowTemplateFromDomModule(true);
+}
+if (Polymer.legacyOptimizations !== undefined) {
+  settingsObj.setLegacyOptimizations(Polymer.legacyOptimizations);
+}
+if (Polymer.syncInitialRender !== undefined) {
+  settingsObj.setSyncInitialRender(Polymer.syncInitialRender);
+}
+
+// Workaround to reduce the impact of b/111016838 to the application
+// bootup phase.
+// This ensures that even if code assigns to Polymer.sanitizeDOMValue after
+// this file has run, we will still update the sanitizeDOMValue implementation
+// used during databinding.
+Object.defineProperty(Polymer, 'sanitizeDOMValue', {
+  get() {
+    return settingsObj.sanitizeDOMValue;
+  },
+  set(sdv) {
+    settingsObj.setSanitizeDOMValue(sdv);
+  }
+});
diff --git a/polymer/lib/utils/style-gather.html b/polymer/lib/utils/style-gather.html
new file mode 100644
index 0000000..1484582
--- /dev/null
+++ b/polymer/lib/utils/style-gather.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="resolve-url.html">
+<link rel="import" href="../elements/dom-module.html">
+
+<script crossorigin type="module" src="./style-gather_bridge.js"></script>
diff --git a/polymer/lib/utils/style-gather_bridge.js b/polymer/lib/utils/style-gather_bridge.js
new file mode 100644
index 0000000..a1dda3f
--- /dev/null
+++ b/polymer/lib/utils/style-gather_bridge.js
@@ -0,0 +1,47 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import './resolve-url_bridge.js';
+
+import {cssFromModule as _cssFromModule, cssFromModuleImports as _cssFromModuleImports, cssFromModules as _cssFromModules, cssFromTemplate as _cssFromTemplate, stylesFromModule as _stylesFromModule, stylesFromModuleImports as _stylesFromModuleImports, stylesFromModules as _stylesFromModules, stylesFromTemplate as _stylesFromTemplate} from '@polymer/polymer/lib/utils/style-gather.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.StyleGather');
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const cssFromModule = _cssFromModule;
+const cssFromModuleImports = _cssFromModuleImports;
+const cssFromModules = _cssFromModules;
+const cssFromTemplate = _cssFromTemplate;
+const stylesFromModule = _stylesFromModule;
+const stylesFromModuleImports = _stylesFromModuleImports;
+const stylesFromModules = _stylesFromModules;
+const stylesFromTemplate = _stylesFromTemplate;
+
+/** @const */
+Polymer.StyleGather = {
+  stylesFromModules,
+  stylesFromModule,
+  stylesFromTemplate,
+  stylesFromModuleImports,
+  cssFromModules,
+  cssFromModule,
+  cssFromTemplate,
+  cssFromModuleImports,
+};
diff --git a/polymer/lib/utils/telemetry.html b/polymer/lib/utils/telemetry.html
new file mode 100644
index 0000000..7d95d71
--- /dev/null
+++ b/polymer/lib/utils/telemetry.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="boot.html">
+
+<script crossorigin type="module" src="./telemetry_bridge.js"></script>
diff --git a/polymer/lib/utils/telemetry_bridge.js b/polymer/lib/utils/telemetry_bridge.js
new file mode 100644
index 0000000..7eb21fc
--- /dev/null
+++ b/polymer/lib/utils/telemetry_bridge.js
@@ -0,0 +1,34 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+import '../utils/boot_bridge.js';
+import {instanceCount, incrementInstanceCount as _incrementInstanceCount, registrations as _registrations, register as _register, dumpRegistrations as _dumpRegistrations} from '@polymer/polymer/lib/utils/telemetry.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+
+// instanceCount is a mutable binding
+const incrementInstanceCount = _incrementInstanceCount;
+const registrations = _registrations;
+const register = _register;
+const dumpRegistrations = _dumpRegistrations;
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Telemetry');
+
+/** @const */
+Polymer.telemetry = /** @type {?PolymerTelemetry} */ (
+    {instanceCount, incrementInstanceCount, registrations, register, dumpRegistrations});
diff --git a/polymer/lib/utils/templatize.html b/polymer/lib/utils/templatize.html
new file mode 100644
index 0000000..f3f04ba
--- /dev/null
+++ b/polymer/lib/utils/templatize.html
@@ -0,0 +1,15 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="boot.html">
+<link rel="import" href="../mixins/property-effects.html">
+<link rel="import" href="../mixins/mutable-data.html">
+
+<script crossorigin type="module" src="./templatize_bridge.js"></script>
diff --git a/polymer/lib/utils/templatize_bridge.js b/polymer/lib/utils/templatize_bridge.js
new file mode 100644
index 0000000..d3831ce
--- /dev/null
+++ b/polymer/lib/utils/templatize_bridge.js
@@ -0,0 +1,37 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at
+http://polymer.github.io/LICENSE.txt The complete set of authors may be found at
+http://polymer.github.io/AUTHORS.txt The complete set of contributors may be
+found at http://polymer.github.io/CONTRIBUTORS.txt Code distributed by Google as
+part of the polymer project is also subject to an additional IP rights grant
+found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import '../mixins/property-effects_bridge.js';
+import '../mixins/mutable-data_bridge.js';
+
+import {templatize as _templatize, modelForElement as _modelForElement, TemplateInstanceBase as _TemplateInstanceBase} from '@polymer/polymer/lib/utils/templatize.js';
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const templatize = _templatize;
+const modelForElement = _modelForElement;
+const TemplateInstanceBase = _TemplateInstanceBase;
+
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Templatize');
+
+/** @const */
+Polymer.Templatize = {templatize, modelForElement};
+/** @const */
+Polymer.TemplateInstanceBase = TemplateInstanceBase;
diff --git a/polymer/lib/utils/unresolved.html b/polymer/lib/utils/unresolved.html
new file mode 100644
index 0000000..216c67b
--- /dev/null
+++ b/polymer/lib/utils/unresolved.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="./boot.html">
+
+<script crossorigin type="module" src="./unresolved_bridge.js"></script>
diff --git a/polymer/lib/utils/unresolved_bridge.js b/polymer/lib/utils/unresolved_bridge.js
new file mode 100644
index 0000000..db1f07e
--- /dev/null
+++ b/polymer/lib/utils/unresolved_bridge.js
@@ -0,0 +1,21 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import '@polymer/polymer/lib/utils/unresolved.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Unresolved');
diff --git a/polymer/lib/utils/wrap.html b/polymer/lib/utils/wrap.html
new file mode 100644
index 0000000..8a97e02
--- /dev/null
+++ b/polymer/lib/utils/wrap.html
@@ -0,0 +1,13 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+
+<link rel="import" href="./boot.html">
+
+<script crossorigin type="module" src="./wrap_bridge.js"></script>
diff --git a/polymer/lib/utils/wrap_bridge.js b/polymer/lib/utils/wrap_bridge.js
new file mode 100644
index 0000000..d1a3981
--- /dev/null
+++ b/polymer/lib/utils/wrap_bridge.js
@@ -0,0 +1,24 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './boot_bridge.js';
+import {wrap} from '@polymer/polymer/lib/utils/wrap.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Lib.Utils.Wrap');
+
+/** @const */
+Polymer.wrap = wrap;
diff --git a/polymer/polymer-element.html b/polymer/polymer-element.html
new file mode 100644
index 0000000..dfe27cf
--- /dev/null
+++ b/polymer/polymer-element.html
@@ -0,0 +1,14 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="lib/mixins/element-mixin.html">
+<!-- import html-tag to export html -->
+<link rel="import" href="lib/utils/html-tag.html">
+
+<script crossorigin type="module" src="./polymer-element_bridge.js"></script>
diff --git a/polymer/polymer-element_bridge.js b/polymer/polymer-element_bridge.js
new file mode 100644
index 0000000..bc0d779
--- /dev/null
+++ b/polymer/polymer-element_bridge.js
@@ -0,0 +1,37 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './lib/utils/boot_bridge.js';
+import './lib/mixins/element-mixin_bridge.js';
+import './lib/utils/html-tag_bridge.js';
+
+import {PolymerElement as _PolymerElement} from '@polymer/polymer/polymer-element.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.PolymerElement');
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+/** @constructor */
+const PolymerElement = _PolymerElement;
+
+/**
+ * @const
+ * @constructor
+ */
+Polymer.Element = PolymerElement;
+
+// Polymer.html already set in html-tag_bridge.js
diff --git a/polymer/polymer-legacy_bridge.js b/polymer/polymer-legacy_bridge.js
new file mode 100644
index 0000000..819be0b
--- /dev/null
+++ b/polymer/polymer-legacy_bridge.js
@@ -0,0 +1,41 @@
+/**
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+*/
+
+/**
+ * @fileoverview This file is a backwards-compatibility shim. Before Polymer
+ *     converted to ES Modules, it wrote its API out onto the global Polymer
+ *     object. The *_bridge.js files (like this one) maintain compatibility
+ *     with that API.
+ */
+
+import './lib/utils/boot_bridge.js';
+import './lib/utils/html-tag_bridge.js';
+import './lib/legacy/polymer-fn_bridge.js';
+import './lib/legacy/legacy-element-mixin_bridge.js';
+import './lib/legacy/templatizer-behavior_bridge.js';
+import './lib/elements/dom-bind_bridge.js';
+import './lib/elements/dom-repeat_bridge.js';
+import './lib/elements/dom-if_bridge.js';
+import './lib/elements/array-selector_bridge.js';
+import './lib/elements/custom-style_bridge.js';
+import './lib/legacy/mutable-data-behavior_bridge.js';
+
+import {Base as _Base} from '@polymer/polymer/polymer-legacy.js';
+
+goog.declareModuleId('HtmlImportsNamespace.Polymer.Polymer');
+
+// This import then const trick is to be clear to the compiler that the
+// imported symbols can't be mutated.
+const Base = _Base;
+
+/** @const */
+Polymer.Base = Base;
+
+// Polymer.html already set in html-tag_bridge.js
diff --git a/polymer/polymer.html b/polymer/polymer.html
new file mode 100644
index 0000000..c9d19c2
--- /dev/null
+++ b/polymer/polymer.html
@@ -0,0 +1,25 @@
+<!--
+@license
+Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
+Code distributed by Google as part of the polymer project is also
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
+-->
+<link rel="import" href="lib/legacy/legacy-element-mixin.html">
+<link rel="import" href="lib/legacy/polymer-fn.html">
+<!-- template elements -->
+<link rel="import" href="lib/legacy/templatizer-behavior.html">
+<link rel="import" href="lib/elements/dom-bind.html">
+<link rel="import" href="lib/elements/dom-repeat.html">
+<link rel="import" href="lib/elements/dom-if.html">
+<link rel="import" href="lib/elements/array-selector.html">
+<!-- custom-style -->
+<link rel="import" href="lib/elements/custom-style.html">
+<!-- bc behaviors -->
+<link rel="import" href="lib/legacy/mutable-data-behavior.html">
+<!-- import html-tag to export html -->
+<link rel="import" href="lib/utils/html-tag.html">
+
+<script crossorigin type="module" src="./polymer-legacy_bridge.js"></script>