[
  {
    "path": ".github/FUNDING.yml",
    "content": "github: pshihn\nopen_collective: rough\n"
  },
  {
    "path": ".gitignore",
    "content": "node_modules\nlib\npackages"
  },
  {
    "path": ".npmignore",
    "content": "node_modules\nexamples\n.github\ntsconfig.json\ntslint.json\npackages"
  },
  {
    "path": "CHANGELOG.md",
    "content": "# Change Log\n\nAll notable changes to this project will be documented in this file.\n\n## [3.0.0] - April 21, 2021\n* Moved from lit-elment to lit 2.0 as the base Web Component class\n* Moved multi-package monorepo to a single package that has all the elements exported\n\n## [2.0.0] - October 19, 2019\n* New component: **wired-video** Video player with the hand-drawn look\n* New component: **wired-calendar** is a calendar component contributed by [@elingerojo](https://github.com/elingerojo)\n* New component: **wired-dialog** emulates dialogs\n* New component: **wired-divider** Draws a sketchy horizontal line between two sections\n* New component: **wired-image** Image component that frames the image in a sketchy border\n* New component: **wired-link** Akin to `<a>` tag, a link with href, and a sketchy underline\n* New component: **wired-search-input** is a text input emulating a search input\n* **wired-card** now supports a sketchy filled background\n* **wired-slider** is more accessible, now built on top of input range.\n* Elements are more responsive to size changes using the Resize observer\n* **wired-textarea** does not auto-grow anymore. \n\n\n## [1.0.0] - April 24, 2019\n\n* New component: **wired-fab** mimics the floating action button proposed in Material design\n* New component: **wired-spinner** to show pending progress in a sketchy way\n* New component: **wired-tabs** \n![wired tabs](https://wiredjs.github.io/wired-elements/images/tabs.png)\n* Selection in Combo and List is now shown with a sketchy zig-zag fill in the style of [rough.js](https://roughjs.com)\n![wired combo](https://wiredjs.github.io/wired-elements/images/combo.gif)\n* Sketchy fill also applied to progress boxes\n* Better Accessibility on all components\n* Refactored code to use TypeScript and latest [Lit Element](https://lit-element.polymer-project.org/)\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2021 Preet Shihn\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# wired-elements 👉 [wiredjs.com](https://wiredjs.com)\nWired Elements is a series of basic UI Elements that have a hand drawn look. These can be used for wireframes, mockups, or just the fun hand-drawn look. \n\n![alt Preview](https://i.imgur.com/qttPllg.png)\n\n\n## Try now\nPlay with wired-elements:\n\n[Wired Elements](https://codesandbox.io/s/wired-elements-vanilla-4bpny)\n\n#### Try it with a framework\n\n[Wired Elements in React](https://codesandbox.io/s/xrll5wyl8w)\n\n[Wired Elements in Vue](https://codesandbox.io/s/vj389y9375)\n\n[Wired Elements in Svelte](https://codesandbox.io/s/wired-elements-svelte-4hfkb)\n\n\n## Install\n\nThe package (wired-elements) exports all components in the **_wired_** category. List of all wired elements can be found [here](https://github.com/rough-stuff/wired-elements/tree/master/src).\n\nAdd wired-elements to your project:\n```\nnpm i wired-elements\n```\n\n\nOr load the ES module directly through unpkg\n\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements?module\"></script>\n```\n\n\n## Usage\n\nImport into your module script:\n```javascript\nimport { WiredButton, WiredInput } from \"wired-elements\"\n```\n\nor \n\n```javascript\nimport { WiredButton } from 'wired-elements/lib/wired-button.js';\nimport { WiredInput } from 'wired-elements/lib/wired-input.js';\n```\n\n#### Use it in your HTML:\n```html\n<wired-input placeholder=\"Enter name\"></wired-input>\n<wired-button>Click Me</wired-button>\n```\n\nLearn about web components [here](https://developer.mozilla.org/en-US/docs/Web/Web_Components).\n\n## Component API\n\nTo view details of each component - properties, events, css-properties, etc, are provided in the [docs folder](https://github.com/rough-stuff/wired-elements/tree/master/docs).\n\n## Demo\n\nDemo of all components is available at [wiredjs.com](https://wiredjs.com/showcase.html).\n\n## Credits\n\nwired-elements was built using [RoughJS](https://roughjs.com/) and [Lit](https://lit.dev/).\n\n## Contributors\n\nBecome a sponsor of the [Rough suite of libraries](https://github.com/rough-stuff)\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/rough/contribute)]\n\n#### Individuals\n\n<a href=\"https://opencollective.com/rough\"><img src=\"https://opencollective.com/rough/individuals.svg?width=890\"></a>\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/rough/contribute)]\n\n<a href=\"https://opencollective.com/rough/organization/0/website\"><img src=\"https://opencollective.com/rough/organization/0/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/1/website\"><img src=\"https://opencollective.com/rough/organization/1/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/2/website\"><img src=\"https://opencollective.com/rough/organization/2/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/3/website\"><img src=\"https://opencollective.com/rough/organization/3/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/4/website\"><img src=\"https://opencollective.com/rough/organization/4/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/5/website\"><img src=\"https://opencollective.com/rough/organization/5/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/6/website\"><img src=\"https://opencollective.com/rough/organization/6/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/7/website\"><img src=\"https://opencollective.com/rough/organization/7/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/8/website\"><img src=\"https://opencollective.com/rough/organization/8/avatar.svg\"></a>\n<a href=\"https://opencollective.com/rough/organization/9/website\"><img src=\"https://opencollective.com/rough/organization/9/avatar.svg\"></a>\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n"
  },
  {
    "path": "docs/wired-button.md",
    "content": "# wired-button\nHand-drawn sketchy Button web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredButton } from 'wired-elements';\n// or\nimport { WiredButton } from 'wired-elements/lib/wired-button.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-button.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-button>Click Me</wired-button>\n<wired-button disabled>Disabled</wired-button>\n<wired-button elevation=\"3\">Elevation</wired-button>\n```\n\n## Properties\n\n**elevation** - Number between  1 and 5 (inclusive) that gives the button a sketchy height. Default value is 1.\n\n**disabled** - disables the button. Default value is false. \n\n## Events\n\n**click** - When button is clicked/submitted\n\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n"
  },
  {
    "path": "docs/wired-calendar.md",
    "content": "![wired calendar][sample]\n\n# wired-calendar\n\nCalendar control with a hand-drawn, wireframe like, style.\n\nFor demo and view the complete set of wired-elements: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredCalendar } from 'wired-elements/lib/wired-calendar.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-calendar.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-calendar selected=\"Jul 4, 2019\">\n</wired-calendar>\n```\n\n## Properties\n\n**elevation** - Numerical number between 1-5 (inclusive) - sets the elevation of the card. Default is 1.\n\n**selected** - Optional string value that will be parsed as Date. Pre selects a date highlighted in the calendar.\n\n**firstdate** - Optional string value that will be parsed as Date. Lower limit of valid dates.\n\n**lastdate** - Optional string value that will be parsed as Date. Higher limit of valid dates.\n\n**locale** - Optional string value to set locale used ONLY FOR RENDERING headers in calendar. Default to browser locale. Note: All internal and external dates handling are not affected by locale.\n\n**disabled** - Boolean value that disables the calendar selector. Default value is false.\n\n**initials** - Boolean value to use initials in weekdays names. Default value is false.\n\n**value** - javascript object that contains the selected Date object and the\ncorresponding formatted text.\n\n**format** - gets/sets the javascript function to format a Date object into a\nformatted text.\n\n\n## Custom CSS Variables\n\n**--wired-calendar-bg** Background color of the calendar. Default white.\n\n**--wired-calendar-color** Calendar sketch line color. Default black.\n\n**--wired-calendar-selected-color** Selected date sketch line color. Default red.\n\n**--wired-calendar-dimmed-color** Font color days not belonging to calendar actual month. Default gray.\n\n## Events\n**selected** event fired when a date is selected by the user.\n\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n\n#### Contributor\n\nEduardo Martinez\n\n[sample]: https://elingerojo.github.io/wired-elements/images/WiredCalendarSample.GIF \"Sample calendar\"\n"
  },
  {
    "path": "docs/wired-card.md",
    "content": "# wired-card\n\nwired-card is a container for other web elements - with a hand-drawn, wireframe like, look.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredCard } from 'wired-elements';\n// or\nimport { WiredCard } from 'wired-elements/lib/wired-card.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-card.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-card>\n  <p>Elevation: 1</p>\n</wired-card>\n\n<wired-card elevation=\"3\">\n  <p>Elevation: 3</p>\n</wired-card>\n```\n\n## Properties\n\n**elevation** - Numerical number between 1-5 (inclusive) - sets the elevation of the card. Default is 1.\n\n**fill** - A color to fill the background of the card in a sketchy format\n\n## Methods\n\n**requestUpdate()** - When dynamically adding content to the card, call this method to recompute the boundaries of the card. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n"
  },
  {
    "path": "docs/wired-checkbox.md",
    "content": "# wired-checkbox\nHand-drawn sketchy checkbox web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredCheckbox } from 'wired-elements';\n// or\nimport { WiredCheckbox } from 'wired-elements/lib/wired-checkbox.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-checkbox.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-checkbox>Checkbox One</wired-checkbox>\n<wired-checkbox checked>Checkbox Two</wired-checkbox>\n<wired-checkbox disabled>Disabled checkbox</wired-checkbox>\n```\n\n## Properties\n\n**checked** - Checked state (boolean). Default is false.\n\n**disabled** - Disables the checkbox. Default value is false. \n\n## Custom CSS Properties\n\n**--wired-checkbox-icon-color** Color of the checkbox. Default is *currentColor*.\n\n## Events\n**change** event fired when state of the checkbox changes, i.e. the user checks/unchecks the box.\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n"
  },
  {
    "path": "docs/wired-combo.md",
    "content": "# wired-combo\n\nCombobox control - similar to a native browser select element; with a hand-drawn, wireframe like, style.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredCombo } from 'wired-elements';\n// or\nimport { WiredCombo } from 'wired-elements/lib/wired-combo.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-combo.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-combo id=\"combo\" selected=\"two\">\n  <wired-item value=\"one\">Number One</wired-item>\n  <wired-item value=\"two\">Number Two</wired-item>\n  <wired-item value=\"three\">Number Three</wired-item>\n</wired-combo>\n```\n\n## Properties\n\n**disabled** - disables the combo selector. Default value is false. \n\n**selected** - Value of the selected wired-item. \n\n## Custom CSS Variables\n\n**--wired-combo-popup-bg** Background color of the dropdown when combo selector is open.\n\n**--wired-item-selected-bg** Background color of the selected item\n\n## Events\n**selected** event fired when an item is selected by the user. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-dialog.md",
    "content": "# wired-dialog\nHand-drawn sketchy Dialog web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredDialog } from 'wired-elements';\n// or\nimport { WiredDialog } from 'wired-elements/lib/wired-dialog.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-dialog.js?module\"></script>\n```\n\nUse it in your HTML:\n\n```html\n<wired-dialog>\n  <p>\n    Dialog content here\n  </p>\n  <div style=\"text-align: right; padding: 30px 16px 16px;\">\n    <wired-button id=\"closeDialog\">Close dialog</wired-button>\n  </div>\n</wired-dialog>\n```\n\n## Properties\n\n**elevation** - Number between  1 and 5 (inclusive) that gives the sketchy link underline a height. Default value is 1.\n\n**open** - Boolean value telling dialog if it's showing or not.\n\n## Custom CSS Properties\n\n**--wired-dialog-z-index** - Sets the `z-index` of the dialog\n\n\n## License\n[MIT License](https://github.com/wiredjs/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-divider.md",
    "content": "# wired-divider\nHand-drawn sketchy line to divide sections\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredDivider } from 'wired-elements';\n// or\nimport { WiredDivider } from 'wired-elements/lib/wired-divider.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-divider.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n<wired-divider></wired-divider>\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n```\n\n## Properties\n\n**elevation** - Number between  1 and 5 (inclusive) represents number of lines drawn. Default value is 1.\n\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-fab.md",
    "content": "# wired-fab\nHand-drawn sketchy Floating Action Button (FAB)\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredFab } from 'wired-elements';\n// or\nimport { WiredFab } from 'wired-elements/lib/wired-fab.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-fab.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-fab id=\"btn1\">\n  <mwc-icon>favorite</mwc-icon>\n</wired-fab>\n<wired-fab id=\"btn2\" class=\"red\">\n  <mwc-icon>close</mwc-icon>\n</wired-fab>\n```\n\n## Properties\n\n**disabled** - disables the button. Default value is false. \n\n## Custom CSS Properties\n\n**--wired-fab-bg-color** - Background color of the fab. Default value is #018786. Foreground color is set by setting the **color** css property.\n\n## Events\n\n**click** - When button is clicked/submitted\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-icon-button.md",
    "content": "# wired-icon-button\n\nThis is a hand-drawn sketchy round button with an image placed at the center. Image could also be in icon, like [@material/mwc-icon](https://www.npmjs.com/package/@material/mwc-icon).\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredIconButton } from 'wired-elements';\n// or\nimport { WiredIconButton } from 'wired-elements/lib/wired-icon-button.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-icon-button.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-icon-button>\n  <mwc-icon>favorite</mwc-icon>\n</wired-icon-button>\n<wired-icon-button class=\"red\">\n  <mwc-icon>favorite</mwc-icon>\n</wired-icon-button>\n```\n\n## Properties\n\n**disabled** - disables the button. Default value is false. \n\n## Custom CSS Variables\n\n**--wired-icon-size** Numeric size of the icon. Default is 24 (px).\n\n**--wired-icon-bg-color** Background color.\n\n## Events\n\n**click** - When button is clicked/submitted\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-image.md",
    "content": "# wired-image\n\nwired-image displays an image and draws a sketchy border around it. \n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredImage } from 'wired-elements';\n// or\nimport { WiredImage } from 'wired-elements/lib/wired-image.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-image.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-image src=\"https://www.gstatic.com/webp/gallery/1.sm.jpg\"></wired-image>\n<wired-image elevation=\"4\" src=\"https://www.gstatic.com/webp/gallery/1.sm.jpg\"></wired-image>\n```\n\n## Properties\n\n**src** - URL of the image.\n\n**elevation** - Numerical number between 1-5 (inclusive) - sets the elevation of the card. Default is 1.\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-input.md",
    "content": "# wired-input\nHand-drawn sketchy text input web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredInput } from 'wired-elements';\n// or\nimport { WiredInput } from 'wired-elements/lib/wired-input.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-input.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-input></wired-input>\n<wired-input placeholder=\"Enter name\"></wired-input>\n<wired-input type=\"password\" placeholder=\"Password\"></wired-input>\n<wired-input placeholder=\"Disabled\" disabled></wired-input>\n```\n\n## Properties\n\n**placeholder** - Placeholder text for the input.\n\n**disabled** - disables the control\n\n**type** - Input type e.g. password\n\n**value** - Value of the text.\n\n## Events\n\nFires all events a standard `<input>` element fires. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-item.md",
    "content": "# wired-item\n\nwired-item is a list item used by Wired components like wired-combo and wired-list-box\n\n[wiredjs.com](https://wiredjs.com)\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-link.md",
    "content": "# wired-link\nHand-drawn sketchy Anchor/Link web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredLink } from 'wired-elements';\n// or\nimport { WiredLink } from 'wired-elements/lib/wired-link.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-link.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-link href=\"/more.html\">Learn more</wired-link>\n<wired-link elevation=\"3\" href=\"/more.html\" target=\"_blank\">Elevation</wired-link>\n```\n\n## Properties\n\n**elevation** - Number between  1 and 5 (inclusive) that gives the sketchy link underline a height. Default value is 1.\n\n**href** - URL of the page to link to\n\n**target** - Similar to the target property of `<a>`, the target window of this link.\n\n## Custom CSS Properties\n\n**--wired-link-decoration-color** - Color of the sketchy underline of the link. Default value is blue. Foreground color is set by setting the **color** css property.\n\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-listbox.md",
    "content": "# wired-listbox\n\nA listbox control with Wired hand-drawn styling. The selected item is highlighted. Can be vertical (default) or horizontal.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredListbox } from 'wired-elements';\n// or\nimport { WiredListbox } from 'wired-elements/lib/wired-listbox.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-listbox.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n <wired-listbox id=\"combo\" selected=\"two\">\n  <wired-item value=\"one\">Number One</wired-item>\n  <wired-item value=\"two\">Number Two</wired-item>\n  <wired-item value=\"three\">Number Three</wired-item>\n</wired-listbox>\n\n<wired-listbox horizontal selected=\"two\"\n     style=\"--wired-item-selected-color: darkred; --wired-item-selected-bg: pink;\">\n  <wired-item value=\"one\">Number One</wired-item>\n  <wired-item value=\"two\">Number Two</wired-item>\n  <wired-item value=\"three\">Number Three</wired-item>\n</wired-listbox>\n```\n\n## Properties\n\n**horizontal** - Boolean indicated if the items are layed out horizontally. Default is false.\n\n**selected** - Value of the selected item. \n\n## Custom CSS Variables\n\n**--wired-item-selected-bg** Background color of the selected item.\n\n**--wired-item-selected-color** Text color of the selected item.\n\n\n## Events\n**selected** event fired when an item is selected by the user. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-progress-ring.md",
    "content": "# wired-progress-ring\nHand-drawn sketchy progress-ring web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredProgressRing } from 'wired-elements';\n// or\nimport { WiredProgressRing } from 'wired-elements/lib/wired-progress-ring.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-progress-ring.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-progress-ring value=\"25\"></wired-progress-ring>\n<wired-progress-ring value=\"10\" min=\"5\" max=\"15\"></wired-progress-ring>\n```\n\n## Properties\n\n**value** - Numeric value of the progress.\n\n**min** - Minimum value. Default is 0.\n\n**max** - Maximum value. Default is 100.\n\n**hideLabel** - Hide the label in the center of the ring. This label shows the current value. Default is `false`.\n\n**showLabelAsPercent** - When showing the label, show the value as a percentage. Default value is `false`.\n\n**precision** - When showing the label as a percentage, this value can be set to specify the precision to round the value to. By default, the value rounded to a whole number. \n\n## Custom CSS Variables\n\n**--wired-progress-color** Color of the progress bar. Default is `blue`.\n\nThe font and color of the label can be set the by styling the `wired-progress-ring` element. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-progress.md",
    "content": "# wired-progress\nHand-drawn sketchy progress bar web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredProgress } from 'wired-elements';\n// or\nimport { WiredProgress } from 'wired-elements/lib/wired-progress.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-progress.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-progress value=\"25\"></wired-progress>\n<wired-progress value=\"10\" min=\"5\" max=\"15\"></wired-progress>\n```\n\n## Properties\n\n**value** - Numeric value of the progress.\n\n**min** - Minimum value. Default is 0.\n\n**max** - Maximum value. Default is 100.\n\n**percentage** - Boolean indicating if the label should show a % symbol.\n\n## Custom CSS Variables\n\n**--wired-progress-label-color** Color of the label. Default is *black*.\n\n**--wired-progress-label-background** Backgroind of label. Default is *rgba(255,255,255,0.9)*.\n\n**--wired-progress-font-size** Font size of the label. Default is *14px*\n\n**--wired-progress-color** Color of the progress bar. Default is *rgba(0, 0, 200, 0.8)*.\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-radio-group.md",
    "content": "# wired-radio-group\nAllows user to select at most one radio button from a set. Works with `wired-radio`.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredRadioGroup, WiredRadio } from 'wired-elements';\n// or\nimport { WiredRadioGroup } from 'wired-elements/lib/wired-radio-group.js';\n```\n\nUse it in your HTML:\n```html\n<wired-radio-group selected=\"two\">\n  <wired-radio name=\"one\">One</wired-radio>\n  <wired-radio name=\"two\">Two</wired-radio>\n  <wired-radio name=\"three\">Three</wired-radio>\n  <wired-radio name=\"four\">Four</wired-radio>\n</wired-radio-group>\n```\n\n## Properties\n\n**selected** - Named of the selected radio button.\n\n## Events\n\n**selected** Event fired when user changes selection\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-radio.md",
    "content": "# wired-radio\nHand-drawn sketchy radio button web component. Usually used with `wired-radio-group`.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredRadio } from 'wired-elements';\n// or\nimport { WiredRadio } from 'wired-elements/lib/wired-radio.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-radio.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-radio>Radio One</wired-radio>\n<wired-radio checked>Radio Two</wired-radio>\n<wired-radio disabled>Disabled Radio</wired-radio>\n```\n\n## Properties\n\n**checked** - Checked state (boolean) of the radio button. Default is false.\n\n**disabled** - disables the radio button. Default value is false. \n\n**text** - Text associated with the radio button.\n\n**name** - A name associated with the radio inside a radio-group.\n\n## Custom CSS Variables\n\n**--wired-radio-icon-color** Color of the radio button. Default is *currentColor*.\n\n## Events\n**change** - event fired when state of the radio changes, i.e. the user checks/unchecks the radio.\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-search-input.md",
    "content": "# wired-search-input\nHand-drawn sketchy search text input web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredSearchInput } from 'wired-elements';\n// or\nimport { WiredSearchInput } from 'wired-elements/lib/wired-search-input.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-search-input.js\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-search-input></wired-search-input>\n<wired-search-input placeholder=\"Search here\"></wired-search-input>\n```\n\n## Properties\n\n**placeholder** - Placeholder text for the input.\n\n**disabled** - disables the control\n\n**value** - Value of the text.\n\n## Events\n\nFires all events a standard `<input>` element fires. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-slider.md",
    "content": "# wired-slider\n\nHand-drawn sketchy slider web component which allows user to select a value from a range by moving the slider thumb.\n\nRange can be set using the min, max value. Default range is 0-100.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredSlider } from 'wired-elements';\n// or\nimport { WiredSlider } from 'wired-elements/lib/wired-slider.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-slider.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-slider></wired-slider>\n<wired-slider disabled></wired-slider>\n<wired-slider value=\"10\" min=\"5\" max=\"15\"></wired-slider>\n```\n\n## Properties\n\n**value** - Numeric value of the slider.\n\n**min** - Minimum value of the slider. Default is 0.\n\n**max** - Maximum value of the slider. Default ia 100.\n\n## Custom CSS Variables\n\n**--wired-slider-knob-zero-color** Color of the knob when the value is at minimum.\n\n**--wired-slider-knob-color** Color of the knob when the value is NOT at minimum.\n\n**--wired-slider-bar-color** Color of the bar on which the knob slides. \n\n## Events\n\n**change** event fired when the user changes the slider value. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-spinner.md",
    "content": "# wired-spinner\nHand-drawn sketchy spinner to show progress or a pending task.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredSpinner } from 'wired-elements';\n// or\nimport { WiredSpinner } from 'wired-elements/lib/wired-spinner.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-spinner.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-spinner id=\"sp\"></wired-spinner>\n<wired-spinner spinning duration=\"1000\"></wired-spinner>\n```\n\n## Properties\n\n**spinning** - Is the spinner spinning. Default is *false*.\n\n**duration** - Time in milliseconds to complete one complete spin. Default is *1500*\n\n## Styling\n\nChange the **color** style of the spinner element to change its color. \n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-tabs.md",
    "content": "# wired-tabs\nHand-drawn sketchy Tabs web component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredTabs, WiredTab } from 'wired-elements';\n// or\nimport { WiredTabs, WiredTab } from 'wired-elements/lib/wired-tabs.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-tabs.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-tabs selected=\"Two\">\n  <wired-tab name=\"One\">\n    <h4>Card 1</h4>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n      magna aliqua.\n      Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n    </p>\n  </wired-tab>\n  <wired-tab name=\"Two\">\n    <h4>Card 2</h4>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n      magna aliqua.\n      Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n    </p>\n  </wired-tab>\n  <wired-tab name=\"Three\">\n    <h4>Card 3</h4>\n    <p>\n      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n      magna aliqua.\n      Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n    </p>\n  </wired-tab>\n</wired-tabs>\n```\n\n## WiredTabs Properties\n\n**selected** - Name of the currently selected tab\n\n## WiredTab Properties\n\n**name** - Unique identifier for that tab. Used for selection. \n\n**label** - Text to show in the tab. Defaults to the **name** property.\n\n## Custom CSS Variables\n\n**--wired-item-selected-bg** Background color of the selected tab.\n\n**--wired-item-selected-color** Text color of the selected tab.\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-textarea.md",
    "content": "# wired-textarea\nHand-drawn sketchy multi-line text input web component. \n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredTextarea } from 'wired-elements';\n// or\nimport { WiredTextarea } from 'wired-elements/lib/wired-textarea.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-textarea.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-textarea placeholder=\"Enter text\" rows=\"6\"></wired-textarea>\n```\n\n## Properties\n\n**rows** - Initial number of rows in textarea.\n\n**maxrows** - Max number of rows textarea grows to. Then scrollbars appear. \n\n**value** - Text value.\n\n**disabled** - Disabled the control.\n\n**placeholder** - Placeholder text for the input.\n\n## Events\n\nFires all the events the native `<textarea>` element fires\n\n![wired textarea](https://wiredjs.github.io/wired-elements/images/textarea.png)\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-toggle.md",
    "content": "# wired-toggle\nHand-drawn sketchy toggle button / switch.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredToggle } from 'wired-elements';\n// or\nimport { WiredToggle } from 'wired-elements/lib/wired-toggle.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-toggle.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-toggle></wired-toggle>\n<wired-toggle checked></wired-toggle>\n```\n\n## Properties\n\n**checked** - Checked state (boolean). \n\n**disabled** - disables the toggle button. Default value is false. \n\n## Custom CSS Variables\n\n**--wired-toggle-off-color** Color of the knob when in off (false) position. Default value is *gray*.\n\n**--wired-toggle-on-color** Color of the knob when in on (true) position. Default value is *rgb(63, 81, 181)*.\n\n## Events\n**change** event fired when state of the toggle is changed by the user.\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "docs/wired-video.md",
    "content": "# wired-video\n\nA hand-drawn sketchy looking video player component.\n\nFor demo and view the complete set of wired-elememts: [wiredjs.com](http://wiredjs.com/)\n\n## Usage\n\nAdd wired-elements to your JavaScript project:\n```\nnpm i wired-elements\n```\n\nImport module in your code:\n\n```javascript\nimport { WiredVideo } from 'wired-elements';\n// or\nimport { WiredVideo } from 'wired-elements/lib/wired-video.js';\n```\n\nOr load directly into your HTML page:\n```html\n<script type=\"module\" src=\"https://unpkg.com/wired-elements/lib/wired-video.js?module\"></script>\n```\n\nUse it in your HTML:\n```html\n<wired-video autoplay muted loop src=\"video.mp4\"></wired-video>\n```\n\n## Properties\n\n**src** - URL of the video.\n\n**autoplay** - Boolean value indicating if the video should auto-play\n\n**loop** - Loop the video (boolean value)\n\n**muted** - Play the video muted (boolean value)\n\n**playsinline** - Play the video inline on mobile devices (boolean value)\n\n## Custom CSS Variables\n\n**--wired-video-highlight-color** Color of the progress bar and the knob on the volume control.\n\n\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)"
  },
  {
    "path": "examples/button.html",
    "content": "<html>\n\n<head>\n   <script type=\"module\" src=\"../lib/wired-button.js\"></script>\n\n   <style>\n      body {\n         margin: 0;\n         padding: 10px;\n         font-family: sans-serif;\n         line-height: 1.5;\n      }\n\n      #styled {\n         background: yellow;\n         color: red;\n      }\n   </style>\n</head>\n\n<body>\n   <p>\n      <wired-button id=\"btn1\">Submit</wired-button>\n   </p>\n   <p>\n      <wired-button id=\"btn2\">Hello, world!</wired-button>\n   </p>\n   <p>\n      <wired-button elevation=\"5\" id=\"btn2\">Hello, world!</wired-button>\n   </p>\n   <p>\n      <wired-button disabled id=\"btn1\">Submit</wired-button>\n   </p>\n   <p>\n      <wired-button id=\"styled\" onclick=\"alert('ddd');\">Click me</wired-button>\n   </p>\n</body>\n\n</html>"
  },
  {
    "path": "examples/calendar.html",
    "content": "<html>\n\n<head>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\n  <link href=\"https://fonts.googleapis.com/css?family=Gloria+Hallelujah&display=swap\" rel=\"stylesheet\">\n\n  <script type=\"module\" src=\"../lib/wired-calendar.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-button.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: 'Gloria Hallelujah', sans-serif;\n      font-size: 24px;\n      font-display: fallback;\n      letter-spacing: 0.05em;\n      line-height: 1.5;\n    }\n\n    .item_wrapper {\n      margin-bottom: 30px;\n      display: inline-block;\n    }\n\n    p {\n      margin: 0 10px;\n    }\n\n    wired-calendar {\n      margin: 10px;\n    }\n\n    wired-button {\n      margin: 0 10px;\n    }\n\n    .custom {\n      --wired-calendar-bg: yellow;\n      --wired-calendar-color: red;\n      --wired-calendar-selected-color: black;\n      --wired-calendar-dimmed-color: brown;\n      width: 260px;\n      height: 260px;\n      font-size: 18px;\n    }\n  </style>\n</head>\n\n<body>\n  <div>\n    <!-- Minimal working calendar -->\n    <div class=\"item_wrapper\">\n      <p>Minimal</p>\n      <wired-calendar></wired-calendar>\n    </div>\n\n    <!-- Calendar with some parameters -->\n    <div class=\"item_wrapper\">\n      <p>\"fr\" locale</p>\n      <!-- Note: parameter dates not affected by locale -->\n      <wired-calendar id=\"calendar2\" elevation=\"1\" firstdate=\"Apr 15, 2019\" lastdate=\"Jul 15, 2019\"\n        selected=\"Jul 4, 2019\" locale=\"fr\" initials>\n      </wired-calendar>\n    </div>\n\n    <!-- Calendar with custom style and some parameters -->\n    <div class=\"item_wrapper\">\n      <p>\"de\" locale</p>\n      <wired-calendar id=\"calendar3\" class=\"custom\" firstdate=\"Apr 15, 2019\" locale=\"de\" initials>\n      </wired-calendar>\n    </div>\n  </div>\n\n  <hr>\n  <!-- Calendar with javascript interactions (event and non-event driven) -->\n  <section>\n    <p>\"es-MX\" locale with javascript interactions sample (event and non-event driven)</p>\n    <wired-calendar id=\"calendar4\" elevation=\"5\" firstdate=\"Apr 15, 2019\" lastdate=\"Jul 15, 2019\" locale=\"es-MX\"\n      initials>\n    </wired-calendar>\n    <p id=\"calendar4-result\">Select a date in the calendar\n    <p>\n    <div style=\"margin-top: 16px;\">\n      <wired-button id=\"btn-today\">Today</wired-button>\n      <wired-button id=\"btn-update\">Update</wired-button>\n    </div>\n    <p id=\"calendar4-update\">No updated yet\n    <p>\n  </section>\n\n  <script>\n    const myCalendar4 = document.getElementById('calendar4');\n    const myCalendar4result = document.getElementById('calendar4-result');\n    const myCalendar4update = document.getElementById('calendar4-update');\n    document.getElementById('btn-update').addEventListener('click', () => {\n      const today = new Date();\n      const time = today.getHours() + \":\" + today.getMinutes() + \":\" + today.getSeconds();\n      const updateTimeLeyend = ' <small>Updated at:' + time + '</small>';\n\n      const selectedObject = myCalendar4.value;\n      if (selectedObject && selectedObject.date) {\n        myCalendar4update.innerHTML = selectedObject.date.toLocaleDateString() + updateTimeLeyend;\n      } else {\n        myCalendar4update.innerHTML = 'No date selected yet.' + updateTimeLeyend;\n      }\n    });\n    document.getElementById('btn-today').addEventListener('click', () => {\n      let today = new Date();\n      // Sample using optional internal date formatter\n      formatedDate = myCalendar4.format(today);\n      console.log('Set date to today = ', formatedDate);\n\n      // Set selected date using any format accepted by javascript Date object\n      myCalendar4.setSelectedDate(formatedDate);\n    });\n    myCalendar4.addEventListener('selected', () => {\n      let selectedObject = myCalendar4.value;\n      // `selectedObject.date` is a javascript Date object\n      // `selectedObject.text` is the formated text of the date\n      let formatedDate = selectedObject.text;\n      myCalendar4result.innerHTML = formatedDate + ' <br><small>Note: Internal date handling not affected by locale.</small>';\n    });\n\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "examples/card.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-card.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-card {\n      max-width: 100%;\n    }\n\n    .card-grid {\n      display: grid;\n      gap: 30px;\n      grid-template-columns: repeat(3, 1fr);\n    }\n  </style>\n</head>\n\n<body>\n  <div class=\"card-grid\">\n    <wired-card>\n      <h4>Card 1</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-card>\n    <wired-card elevation=\"5\">\n      <h4>Card 2</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-card>\n    <wired-card>\n      <h4>Card 3</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-card>\n    <wired-card elevation=\"4\" fill=\"darkred\" style=\"color: lightyellow;\">\n      <h4>Colored Card</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-card>\n  </div>\n</body>\n\n</html>"
  },
  {
    "path": "examples/checkbox.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-checkbox.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-checkbox {\n      margin: 0 15px;\n      opacity: 1;\n    }\n\n    .custom {\n      color: blue;\n      --wired-checkbox-icon-color: red;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-checkbox>Checkbox One</wired-checkbox>\n  <wired-checkbox checked>Checkbox Two</wired-checkbox>\n  <wired-checkbox disabled>Disabled checkbox</wired-checkbox>\n  <wired-checkbox class=\"custom\">Styled checkbox</wired-checkbox>\n</body>\n\n</html>"
  },
  {
    "path": "examples/combo.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-combo.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-combo {\n      margin: 10px;\n      --wired-item-selected-bg: darkblue;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-combo selected=\"two\">\n    <wired-item value=\"one\">Number one</wired-item>\n    <wired-item value=\"two\">Number two</wired-item>\n    <wired-item value=\"three\">Number three</wired-item>\n    <wired-item value=\"four\">Number four</wired-item>\n  </wired-combo>\n  <wired-combo selected=\"one\" disabled>\n    <wired-item value=\"one\">Disabled</wired-item>\n    <wired-item value=\"two\">Number two</wired-item>\n  </wired-combo>\n  <wired-combo>\n    <wired-item value=\"one\">Disabled</wired-item>\n    <wired-item value=\"two\">Number two</wired-item>\n  </wired-combo>\n\n  <div>\n    <button>Check</button>\n  </div>\n\n  <script>\n    document.querySelector('button').addEventListener('click', () => {\n      const combos = document.querySelectorAll('wired-combo');\n      combos.forEach((c) => {\n        console.log(c, c.selected);\n      });\n    });\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "examples/dialog.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-link.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-button.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-dialog.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n      font-size: 20px;\n    }\n\n    p {\n      max-width: 500px;\n      margin: 0 auto;\n    }\n  </style>\n</head>\n\n<body>\n  <p>\n    <wired-button id=\"openDialog\">Show dialog</wired-button>\n  </p>\n  <wired-dialog>\n    <p>\n      This is a paragraph and here's a link about <wired-link href=\"./button.html\">wired-button</wired-link> and well\n      well\n      well, what do you know, same link with more elevation <wired-link elevation=\"3\" href=\"./button.html\">wired-button\n      </wired-link>.\n      Here's another link that opens in a new tab about <wired-link href=\"./input.html\" target=\"_blank\">wired-input\n      </wired-link>. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore\n      et dolore magna aliqua.\n    </p>\n    <div style=\"text-align: right; padding: 30px 16px 16px;\">\n      <wired-button id=\"closeDialog\">Close dialog</wired-button>\n    </div>\n  </wired-dialog>\n\n  <script>\n    document.getElementById('openDialog').addEventListener('click', () => {\n      document.querySelector('wired-dialog').open = true;\n    });\n    document.getElementById('closeDialog').addEventListener('click', () => {\n      document.querySelector('wired-dialog').open = false;\n    });\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "examples/divider.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-divider.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n      font-size: 20px;\n    }\n\n    main {\n      max-width: 600px;\n      margin: 0 auto;\n    }\n  </style>\n</head>\n\n<body>\n  <main>\n    <section>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n        consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n        pariatur.\n        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n      </p>\n      <wired-divider></wired-divider>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo\n        consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla\n        pariatur.\n        Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n      </p>\n    </section>\n  </main>\n</body>\n\n</html>"
  },
  {
    "path": "examples/fab.html",
    "content": "<html>\n\n<head>\n  <link href=\"https://fonts.googleapis.com/css?family=Material+Icons&display=block\" rel=\"stylesheet\">\n  <script type=\"module\" src=\"https://unpkg.com/@material/mwc-icon?module\"></script>\n  <script type=\"module\" src=\"../lib/wired-fab.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-fab {\n      margin: 0 10px;\n    }\n\n    .big {\n      --wired-icon-size: 40px;\n      padding: 16px;\n    }\n\n    .red {\n      color: red;\n    }\n\n    .pinkbg {\n      color: red;\n      --wired-fab-bg-color: pink;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-fab>\n    <mwc-icon>favorite</mwc-icon>\n  </wired-fab>\n  <wired-fab class=\"red\">\n    <mwc-icon>favorite</mwc-icon>\n  </wired-fab>\n  <wired-fab class=\"pinkbg\">\n    <mwc-icon>favorite</mwc-icon>\n  </wired-fab>\n  <wired-fab class=\"big\">\n    <mwc-icon>favorite</mwc-icon>\n  </wired-fab>\n  <wired-fab disabled>\n    <mwc-icon>favorite</mwc-icon>\n  </wired-fab>\n</body>\n\n</html>"
  },
  {
    "path": "examples/icon-button.html",
    "content": "<html>\n\n<head>\n  <link href=\"https://fonts.googleapis.com/css?family=Material+Icons&display=block\" rel=\"stylesheet\">\n  <script type=\"module\" src=\"https://unpkg.com/@material/mwc-icon?module\"></script>\n  <script type=\"module\" src=\"../lib/wired-icon-button.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-icon-button {\n      margin: 0 10px;\n    }\n\n    .big {\n      --wired-icon-size: 40px;\n      padding: 16px;\n    }\n\n    .red {\n      color: red;\n    }\n\n    .pinkbg {\n      color: red;\n      --wired-icon-bg-color: pink;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-icon-button>\n    <mwc-icon>favorite</mwc-icon>\n  </wired-icon-button>\n  <wired-icon-button class=\"red\">\n    <mwc-icon>favorite</mwc-icon>\n  </wired-icon-button>\n  <wired-icon-button class=\"pinkbg\">\n    <mwc-icon>favorite</mwc-icon>\n  </wired-icon-button>\n  <wired-icon-button class=\"big\">\n    <mwc-icon>favorite</mwc-icon>\n  </wired-icon-button>\n  <wired-icon-button disabled>\n    <mwc-icon>favorite</mwc-icon>\n  </wired-icon-button>\n</body>\n\n</html>"
  },
  {
    "path": "examples/image.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-image.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-image {\n      margin: 20px;\n    }\n\n    .red {\n      color: purple;\n    }\n\n    .sized {\n      max-width: 400px;\n      max-height: 400px;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-image src=\"https://www.gstatic.com/webp/gallery/1.sm.jpg\"></wired-image>\n  <wired-image elevation=\"4\" class=\"red\" src=\"https://www.gstatic.com/webp/gallery/1.sm.jpg\"></wired-image>\n  <wired-image src=\"https://www.gstatic.com/webp/gallery/4.jpg\"></wired-image>\n  <wired-image class=\"sized\" elevation=\"5\" src=\"https://www.gstatic.com/webp/gallery/4.jpg\"></wired-image>\n</body>\n\n</html>"
  },
  {
    "path": "examples/input.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-input.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-input {\n      margin: 5px 15px;\n    }\n\n    #name {\n      width: 300px;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-input id=\"name\" placeholder=\"Enter name\"></wired-input>\n  <wired-input type=\"password\" placeholder=\"Password\"></wired-input>\n  <wired-input placeholder=\"Disabled\" disabled></wired-input>\n</body>\n\n</html>"
  },
  {
    "path": "examples/link.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-link.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n      font-size: 20px;\n    }\n\n    p {\n      max-width: 500px;\n      margin: 0 auto;\n    }\n  </style>\n</head>\n\n<body>\n  <p>\n    This is a paragraph and here's a link about <wired-link href=\"./button.html\">wired-button</wired-link> and well well\n    well, what do you know, same link with more elevation <wired-link elevation=\"3\" href=\"./button.html\">wired-button\n    </wired-link>.\n    Here's another link that opens in a new tab about <wired-link href=\"./input.html\" target=\"_blank\">wired-input\n    </wired-link>. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore\n    et dolore magna aliqua.\n  </p>\n</body>\n\n</html>"
  },
  {
    "path": "examples/listbox.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-item.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-listbox.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-listbox {\n      margin: 5px;\n      --wired-item-selected-bg: darkblue;\n    }\n\n    .customListBox {\n      --wired-item-selected-bg: pink;\n      --wired-item-selected-color: darkred;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-listbox selected=\"one\">\n    <wired-item value=\"one\">No. one</wired-item>\n    <wired-item value=\"two\">No. two</wired-item>\n    <wired-item value=\"three\">No. three</wired-item>\n    <wired-item value=\"four\">No. four</wired-item>\n  </wired-listbox>\n\n  <wired-listbox horizontal class=\"customListBox\" selected=\"two\">\n    <wired-item value=\"one\">No. one</wired-item>\n    <wired-item value=\"two\">No. two</wired-item>\n    <wired-item value=\"three\">No. three</wired-item>\n    <wired-item value=\"four\">No. four</wired-item>\n  </wired-listbox>\n</body>\n\n</html>"
  },
  {
    "path": "examples/progress-ring.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-progress-ring.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-button.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-progress-ring {\n      margin: 16px 0;\n    }\n\n    #wp2 {\n      --wired-progress-color: red;\n    }\n\n    wired-button {\n      margin: 0 10px;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-progress-ring value=\"25\" hideLabel></wired-progress-ring>\n  <br>\n  <wired-progress-ring id=\"wp2\" min=\"-100\" max=\"100\" value=\"0\"></wired-progress-ring>\n  <br>\n  <section style=\"margin-top: 16px;\">\n    <wired-progress-ring id=\"progress\" showLabelAsPercent></wired-progress-ring>\n    <div style=\"margin-top: 16px;\">\n      <wired-button id=\"btns\">Start</wired-button>\n      <wired-button id=\"btnr\">Stop</wired-button>\n    </div>\n  </section>\n\n  <script>\n    const prog = document.getElementById('progress')\n    let timer = 0;\n    document.getElementById('btns').addEventListener('click', () => {\n      if (timer) {\n        window.clearInterval(timer);\n      }\n      timer = window.setInterval(() => {\n        if (prog.value >= 100) {\n          prog.value = 0;\n        } else {\n          prog.value = prog.value + 1;\n        }\n      }, 100);\n    });\n    document.getElementById('btnr').addEventListener('click', () => {\n      if (timer) {\n        window.clearInterval(timer);\n        timer = 0;\n      }\n      prog.value = 0;\n    });\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "examples/progress.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-progress.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-button.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-progress {\n      margin: 10px;\n    }\n\n    wired-button {\n      margin: 0 10px;\n    }\n\n    .custom {\n      --wired-progress-color: rgba(220, 0, 50, 0.1);\n      --wired-progress-label-color: green;\n      width: 300px;\n      height: 2em;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-progress value=\"25\"></wired-progress>\n  <wired-progress value=\"65\" percentage></wired-progress>\n  <wired-progress class=\"custom\" value=\"30\"></wired-progress>\n  <section style=\"margin-top: 16px;\">\n    <wired-progress id=\"progress\"></wired-progress>\n    <div style=\"margin-top: 16px;\">\n      <wired-button id=\"btns\">Start</wired-button>\n      <wired-button id=\"btnr\">Stop</wired-button>\n    </div>\n  </section>\n\n  <script>\n    const prog = document.getElementById('progress')\n    let timer = 0;\n    document.getElementById('btns').addEventListener('click', () => {\n      if (timer) {\n        window.clearInterval(timer);\n      }\n      timer = window.setInterval(() => {\n        if (prog.value >= 100) {\n          prog.value = 0;\n        } else {\n          prog.value = prog.value + 1;\n        }\n      }, 100);\n    });\n    document.getElementById('btnr').addEventListener('click', () => {\n      if (timer) {\n        window.clearInterval(timer);\n        timer = 0;\n      }\n      prog.value = 0;\n    });\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "examples/radio.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-radio.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-radio-group.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-radio {\n      margin: 0 15px;\n      opacity: 1;\n    }\n\n    .custom {\n      color: blue;\n      --wired-radio-icon-color: red;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-radio>Radio One</wired-radio>\n  <wired-radio checked>Radio Two</wired-radio>\n  <wired-radio disabled>Disabled Radio</wired-radio>\n  <wired-radio class=\"custom\">Styled Radio</wired-radio>\n\n  <p></p>\n\n  <div>\n    <wired-radio-group id=\"rg\" selected=\"two\">\n      <wired-radio name=\"one\">One</wired-radio>\n      <wired-radio name=\"two\">Two</wired-radio>\n      <wired-radio name=\"three\">Three</wired-radio>\n      <wired-radio name=\"four\">Four</wired-radio>\n    </wired-radio-group>\n  </div>\n</body>\n\n</html>"
  },
  {
    "path": "examples/search-input.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-search-input.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-search-input {\n      margin: 5px 15px;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-search-input placeholder=\"Search here\"></wired-search-input>\n  <wired-search-input placeholder=\"Disabled\" disabled></wired-search-input>\n</body>\n\n</html>"
  },
  {
    "path": "examples/slider.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-slider.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-slider {\n      margin: 16px 0;\n      max-width: 100%;\n      box-sizing: border-box;\n    }\n\n    .custom {\n      width: 200px;\n      --wired-slider-knob-color: green;\n      --wired-slider-bar-color: blue;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-slider></wired-slider>\n  <br>\n  <wired-slider value=\"40\" style=\"width: 600px;\"></wired-slider>\n  <br>\n  <wired-slider value=\"10\" min=\"5\" max=\"15\"></wired-slider>\n  <br>\n  <wired-slider value=\"60\" disabled></wired-slider>\n  <br>\n  <wired-slider class=\"custom\" value=\"25\"></wired-slider>\n</body>\n\n</html>"
  },
  {
    "path": "examples/spinner.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-button.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-spinner.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-spinner {\n      margin: 10px;\n    }\n\n    .custom {\n      color: red;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-spinner id=\"sp\"></wired-spinner>\n  <wired-spinner class=\"custom\" spinning duration=\"1000\"></wired-spinner>\n\n  <div style=\"margin-top: 30px;\">\n    <wired-button>Toggle</wired-button>\n  </div>\n\n  <script>\n    document.querySelector('wired-button').addEventListener('click', () => {\n      const sp = document.getElementById('sp');\n      sp.spinning = !sp.spinning;\n    });\n  </script>\n</body>\n\n</html>"
  },
  {
    "path": "examples/tabs.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-tab.js\"></script>\n  <script type=\"module\" src=\"../lib/wired-tabs.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-tabs {\n      max-width: 600px;\n      margin: 0 auto;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-tabs selected=\"Three\">\n    <wired-tab name=\"One\">\n      <h4>Card 1</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-tab>\n    <wired-tab name=\"Two\">\n      <h4>Card 2</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-tab>\n    <wired-tab name=\"Three\">\n      <h4>Card 3</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-tab>\n    <wired-tab name=\"Four\">\n      <h4>Card 4</h4>\n      <p>\n        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore\n        magna aliqua.\n        Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n      </p>\n    </wired-tab>\n  </wired-tabs>\n</body>\n\n</html>"
  },
  {
    "path": "examples/textarea.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-textarea.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-textarea {\n      margin: 10px 0;\n      box-sizing: border-box;\n      max-width: 100%;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-textarea placeholder=\"Enter text\"></wired-textarea>\n  <wired-textarea placeholder=\"Enter text 3 rows\" rows=\"3\"></wired-textarea>\n  <wired-textarea placeholder=\"Enter text 6 rows\" rows=\"6\"></wired-textarea>\n  <wired-textarea placeholder=\"Enter text 1 rows\" rows=\"1\"></wired-textarea>\n  <wired-textarea disabled placeholder=\"disabled\" rows=\"2\"></wired-textarea>\n</body>\n\n</html>"
  },
  {
    "path": "examples/toggle.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-toggle.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    wired-toggle {\n      margin: 10px;\n    }\n\n    .custom {\n      --wired-toggle-off-color: red;\n      --wired-toggle-on-color: green;\n    }\n  </style>\n</head>\n\n<body>\n  <wired-toggle></wired-toggle>\n  <wired-toggle class=\"custom\" checked></wired-toggle>\n  <wired-toggle disabled></wired-toggle>\n</body>\n\n</html>"
  },
  {
    "path": "examples/video.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\" src=\"../lib/wired-video.js\"></script>\n\n  <style>\n    body {\n      margin: 0;\n      padding: 10px;\n      font-family: sans-serif;\n      line-height: 1.5;\n    }\n\n    .pink {\n      --wired-video-highlight-color: purple;\n    }\n  </style>\n</head>\n\n<body>\n  <p>\n    <wired-video autoplay playsinline muted loop\n      src=\"https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4\">\n    </wired-video>\n  </p>\n  <p>\n    <wired-video class=\"pink\" src=\"https://file-examples-com.github.io/uploads/2017/04/file_example_MP4_480_1_5MG.mp4\">\n    </wired-video>\n  </p>\n</body>\n\n</html>"
  },
  {
    "path": "experimental/icon.html",
    "content": "<html>\n\n<head>\n  <link rel=\"preload\" href=\"/node_modules/lit-element/lit-element.js\" as=\"script\" crossorigin>\n  <link rel=\"preload\" href=\"/node_modules/lit-html/lit-html.js\" as=\"script\" crossorigin>\n  <link rel=\"preload\" href=\"/packages/wired-icon/node_modules/wired-lib/lib/wired-lib.js\" as=\"script\" crossorigin>\n  <link rel=\"preload\" href=\"/packages/wired-icon/lib/wired-icon.js\" as=\"script\" crossorigin>\n\n  <script type=\"module\" src=\"../packages/wired-icon/lib/wired-icon.js\"></script>\n  <script type=\"module\" src=\"../packages/wired-mat-icon/lib/wired-mat-icon.js\"></script>\n  <script type=\"module\" src=\"../packages/wired-icon-button/lib/wired-icon-button.js\"></script>\n\n  <style>\n    .icon {\n      width: 70px;\n      display: inline-block;\n    }\n    .icon-button{\n      display: block;\n      width: 30px;\n    }\n  </style>\n</head>\n\n<body>\n  <h2>Wired Icon</h2>  \n\n  <p>With paths coming from the Vaadin iconset. viewbox='-1 -1 18 18' for best results</p>\n  <wired-icon class=\"icon\"\n    config='{\"fill\": \"lightblue\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"roughness\": \"0.3\"}'>\n    <svg viewbox='-1 -1 18 18'>\n      <path d=\"M15.9 5.7l-2-3.4-3.9 2.2v-4.5h-4v4.5l-4-2.2-2 3.4 3.9 2.3-3.9 2.3 2 3.4 4-2.2v4.5h4v-4.5l3.9 2.2 2-3.4-4-2.3z\"></path>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n    config='{\"fill\": \"#3B5998\", \"fillStyle\": \"zigzag\", \"hachureAngle\": \"20\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"roughness\": \"0.1\"}'>\n    <svg viewbox='-1 -1 18 18'>\n      <path fill=\"#444\" d=\"M7.2 16v-7.5h-2v-2.7h2c0 0 0-1.1 0-2.3 0-1.8 1.2-3.5 3.9-3.5 1.1 0 1.9 0.1 1.9 0.1l-0.1 2.5c0 0-0.8 0-1.7 0-1 0-1.1 0.4-1.1 1.2 0 0.6 0-1.3 0 2h2.9l-0.1 2.7h-2.8v7.5h-2.9z\"></path>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n    config='{\"fill\": \"#3B5998\", \"fillStyle\": \"zigzag\", \"hachureAngle\": \"50\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"roughness\": \"0.1\"}'>\n    <svg viewbox='-1 -1 18 18'>\n      <path fill=\"#444\" d=\"M0 0v16h16v-16h-16zM12.9 8.4h-2.1v5.6h-2.1v-5.6h-1.5v-2h1.5c0 0 0-0.8 0-1.7 0-1.5 0.9-2.7 2.9-2.7 0.8 0 1.4 0.1 1.4 0.1v1.9c0 0-0.6 0-1.3 0s-0.8 0.3-0.8 0.9c0 0.1 0 0.1 0 0.1 0 0.2 0 0.5 0 1.4h2.1l-0.1 2z\"></path>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n    config='{\"fill\": \"lightblue\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"roughness\": \"0.1\"}'>\n    <svg viewbox='-1 -1 18 18'>\n      <path fill=\"#444\" d=\"M14 13l-4 1h-6l-4-1v-1h14z\"></path>\n      <path fill=\"#444\" d=\"M14.7 3h-1.7v-1h-12v5c0 1.5 0.8 2.8 2 3.4v0.6h8v-0.6c0.9-0.5 1.6-1.4 1.9-2.4 0 0 0.1 0 0.1 0 2.3 0 2.9-2 3-3.5 0.1-0.8-0.5-1.5-1.3-1.5zM13 7v-3h1.7c0.1 0 0.2 0.1 0.2 0.1s0.1 0.1 0.1 0.3c-0.2 2.6-1.6 2.6-2 2.6z\"></path>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n    config='{\"fill\": \"gray\", \"fillStyle\": \"cross-hatch\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.5\", \"roughness\": \"0.1\"}'>\n    <svg viewBox=\"0 0 24 24\">\n      <circle cx=\"4.5\" cy=\"9.5\" r=\"2.5\"/>\n      <circle cx=\"9\" cy=\"5.5\" r=\"2.5\"/>\n      <circle cx=\"15\" cy=\"5.5\" r=\"2.5\"/>\n      <circle cx=\"19.5\" cy=\"9.5\" r=\"2.5\"/>\n      <path d=\"M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z\"/>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n  config='{\"fill\": \"lightgreen\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"strokeWidth\": \"0.8\", \"roughness\": \"0.1\"}'>\n    <svg viewbox='-1 -1 18 18'>\n      <path fill=\"#444\" d=\"M6.18 14c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z\"></path>\n      <path fill=\"#444\" d=\"M14 14c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z\"></path>\n      <path fill=\"#444\" d=\"M15.76 8.64l-3-4.53c-0.455-0.673-1.215-1.11-2.078-1.11-0.008 0-0.015 0-0.023 0l-2.659-0v-1c0-0.552-0.448-1-1-1s-1 0.448-1 1v1h-4.5c-0.828 0-1.5 0.672-1.5 1.5v8.5h1.37c0.474-1.135 1.546-1.931 2.812-2 1.278 0.072 2.345 0.868 2.81 1.978l2.188 0.021c0.474-1.135 1.546-1.931 2.812-2 1.303 0.003 2.405 0.827 2.822 1.979l1.187 0.021v-3.57c-0.001-0.294-0.090-0.568-0.243-0.795zM6.92 8.12c-0.266 1.117-1.255 1.935-2.435 1.935-1.381 0-2.5-1.119-2.5-2.5 0-1.18 0.818-2.17 1.918-2.432 0.195-0.049 0.399-0.075 0.609-0.075 1.37 0 2.48 1.11 2.48 2.48 0 0.21-0.026 0.414-0.075 0.609zM10 8v-3h0.85c0.003-0 0.006-0 0.009-0 0.777 0 1.461 0.394 1.866 0.992l1.325 2.008z\"></path>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n  config='{\"fill\": \"lightblue\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"strokeWidth\": \"0.8\", \"roughness\": \"0.1\"}'>\n    <svg viewbox='-1 -1 18 18'>\n      <path d=\"M7.5 12.2c-2.3 0-4.2-1.9-4.2-4.2s1.9-4.2 4.2-4.2 4.2 1.9 4.2 4.2c0.1 2.3-1.9 4.2-4.2 4.2zM7.5 5.2c-1.5 0-2.7 1.3-2.7 2.8s1.2 2.8 2.8 2.8 2.8-1.2 2.8-2.8-1.4-2.8-2.9-2.8z\"></path>\n      <path d=\"M8 16c-4.4 0-8-3.6-8-8s3.6-8 8-8 8 3.6 8 8c0 1.5-0.4 3-1.2 4.2-0.3 0.5-1.1 1.2-2.3 1.2-0.8 0-1.3-0.3-1.6-0.6-0.7-0.7-0.6-1.8-0.6-1.9v-6.9h1.5v7c0 0.2 0 0.6 0.2 0.8 0 0 0.2 0.2 0.5 0.2 0.7 0 1.1-0.5 1.1-0.5 0.6-1 1-2.2 1-3.4 0-3.6-2.9-6.5-6.5-6.5s-6.6 2.8-6.6 6.4 2.9 6.5 6.5 6.5c0.7 0 1.3-0.1 1.9-0.3l0.4 1.4c-0.7 0.3-1.5 0.4-2.3 0.4z\"></path>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n  config='{\"fill\": \"lightblue\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"strokeWidth\": \"0.8\", \"roughness\": \"0.1\"}'>\n    <svg viewbox='0 0 24 24'>\n      <path d=\"M22 21c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.46.27-1.08.64-2.19.64-1.11 0-1.73-.37-2.18-.64-.37-.23-.6-.36-1.15-.36s-.78.13-1.15.36c-.46.27-1.08.64-2.19.64v-2c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64 1.11 0 1.73.37 2.18.64.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.23.59.36 1.15.36v2zm0-4.5c-1.11 0-1.73-.37-2.18-.64-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36-.56 0-.78.13-1.15.36-.45.27-1.07.64-2.18.64s-1.73-.37-2.18-.64c-.37-.22-.6-.36-1.15-.36s-.78.13-1.15.36c-.47.27-1.09.64-2.2.64v-2c.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36.56 0 .78-.13 1.15-.36.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36s.78-.13 1.15-.36c.45-.27 1.07-.64 2.18-.64s1.73.37 2.18.64c.37.22.6.36 1.15.36v2zM8.67 12c.56 0 .78-.13 1.15-.36.46-.27 1.08-.64 2.19-.64 1.11 0 1.73.37 2.18.64.37.22.6.36 1.15.36s.78-.13 1.15-.36c.12-.07.26-.15.41-.23L10.48 5C8.93 3.45 7.5 2.99 5 3v2.5c1.82-.01 2.89.39 4 1.5l1 1-3.25 3.25c.31.12.56.27.77.39.37.23.59.36 1.15.36z\"/>\n      <circle cx=\"16.5\" cy=\"5.5\" r=\"2.5\"/>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n  config='{\"fill\": \"lightblue\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"strokeWidth\": \"0.8\", \"roughness\": \"0.2\"}'>\n    <svg viewbox='0 0 24 24'>\n      <rect x=\"3\" y=\"8\" width=\"18\" height=\"13\"></rect>\n      <rect x=\"1\" y=\"3\" width=\"22\" height=\"5\"></rect>\n      <line x1=\"10\" y1=\"12\" x2=\"14\" y2=\"12\"></line>\n    </svg>\n  </wired-icon>\n  <wired-icon class=\"icon\"\n  config='{\"fill\": \"lightblue\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\", \"strokeWidth\": \"0.8\", \"roughness\": \"0.2\"}'>\n  <svg viewbox='0 0 24 24'>\n    <polygon points=\"21 8 21 21 3 21 3 8\"></polygon>\n  </svg>\n  </wired-icon>\n  <wired-icon config='{\"fill\": \"gray\", \"hachureGap\": \"1\"}'>\n    <svg width=\"26\" height=\"24\" viewBox=\"0 0 26 24\" id=\"ic_signal_wifi_statusbar_connected_no_internet_2_26x24px\">\n      <path fill-opacity=\".3\" d=\"M24.24 8l1.35-1.68C25.1 5.96 20.26 2 13 2S.9 5.96.42 6.32l12.57 15.66.01.02.01-.01L20 13.28V8h4.24z\"/>\n      <path d=\"M5.45 12.59l7.54 9.4.01.01.01-.01L20 13.28v-1.09c-1.07-.73-3.59-2.19-7-2.19-4.36 0-7.26 2.38-7.55 2.59zM22 10v8h2v-8h-2zm0 12h2v-2h-2v2z\"/>\n      </svg>\n  </wired-icon>\n  <br>\n  <hr>\n\n  <h2>Wired Mat Icon</h2>\n  <wired-mat-icon class=\"icon\" icon=\"audiotrack\">\n  </wired-mat-icon>\n  <span>Default (roughness = 0.1)</span>\n  <br>\n  \n  <wired-mat-icon class=\"icon\" icon=\"settings\" config='{\"fill\": \"red\", \"hachureGap\": \"1\"}'>\n  </wired-mat-icon>\n  <span>{\"fill\": \"red\", \"hachureGap\": \"1\"}</span>\n  <br>\n  \n  <wired-mat-icon class=\"icon\" icon=\"android\"\n    config='{\"fillStyle\": \"zigzag\", \"fill\": \"green\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\"}'>\n  </wired-mat-icon>\n  <span>{\"fillStyle\": \"zigzag\", \"fill\": \"green\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\"}</span>\n  <br>\n\n  <wired-mat-icon class=\"icon\" icon=\"computer\"\n    config='{\"stroke\": \"transparent\", \"fill\": \"black\", \"fillStyle\": \"solid\"}'>\n  </wired-mat-icon>\n  <span>{\"stroke\": \"transparent\", \"fill\": \"black\", \"fillStyle\": \"solid\"}</span>\n  <br>\n\n  <wired-mat-icon class=\"icon\" icon=\"account_box\"\n    config='{\"stroke\": \"transparent\", \"fill\": \"red\", \"fillStyle\": \"zigzag\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\"}'>\n  </wired-mat-icon>\n  <span>{\"stroke\": \"transparent\", \"fill\": \"red\", \"fillStyle\": \"zigzag\", \"hachureGap\": \"1.7\", \"fillWeight\": \"0.8\"}</span>\n  <br>\n\n  <hr>\n  <h2>With Wired Icon button</h2>\n  <wired-icon-button elevation=\"5\">\n    <wired-mat-icon icon=\"edit\"\n      class=\"icon-button\"\n      config='{\"strokeWidth\": \"0.3\", \"fillWeight\": \"0.8\", \"hachureAngle\": \"20\", \"fill\": \"gray\"}'\n    ></wired-mat-icon>\n  </wired-icon-button>\n  <wired-icon-button elevation=\"5\">\n    <wired-icon\n      class=\"icon-button\"\n      config='{\"strokeWidth\": \"0.3\", \"fill\": \"blue\", \"fillStyle\": \"cross-hatch\"}'\n    >\n    <svg viewbox=\"-1 -1 18 18\">\n      <path d=\"M9 11h-3c0-3 1.6-4 2.7-4.6 0.4-0.2 0.7-0.4 0.9-0.6 0.5-0.5 0.3-1.2 0.2-1.4-0.3-0.7-1-1.4-2.3-1.4-2.1 0-2.5 1.9-2.5 2.3l-3-0.4c0.2-1.7 1.7-4.9 5.5-4.9 2.3 0 4.3 1.3 5.1 3.2 0.7 1.7 0.4 3.5-0.8 4.7-0.5 0.5-1.1 0.8-1.6 1.1-0.9 0.5-1.2 1-1.2 2z\"></path>\n      <path d=\"M9.5 14c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z\"></path>\n    </svg>\n  </wired-icon>\n  </wired-icon-button>\n  \n</body>\n\n</html>\n"
  },
  {
    "path": "experimental/iconset-generator.html",
    "content": "<html>\n\n<head>\n  <script type=\"module\">\n      import {ICON_SET} from  \"../packages/wired-mat-icon/lib/iconset/iconset-full.js\";\n\n      window.ICON_SET = ICON_SET;\n  </script>\n  <script type=\"module\" src=\"../packages/wired-input/lib/wired-input.js\"></script>\n  <script type=\"module\" src=\"../packages/wired-button/lib/wired-button.js\"></script>\n  <script type=\"module\" src=\"../packages/wired-card/lib/wired-card.js\"></script>\n\n  <style>\n    wired-card {\n        display: block;\n        width: 80%;\n        margin: 1em;\n    }\n  </style>\n</head>\n\n<body>\n    <wired-input id=\"input\" placeholder=\"Enter icon name\"></wired-input>\n    <wired-button onclick=\"getPath()\">Get Path</wired-button>\n    <wired-card>\n        <h4>Corresponding Path:</h4>\n        <p id=\"result\">\n          No path found.\n        </p>\n      </wired-card>\n    <script>\n        function getPath() {\n            const input = document.getElementById('input');\n            const result = document.getElementById('result');\n\n            const path = window.ICON_SET[input.value];\n            result.innerHTML = path || 'No path found.';\n        }\n    </script>\n</body>\n\n</html>\n"
  },
  {
    "path": "experimental/wired-icon/README.md",
    "content": "# wired-icon\n\nWebComponent which allows you to easily create Hand drawn version of any SVG Icon!\n\n![image](https://user-images.githubusercontent.com/7101875/78978100-8391f100-7b19-11ea-943f-2842e2b5ea44.png)\n\nThis library is the base for the other library **wired-mat-icon**.\n\nFor the complete set of wired-elements: [wiredjs.com](http://wiredjs.com/)\n\n## Installation\nSimply Add wired-icon to your project:\n```\nnpm i wired-icon\n```\n## Wired Icon for flexibility!\nWired Icon is converting any svg into its hand drawn, sketchy version.\n\n### Usage\nImport wired-icon definition into your HTML page:\n```html\n<script type=\"module\" src=\"wired-icon/lib/wired-icon.js\"></script>\n```\nOr into your module script:\n```javascript\nimport \"wired-icon\";\n```\n\nUse it in your web page:\n```html\n<wired-icon\n  config='{\"fillStyle\": \"zigzag\", \"fill\": \"#A4C639\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\"}'>\n  <svg width=\"70\" height=\"70\" viewBox=\"-1 -1 24 26\">\n    <path d=\"M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48A5.84 5.84 0 0 0 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31A5.983 5.983 0 0 0 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z\"/>\n  </svg>\n</wired-icon>\n```\n\n### Properties / Attributes\n\n**config** - Optional object to configure the effect. You can refer to the complete list on [roughjs wiki](https://github.com/pshihn/rough/wiki#options). You can also see the examples for inspiration.\nDefault rougness is set to 0.1, which seems to be the most appropriate value most of the time for icons.\n\n## Ligth DOM\n\n### Supported elements\nYou must provide the elements you want to convert inside an svg tag, with only one level of depth.\nValid light DOM:\n```html\n<svg viewbox='0 0 24 24'>\n  <rect x=\"3\" y=\"8\" width=\"18\" height=\"13\"></rect>\n  <rect x=\"1\" y=\"3\" width=\"22\" height=\"5\"></rect>\n  <line x1=\"10\" y1=\"12\" x2=\"14\" y2=\"12\"></line>\n</svg>\n```\n\nInvalid light DOM n°1 (no SVG tag to wrap the element):\n```html\n<circle cx=\"16.5\" cy=\"5.5\" r=\"2.5\"/>\n```\n\nInvalid light DOM n°2 (the <rect> elements inside the <g> element won't be transformed):\n```html\n<svg viewbox='0 0 24 24'>\n  <g>\n    <rect x=\"3\" y=\"8\" width=\"18\" height=\"13\"></rect>\n    <rect x=\"1\" y=\"3\" width=\"22\" height=\"5\"></rect>\n  </g>\n  <line x1=\"10\" y1=\"12\" x2=\"14\" y2=\"12\"></line>\n</svg>\n```\n\nWired Icon is able to transform the following svg tags:\n - circle\n - ellipse\n - line\n - path\n - polygon\n - polyline (/!\\ will be same result as polygon)\n - rect\nAny other tag will be included \"as is\" in the converted svg.\n\n### SVG icon sources\n\nHere is an opinionated & non exhaustive list of high quality and free icons which are compatible with wired-icon:\n\n**Google** - [Material Design SVG Icon Repo](https://github.com/google/material-design-icons/blob/master/sprites/svg-sprite). Also check wired-mat-icon to speed up tests!\n\n**Vaadin** - [Vaadin Icons](https://vaadin.com/components/vaadin-icons/html-examples)\n\n## Styling\nYou can define CSS width and height on the wired-icon element or on the svg tag to scale it.\nTo change color, prefere the config properties.\n\n\n## Extra flavours\n\n### Use inside a wired-button\n\nOf course you can use Wired Icon inside a Wired Button!\n\n```html\n<style>\n  .icon-button{\n    display: block;\n    width: 30px;\n  }\n</style>\n<wired-icon-button elevation=\"5\">\n  <wired-icon\n    class=\"icon-button\"\n    config='{\"strokeWidth\": \"0.3\", \"fill\": \"blue\", \"fillStyle\": \"cross-hatch\"}'\n  >\n    <svg viewbox=\"-1 -1 18 18\">\n      <path d=\"M9 11h-3c0-3 1.6-4 2.7-4.6 0.4-0.2 0.7-0.4 0.9-0.6 0.5-0.5 0.3-1.2 0.2-1.4-0.3-0.7-1-1.4-2.3-1.4-2.1 0-2.5 1.9-2.5 2.3l-3-0.4c0.2-1.7 1.7-4.9 5.5-4.9 2.3 0 4.3 1.3 5.1 3.2 0.7 1.7 0.4 3.5-0.8 4.7-0.5 0.5-1.1 0.8-1.6 1.1-0.9 0.5-1.2 1-1.2 2z\"/>\n      <path d=\"M9.5 14c0 1.105-0.895 2-2 2s-2-0.895-2-2c0-1.105 0.895-2 2-2s2 0.895 2 2z\"/>\n    </svg>\n  </wired-icon>\n</wired-icon-button>\n```\n\n## Accessibility\n\nWe recommand specifying an aria label in your svg for accessibility. Here is how to procede:\n\n```html\n<wired-icon class=\"icon\"\n    config='{\"fill\": \"gray\", \"fillStyle\": \"cross-hatch\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.5\", \"roughness\": \"0.1\"}'>\n    <svg viewBox=\"0 0 24 24\" aria-labelledby=\"icon-label\">\n      <title id=\"icon-label\">Icon of a pet footprint</title>\n      <circle cx=\"4.5\" cy=\"9.5\" r=\"2.5\"/>\n      <circle cx=\"9\" cy=\"5.5\" r=\"2.5\"/>\n      <circle cx=\"15\" cy=\"5.5\" r=\"2.5\"/>\n      <circle cx=\"19.5\" cy=\"9.5\" r=\"2.5\"/>\n      <path d=\"M17.34 14.86c-.87-1.02-1.6-1.89-2.48-2.91-.46-.54-1.05-1.08-1.75-1.32-.11-.04-.22-.07-.33-.09-.25-.04-.52-.04-.78-.04s-.53 0-.79.05c-.11.02-.22.05-.33.09-.7.24-1.28.78-1.75 1.32-.87 1.02-1.6 1.89-2.48 2.91-1.31 1.31-2.92 2.76-2.62 4.79.29 1.02 1.02 2.03 2.33 2.32.73.15 3.06-.44 5.54-.44h.18c2.48 0 4.81.58 5.54.44 1.31-.29 2.04-1.31 2.33-2.32.31-2.04-1.3-3.49-2.61-4.8z\"/>\n    </svg>\n  </wired-icon>\n```\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n\n#### Contributor\n\nAdrien Pennamen\n"
  },
  {
    "path": "experimental/wired-icon/package.json",
    "content": "{\n  \"name\": \"wired-icon\",\n  \"version\": \"0.0.1\",\n  \"description\": \"Sketchy version of material icon\",\n  \"keywords\": [\n    \"icon\",\n    \"icons\",\n    \"material\",\n    \"wired\"\n  ],\n  \"author\": \"apennamen <adrien.pennamen@gmail.com>\",\n  \"homepage\": \"https://github.com/wiredjs/wired-elements/tree/master/packages/wired-icon#readme\",\n  \"license\": \"MIT\",\n  \"main\": \"lib/wired-icon.js\",\n  \"directories\": {\n    \"lib\": \"lib\"\n  },\n  \"files\": [\n    \"lib\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/apennamen/wired-elements.git\"\n  },\n  \"scripts\": {\n    \"build\": \"rm -rf lib && tsc\",\n    \"tsc:watch\": \"tsc --watch\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/apennamen/wired-elements/issues\"\n  },\n  \"dependencies\": {\n    \"lit-element\": \"^2.3.1\",\n    \"wired-lib\": \"^2.0.0\"\n  }\n}"
  },
  {
    "path": "experimental/wired-icon/src/WiredIcon.ts",
    "content": "import { Options, wiredSvg } from 'wired-lib/lib/wired-lib';\nimport { LitElement, css, CSSResult, property } from 'lit-element';\n\nconst DEFAULT_CONFIG: Options = { \n  roughness: 0.1,\n};\n\nexport class WiredIcon extends LitElement {\n  @property({ type: Object, reflect: true }) config: Options = DEFAULT_CONFIG;\n\n  static get styles(): CSSResult {\n      return css`\n          :host {\n              display: block;\n          }\n        `;\n  }\n\n  connectedCallback() {\n    super.connectedCallback();\n    const svg = this.querySelector('svg');\n    if (svg) {\n      wiredSvg(svg, {...DEFAULT_CONFIG, ...this.config});\n    }\n  }\n\n  createRenderRoot() {\n    // No use for shadow DOM\n    return this;\n  }\n}\n"
  },
  {
    "path": "experimental/wired-icon/src/wired-icon.ts",
    "content": "import { customElement } from 'lit-element';\nimport { WiredIcon } from './WiredIcon';\n\n// We separate the class from its registration as a custom element,\n// so that WiredIcon class can be extended.\n// Otherwise, CustomElementRegistry would register it twice and would throw an error.\nwindow.customElements.get('wired-icon') || customElement('wired-icon')(WiredIcon);\n\nexport { WiredIcon };\n"
  },
  {
    "path": "experimental/wired-icon/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./lib\"\n  },\n  \"include\": [\n    \"./src\"\n  ]\n}\n"
  },
  {
    "path": "experimental/wired-mat-icon/CONTRIBUTING.md",
    "content": "# FAQ for maintaining wired-mat-icon\n## How to generate the iconset-full.ts ?\nGo to the generate folder and run:\n`npm run generate`\n\nIt should launch a web server on port 5000\nGo to http://localhost:5000, and you should have a textarea with the content of iconset-full.ts\n\n## What is the file not_converted.svg ?\nSome of the original SVG had more than just a simple path element.\nTherefore they were not compatible with rouhjs path, or it would have been a lot more code just to support those few icons. So they lie there, waiting for someone to find a solution for them :)\n\nSome were also having a different viewbox '0 0 26 24' instead of '0 0 24 24'.. Not worth the added code !\n"
  },
  {
    "path": "experimental/wired-mat-icon/README.md",
    "content": "# wired-mat-icon\n\nWebComponent which allows you to easily create Hand drawn version of Material Icons!\n\n![image](https://user-images.githubusercontent.com/7101875/78978100-8391f100-7b19-11ea-943f-2842e2b5ea44.png)\n\nWarning: This library will likely have a big impact on your bundle. Have fun with it, and consider optimizing with wired-icon component when you ship to production :)\n\n## Installation\nSimply Add wired-mat-icon to your project:\n```\nnpm i wired-mat-icon\n```\n\n## Wired Material Icon for fun!\nAs you can have a hard time finding the right svg path, we bundled almost all the material icons in an iconset, that ships with the library! You can refer to the complete list on the website of [material.io](https://material.io/resources/icons/).\n\n### Usage\nImport wired-mat-icon definition into your HTML page:\n```html\n<script type=\"module\" src=\"wired-mat-icon/lib/wired-mat-icon.js\"></script>\n```\nOr into your module script:\n```javascript\nimport \"wired-mat-icon\";\n```\n\nUse it in your web page:\n```html\n<wired-mat-icon\n  icon=\"android\"\n  config='{\"fillStyle\": \"zigzag\", \"fill\": \"#3B5998\", \"hachureGap\": \"1.5\", \"fillWeight\": \"0.9\"}'>\n</wired-mat-icon>\n```\n\n### Properties / Attributes\n\n**icon** - String representing a material icon. Refer to the complete list on [material.io](https://material.io/resources/icons/). It is also used for the aria label if the aria property is not defined. Note that if path is defined, this property will be ignored.\n\n**config** - Optional object to configure the effect. You can refer to the complete list on [roughjs wiki](https://github.com/pshihn/rough/wiki#options). You can also see the examples for inspiration.\nDefault rougness is set to 0.1, which seems to be the appropriate value most of the time.\n\n\n## Styling\nYou can define CSS width and height on the wired-mat-icon element to scale it.\nTo change color, use the config property.\n\n\n## Extra flavours\n### Material Look\nYou can have the material look with the following config:\n```javascript\nconst matConfig = {stroke: \"transparent\", fill: \"black\", fillStyle: \"solid\"};\n```\n```html\n<wired-mat-icon icon=\"laptop\" config=${JSON.stringify(matConfig)}></wired-mat-icon>\n```\n\n### Use inside a wired-button\nYou can use Wired Material Icon inside a Wired Button \\o/\n```html\n<wired-icon-button elevation=\"5\">\n  <wired-mat-icon icon=\"autorenew\"\n    config='{\"strokeWidth\": \"0.3\", \"fill\": \"black\"}'\n  ></wired-mat-icon>\n</wired-icon-button>\n```\n\n### Use with JavaScript\nFor example, inside a view or a custom webcomponent, you could use the properties of the wired-icon web component to handle it programatically. Property changes are reflected on the attributes.\n```html\n<wired-mat-icon id=\"modifyme\"></wired-mat-icon>\n```\n```javascript\ncustomElements.whenDefined('wired-mat-icon').then(() => {\n  const wiredMatIcon = document.getElementById('modifyme');\n  wiredMatIcon.icon = 'flash_on';\n  wiredMatIcon.config = {fill: 'red', fillWeight: 1};\n});\n```\n\n## Troubleshooting\n### I did everything right but the icon won't render, HELP !\n1. Try to set a fixed width/height with CSS on the web component. If it's Bounding Client Rect is 0, the component won't event bother rendering ;)\n2. Some few icons couldn't be included for weird technical reasons. Here is the list:\n__signal_wifi_statusbar_1_bar, signal_wifi_statusbar_2_bar, signal_wifi_statusbar_3_bar, signal_wifi_statusbar_4_bar, signal_wifi_statusbar_connected_no_internet_1, signal_wifi_statusbar_connected_no_internet, signal_wifi_statusbar_connected_no_internet_2, signal_wifi_statusbar_connected_no_internet_3, signal_wifi_statusbar_connected_no_internet_4, signal_wifi_statusbar_not_connected, signal_wifi_statusbar_null, fiber_manual_record, fiber_smart_record, pets, bubble_chart, brightness_1, pool__\n3. Ask for help in an issue!\n\n## License\n[MIT License](https://github.com/rough-stuff/wired-elements/blob/master/LICENSE) (c) [Preet Shihn](https://twitter.com/preetster)\n\n#### Contributor\n\nAdrien Pennamen\n"
  },
  {
    "path": "experimental/wired-mat-icon/generate/index.html",
    "content": "<!doctype html>\n<html lang=\"en\">\n<body>\n<style>\n\tobject {\n\t\tvisibility: hidden;\n\t\theight: 0px;\n\t\twidth: 0px;\n\t}\n</style>\n<object data=\"actions.svg\" type=\"image/svg+xml\"></object>\n<object data=\"alert.svg\" type=\"image/svg+xml\"></object>\n<object data=\"av.svg\" type=\"image/svg+xml\"></object>\n<object data=\"communication.svg\" type=\"image/svg+xml\"></object>\n<object data=\"content.svg\" type=\"image/svg+xml\"></object>\n<object data=\"device.svg\" type=\"image/svg+xml\"></object>\n<object data=\"editor.svg\" type=\"image/svg+xml\"></object>\n<object data=\"file.svg\" type=\"image/svg+xml\"></object>\n<object data=\"hardware.svg\" type=\"image/svg+xml\"></object>\n<object data=\"image.svg\" type=\"image/svg+xml\"></object>\n<object data=\"maps.svg\" type=\"image/svg+xml\"></object>\n<object data=\"navigation.svg\" type=\"image/svg+xml\"></object>\n<object data=\"notification.svg\" type=\"image/svg+xml\"></object>\n<object data=\"places.svg\" type=\"image/svg+xml\"></object>\n<object data=\"social.svg\" type=\"image/svg+xml\"></object>\n\n<p>Write the content of this textarea to file iconset-full.ts</p>\n<textarea id=\"result\" style=\"width: 100%; height:200px;\"></textarea>\n\n<script>\n\tconst resultArea = document.getElementById('result');\n\tresultArea.value = \"import { SvgIconSet } from './index';export const ICON_SET: SvgIconSet = {\";\n\tconst source = document.getElementsByTagName('object');\n\tlet counter = 0;\n\n\tconst retrievePaths = function(object) {\n\t\tcounter++;\n\t\tconst icons = object.contentDocument.firstElementChild.getElementsByTagName('svg');\n\t\t\n\t\t// All the id in the doc follow this format\n\t\tconst regex = /ic_(.*)_24px/;\n\t\t// We want to retrieve the following attributes from the svg\n\t\t// The viewBox attribute is (*almost*) always \"0 0 24 24\" so we don't take it\n\t\t// Width and height are always 24 so we don't take them\n\t\t// x and y attributes are not interesting... \n\t\t// So finally all we want is the path :) \n\t\tconst result = {};\n\n\t\tfor (icon of icons) {\n\t\t\tconst id = regex.exec(icon.getAttribute('id'))[1];\n\t\t\tresult[id] = icon.lastElementChild.getAttribute('d');\n\t\t}\n\t\t\n\t\tlet stringValue = JSON.stringify(result);\n\t\tstringValue = stringValue.substring(1, stringValue.length -1);\n\n\t\tif (counter === source.length) {\n\t\t\tstringValue += '};';\n\t\t} else {\n\t\t\tstringValue += ',';\n\t\t}\n\t\tresultArea.value += stringValue;\n\t}\n\n\tfor (let object of source) {\n\t\tobject.addEventListener('load', () => retrievePaths(object))\n\t}\n\n</script>\n</body>\n</html>\n"
  },
  {
    "path": "experimental/wired-mat-icon/package.json",
    "content": "{\n  \"name\": \"wired-mat-icon\",\n  \"version\": \"0.0.1\",\n  \"description\": \"Sketchy material icon component and iconset\",\n  \"keywords\": [\n    \"Wired\",\n    \"material\",\n    \"icon\"\n  ],\n  \"author\": \"apennamen <adrien.pennamen@gmail.com>\",\n  \"homepage\": \"https://github.com/wiredjs/wired-elements/tree/master/packages/wired-mat-icon#readme\",\n  \"license\": \"MIT\",\n  \"main\": \"lib/wired-mat-icon.js\",\n  \"directories\": {\n    \"lib\": \"lib\",\n    \"test\": \"__tests__\"\n  },\n  \"files\": [\n    \"lib\"\n  ],\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/wiredjs/wired-elements.git\"\n  },\n  \"scripts\": {\n    \"build\": \"rm -rf lib && tsc\",\n    \"tsc:watch\": \"tsc --watch\",\n    \"generate\": \"serve ./generate\"\n  },\n  \"bugs\": {\n    \"url\": \"https://github.com/wiredjs/wired-elements/issues\"\n  },\n  \"dependencies\": {\n    \"lit-element\": \"^2.3.1\",\n    \"wired-icon\": \"^0.0.1\"\n  },\n  \"devDependencies\": {\n    \"serve\": \"^11.3.0\"\n  }\n}"
  },
  {
    "path": "experimental/wired-mat-icon/src/WiredMatIcon.ts",
    "content": "import { property, LitElement, html, TemplateResult, css } from 'lit-element';\nimport 'wired-icon';\nimport { iconsetLoader } from './iconset';\nimport { ICON_SET } from './iconset/iconset-full';\n\nconst findSvgPath = iconsetLoader(ICON_SET);\n\nexport class WiredMatIcon extends LitElement {\nstatic get styles() {\n  return css`\n    :host {\n      display: block;\n    }\n  `;\n}\n\n  private _icon: string = '';\n  private _path: string = '';\n\n  @property({ type: Object, reflect: true }) config: Object = {};\n\n  @property({ type: String, reflect: true })\n  get icon(): string {\n    return this._icon;\n  }\n\n  set icon(value: string) {\n    this._icon = value;\n    this._path = findSvgPath(this.icon);\n  }\n\n  render(): TemplateResult {\n    return html`\n      <wired-icon .config=${this.config}>\n        <svg viewbox=\"-1 -1 24 26\" aria-labelledby=\"title\">\n          <title id=\"title\">${this.icon}</title>\n          <path d=\"${this._path}\"/>\n        </svg>\n      </wired-icon>\n    `;\n  }\n}\n"
  },
  {
    "path": "experimental/wired-mat-icon/src/iconset/iconset-full.ts",
    "content": "import { SvgIconSet } from './index';\nexport const ICON_SET: SvgIconSet = {\"adb\":\"M5 16c0 3.87 3.13 7 7 7s7-3.13 7-7v-4H5v4zM16.12 4.37l2.1-2.1-.82-.83-2.3 2.31C14.16 3.28 13.12 3 12 3s-2.16.28-3.09.75L6.6 1.44l-.82.83 2.1 2.1C6.14 5.64 5 7.68 5 10v1h14v-1c0-2.32-1.14-4.36-2.88-5.63zM9 9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\",\"airline_seat_flat\":\"M22 11v2H9V7h9a4 4 0 0 1 4 4zM2 14v2h6v2h8v-2h6v-2H2zm5.14-1.9a3 3 0 0 0-.04-4.24 3 3 0 0 0-4.24.04 3 3 0 0 0 .04 4.24 3 3 0 0 0 4.24-.04z\",\"airline_seat_flat_angled\":\"M22.25 14.29l-.69 1.89L9.2 11.71l2.08-5.66 8.56 3.09a4 4 0 0 1 2.41 5.15zM1.5 12.14L8 14.48V19h8v-1.63L20.52 19l.69-1.89-19.02-6.86-.69 1.89zm5.8-1.94a3.01 3.01 0 0 0 1.41-4A3.005 3.005 0 0 0 4.7 4.8a2.99 2.99 0 0 0-1.4 4 2.99 2.99 0 0 0 4 1.4z\",\"airline_seat_individual_suite\":\"M7 13c1.65 0 3-1.35 3-3S8.65 7 7 7s-3 1.35-3 3 1.35 3 3 3zm12-6h-8v7H3V7H1v10h22v-6a4 4 0 0 0-4-4z\",\"airline_seat_legroom_extra\":\"M4 12V3H2v9c0 2.76 2.24 5 5 5h6v-2H7c-1.66 0-3-1.34-3-3zm18.83 5.24c-.38-.72-1.29-.97-2.03-.63l-1.09.5-3.41-6.98a2.01 2.01 0 0 0-1.79-1.12L11 9V3H5v8c0 1.66 1.34 3 3 3h7l3.41 7 3.72-1.7c.77-.36 1.1-1.3.7-2.06z\",\"airline_seat_legroom_normal\":\"M5 12V3H3v9c0 2.76 2.24 5 5 5h6v-2H8c-1.66 0-3-1.34-3-3zm15.5 6H19v-7c0-1.1-.9-2-2-2h-5V3H6v8c0 1.65 1.35 3 3 3h7v7h4.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5z\",\"airline_seat_legroom_reduced\":\"M19.97 19.2c.18.96-.55 1.8-1.47 1.8H14v-3l1-4H9c-1.65 0-3-1.35-3-3V3h6v6h5c1.1 0 2 .9 2 2l-2 7h1.44c.73 0 1.39.49 1.53 1.2zM5 12V3H3v9c0 2.76 2.24 5 5 5h4v-2H8c-1.66 0-3-1.34-3-3z\",\"airline_seat_recline_extra\":\"M5.35 5.64c-.9-.64-1.12-1.88-.49-2.79a2.01 2.01 0 0 1 2.79-.49c.9.64 1.12 1.88.49 2.79-.64.9-1.88 1.12-2.79.49zM16 19H8.93a2.99 2.99 0 0 1-2.96-2.54L4 7H2l1.99 9.76A5.01 5.01 0 0 0 8.94 21H16v-2zm.23-4h-4.88l-1.03-4.1c1.58.89 3.28 1.54 5.15 1.22V9.99c-1.63.31-3.44-.27-4.69-1.25L9.14 7.47c-.23-.18-.49-.3-.76-.38a2.21 2.21 0 0 0-.99-.06h-.02a2.268 2.268 0 0 0-1.84 2.61l1.35 5.92A3.008 3.008 0 0 0 9.83 18h6.85l3.82 3 1.5-1.5-5.77-4.5z\",\"airline_seat_recline_normal\":\"M7.59 5.41c-.78-.78-.78-2.05 0-2.83.78-.78 2.05-.78 2.83 0 .78.78.78 2.05 0 2.83-.79.79-2.05.79-2.83 0zM6 16V7H4v9c0 2.76 2.24 5 5 5h6v-2H9c-1.66 0-3-1.34-3-3zm14 4.07L14.93 15H11.5v-3.68c1.4 1.15 3.6 2.16 5.5 2.16v-2.16c-1.66.02-3.61-.87-4.67-2.04l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C8.01 7 7 8.01 7 9.25V15c0 1.66 1.34 3 3 3h5.07l3.5 3.5L20 20.07z\",\"bluetooth_audio\":\"M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2a9.936 9.936 0 0 0 1.54-5.31c-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z\",\"confirmation_number\":\"M22 10V6a2 2 0 0 0-2-2H4c-1.1 0-1.99.89-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2s.9-2 2-2zm-9 7.5h-2v-2h2v2zm0-4.5h-2v-2h2v2zm0-4.5h-2v-2h2v2z\",\"disc_full\":\"M20 16h2v-2h-2v2zm0-9v5h2V7h-2zM10 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 10c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"do_not_disturb\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\",\"do_not_disturb_alt\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM4 12c0-4.4 3.6-8 8-8 1.8 0 3.5.6 4.9 1.7L5.7 16.9A7.88 7.88 0 0 1 4 12zm8 8c-1.8 0-3.5-.6-4.9-1.7L18.3 7.1C19.4 8.5 20 10.2 20 12c0 4.4-3.6 8-8 8z\",\"do_not_disturb_off\":\"M17 11v2h-1.46l4.68 4.68A9.92 9.92 0 0 0 22 12c0-5.52-4.48-10-10-10-2.11 0-4.07.66-5.68 1.78L13.54 11H17zM2.27 2.27L1 3.54l2.78 2.78A9.92 9.92 0 0 0 2 12c0 5.52 4.48 10 10 10 2.11 0 4.07-.66 5.68-1.78L20.46 23l1.27-1.27L11 11 2.27 2.27zM7 13v-2h1.46l2 2H7z\",\"do_not_disturb_on\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\",\"drive_eta\":\"M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z\",\"enhanced_encryption\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM16 16h-3v3h-2v-3H8v-2h3v-3h2v3h3v2z\",\"event_available\":\"M16.53 11.06L15.47 10l-4.88 4.88-2.12-2.12-1.06 1.06L10.59 17l5.94-5.94zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z\",\"event_busy\":\"M9.31 17l2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11z\",\"event_note\":\"M17 10H7v2h10v-2zm2-7h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zm-5-5H7v2h7v-2z\",\"folder_special\":\"M20 6h-8l-2-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-2.06 11L15 15.28 12.06 17l.78-3.33-2.59-2.24 3.41-.29L15 8l1.34 3.14 3.41.29-2.59 2.24.78 3.33z\",\"live_tv\":\"M21 6h-7.59l3.29-3.29L16 2l-4 4-4-4-.71.71L10.59 6H3a2 2 0 0 0-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8a2 2 0 0 0-2-2zm0 14H3V8h18v12zM9 10v8l7-4z\",\"mms\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 14l3.5-4.5 2.5 3.01L14.5 8l4.5 6H5z\",\"more\":\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.97.89 1.66.89H22c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 13.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"network_check\":\"M15.9 5c-.17 0-.32.09-.41.23l-.07.15-5.18 11.65c-.16.29-.26.61-.26.96 0 1.11.9 2.01 2.01 2.01.96 0 1.77-.68 1.96-1.59l.01-.03L16.4 5.5c0-.28-.22-.5-.5-.5zM1 9l2 2c2.88-2.88 6.79-4.08 10.53-3.62l1.19-2.68C9.89 3.84 4.74 5.27 1 9zm20 2l2-2a15.367 15.367 0 0 0-5.59-3.57l-.53 2.82c1.5.62 2.9 1.53 4.12 2.75zm-4 4l2-2c-.8-.8-1.7-1.42-2.66-1.89l-.55 2.92c.42.27.83.59 1.21.97zM5 13l2 2a7.1 7.1 0 0 1 4.03-2l1.28-2.88c-2.63-.08-5.3.87-7.31 2.88z\",\"network_locked\":\"M19.5 10c.17 0 .33.03.5.05V1L1 20h13v-3c0-.89.39-1.68 1-2.23v-.27c0-2.48 2.02-4.5 4.5-4.5zm2.5 6v-1.5a2.5 2.5 0 0 0-5 0V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z\",\"no_encryption\":\"M21 21.78L4.22 5 3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12c.23 0 .45-.05.66-.12L19.78 23 21 21.78zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H9.66L20 18.34V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.56 0-4.64 1.93-4.94 4.4L8.9 7.24V6z\",\"ondemand_video\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z\",\"personal_video\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12z\",\"phone_bluetooth_speaker\":\"M14.71 9.5L17 7.21V11h.5l2.85-2.85L18.21 6l2.15-2.15L17.5 1H17v3.79L14.71 2.5l-.71.71L16.79 6 14 8.79l.71.71zM18 2.91l.94.94-.94.94V2.91zm0 4.3l.94.94-.94.94V7.21zm2 8.29c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z\",\"phone_forwarded\":\"M18 11l5-5-5-5v3h-4v4h4v3zm2 4.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z\",\"phone_in_talk\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 12h2a9 9 0 0 0-9-9v2c3.87 0 7 3.13 7 7zm-4 0h2c0-2.76-2.24-5-5-5v2c1.66 0 3 1.34 3 3z\",\"phone_locked\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM20 4v-.5a2.5 2.5 0 0 0-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4z\",\"phone_missed\":\"M6.5 5.5L12 11l7-7-1-1-6 6-4.5-4.5H11V3H5v6h1.5V5.5zm17.21 11.17A16.97 16.97 0 0 0 12 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71s.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73 1.6 0 3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.67 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71s-.12-.52-.3-.7z\",\"phone_paused\":\"M17 3h-2v7h2V3zm3 12.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21a.96.96 0 0 0 .25-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 3v7h2V3h-2z\",\"power\":\"M16.01 7L16 3h-2v4h-4V3H8v4h-.01C7 6.99 6 7.99 6 8.99v5.49L9.5 18v3h5v-3l3.5-3.51v-5.5c0-1-1-2-1.99-1.99z\",\"priority_high\":\"M10 3h4v12h-4z\",\"rv_hookup\":\"M20 17v-6c0-1.1-.9-2-2-2H7V7l-3 3 3 3v-2h4v3H4v3c0 1.1.9 2 2 2h2c0 1.66 1.34 3 3 3s3-1.34 3-3h8v-2h-2zm-9 3c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm7-6h-4v-3h4v3zM17 2v2H9v2h8v2l3-3z\",\"sd_card\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\",\"sim_card_alert\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 15h-2v-2h2v2zm0-4h-2V8h2v5z\",\"sms\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z\",\"sms_failed\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z\",\"sync\":\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\",\"sync_disabled\":\"M10 6.35V4.26c-.8.21-1.55.54-2.23.96l1.46 1.46c.25-.12.5-.24.77-.33zm-7.14-.94l2.36 2.36a7.925 7.925 0 0 0 1.14 9.87L4 20h6v-6l-2.24 2.24A6.003 6.003 0 0 1 6 12c0-1 .25-1.94.68-2.77l8.08 8.08c-.25.13-.5.25-.77.34v2.09c.8-.21 1.55-.54 2.23-.96l2.36 2.36 1.27-1.27L4.14 4.14 2.86 5.41zM20 4h-6v6l2.24-2.24A6.003 6.003 0 0 1 18 12c0 1-.25 1.94-.68 2.77l1.46 1.46a7.925 7.925 0 0 0-1.14-9.87L20 4z\",\"sync_problem\":\"M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24A6.003 6.003 0 0 1 5 12a5.99 5.99 0 0 1 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24A6.003 6.003 0 0 1 19 12a5.99 5.99 0 0 1-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z\",\"system_update\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14zm-1-6h-3V8h-2v5H8l4 4 4-4z\",\"tap_and_play\":\"M2 16v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0 4v3h3c0-1.66-1.34-3-3-3zm0-8v2a9 9 0 0 1 9 9h2c0-6.08-4.92-11-11-11zM17 1.01L7 1c-1.1 0-2 .9-2 2v7.37c.69.16 1.36.37 2 .64V5h10v13h-3.03c.52 1.25.84 2.59.95 4H17c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99z\",\"time_to_leave\":\"M18.92 5.01C18.72 4.42 18.16 4 17.5 4h-11c-.66 0-1.21.42-1.42 1.01L3 11v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 15c-.83 0-1.5-.67-1.5-1.5S5.67 12 6.5 12s1.5.67 1.5 1.5S7.33 15 6.5 15zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 10l1.5-4.5h11L19 10H5z\",\"vibration\":\"M0 15h2V9H0v6zm3 2h2V7H3v10zm19-8v6h2V9h-2zm-3 8h2V7h-2v10zM16.5 3h-9C6.67 3 6 3.67 6 4.5v15c0 .83.67 1.5 1.5 1.5h9c.83 0 1.5-.67 1.5-1.5v-15c0-.83-.67-1.5-1.5-1.5zM16 19H8V5h8v14z\",\"voice_chat\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12l-4-3.2V14H6V6h8v3.2L18 6v8z\",\"vpn_lock\":\"M22 4v-.5a2.5 2.5 0 0 0-5 0V4c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V5c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V4zm-2.28 8c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H7v-2h2c.55 0 1-.45 1-1V8h2c1.1 0 2-.9 2-2V3.46c-.95-.3-1.95-.46-3-.46C5.48 3 1 7.48 1 13s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM10 20.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L8 16v1c0 1.1.9 2 2 2v1.93z\",\"wc\":\"M5.5 22v-7.5H4V9c0-1.1.9-2 2-2h3c1.1 0 2 .9 2 2v5.5H9.5V22h-4zM18 22v-6h3l-2.54-7.63A2.01 2.01 0 0 0 16.56 7h-.12a2 2 0 0 0-1.9 1.37L12 16h3v6h3zM7.5 6c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2zm9 0c1.11 0 2-.89 2-2s-.89-2-2-2-2 .89-2 2 .89 2 2 2z\",\"wifi\":\"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3a4.237 4.237 0 0 0-6 0zm-4-4l2 2a7.074 7.074 0 0 1 10 0l2-2C15.14 9.14 8.87 9.14 5 13z\",\"add_a_photo\":\"M3 4V1h2v3h3v2H5v3H3V6H0V4h3zm3 6V7h3V4h7l1.83 2H21c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V10h3zm7 9c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-3.2-5c0 1.77 1.43 3.2 3.2 3.2s3.2-1.43 3.2-3.2-1.43-3.2-3.2-3.2-3.2 1.43-3.2 3.2z\",\"add_to_photos\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z\",\"adjust\":\"M12 2C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm3-8c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3z\",\"assistant\":\"M19 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5.12 10.88L12 17l-1.88-4.12L6 11l4.12-1.88L12 5l1.88 4.12L18 11l-4.12 1.88z\",\"assistant_photo\":\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\",\"audiotrack\":\"M12 3v9.28a4.39 4.39 0 0 0-1.5-.28C8.01 12 6 14.01 6 16.5S8.01 21 10.5 21c2.31 0 4.2-1.75 4.45-4H15V6h4V3h-7z\",\"blur_circular\":\"M10 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM7 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-3-3c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm3-6c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-1.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm3 6c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-4c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm2-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-3.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\",\"blur_linear\":\"M5 17.5c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 13c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zM3 21h18v-2H3v2zM5 9.5c.83 0 1.5-.67 1.5-1.5S5.83 6.5 5 6.5 3.5 7.17 3.5 8 4.17 9.5 5 9.5zm0 4c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5.67 1.5 1.5 1.5zM9 17c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8-.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM3 3v2h18V3H3zm14 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm0 4c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM13 9c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1z\",\"blur_off\":\"M14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-.2 4.48l.2.02c.83 0 1.5-.67 1.5-1.5s-.67-1.5-1.5-1.5-1.5.67-1.5 1.5l.02.2c.09.67.61 1.19 1.28 1.28zM14 3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-4 0c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm11 7c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm8 8c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-4c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm-4 13.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM2.5 5.27l3.78 3.78L6 9c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l2.81 2.81c-.71.11-1.25.73-1.25 1.47 0 .83.67 1.5 1.5 1.5.74 0 1.36-.54 1.47-1.25l2.81 2.81A.875.875 0 0 0 14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1c0-.1-.03-.19-.06-.28l3.78 3.78L20 20.23 3.77 4 2.5 5.27zM10 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm11-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zM3 9.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 11c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3-3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5z\",\"blur_on\":\"M6 13c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm-3 .5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM6 5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm15 5.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM14 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0-3.5c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zm-11 10c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm7 7c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm0-17c.28 0 .5-.22.5-.5s-.22-.5-.5-.5-.5.22-.5.5.22.5.5.5zM10 7c.55 0 1-.45 1-1s-.45-1-1-1-1 .45-1 1 .45 1 1 1zm0 5.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm8 .5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-8c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0-4c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm3 8.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zM14 17c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm0 3.5c-.28 0-.5.22-.5.5s.22.5.5.5.5-.22.5-.5-.22-.5-.5-.5zm-4-12c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0 8.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1zm4-4.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-4c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\",\"brightness_2\":\"M10 2c-1.82 0-3.53.5-5 1.35C7.99 5.08 10 8.3 10 12s-2.01 6.92-5 8.65C6.47 21.5 8.18 22 10 22c5.52 0 10-4.48 10-10S15.52 2 10 2z\",\"brightness_3\":\"M9 2c-1.05 0-2.05.16-3 .46 4.06 1.27 7 5.06 7 9.54 0 4.48-2.94 8.27-7 9.54.95.3 1.95.46 3 .46 5.52 0 10-4.48 10-10S14.52 2 9 2z\",\"brightness_4\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\",\"brightness_5\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\",\"brightness_6\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\",\"brightness_7\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\",\"broken_image\":\"M21 5v6.59l-3-3.01-4 4.01-4-4-4 4-3-3.01V5c0-1.1.9-2 2-2h14c1.1 0 2 .9 2 2zm-3 6.42l3 3.01V19c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2v-6.58l3 2.99 4-4 4 4 4-3.99z\",\"brush\":\"M7 14c-1.66 0-3 1.34-3 3 0 1.31-1.16 2-2 2 .92 1.22 2.49 2 4 2a4 4 0 0 0 4-4c0-1.66-1.34-3-3-3zm13.71-9.37l-1.34-1.34a.996.996 0 0 0-1.41 0L9 12.25 11.75 15l8.96-8.96a.996.996 0 0 0 0-1.41z\",\"burst_mode\":\"M1 5h2v14H1zm4 0h2v14H5zm17 0H10c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM11 17l2.5-3.15L15.29 16l2.5-3.22L21 17H11z\",\"camera\":\"M9.4 10.5l4.77-8.26a9.984 9.984 0 0 0-8.49 2.01l3.66 6.35.06-.1zM21.54 9c-.92-2.92-3.15-5.26-6-6.34L11.88 9h9.66zm.26 1h-7.49l.29.5 4.76 8.25A9.91 9.91 0 0 0 22 12c0-.69-.07-1.35-.2-2zM8.54 12l-3.9-6.75A9.958 9.958 0 0 0 2.2 14h7.49l-1.15-2zm-6.08 3c.92 2.92 3.15 5.26 6 6.34L12.12 15H2.46zm11.27 0l-3.9 6.76a9.984 9.984 0 0 0 8.49-2.01l-3.66-6.35-.93 1.6z\",\"camera_alt\":\"M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\",\"camera_front\":\"M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zM12 8c1.1 0 2-.9 2-2s-.9-2-2-2-1.99.9-1.99 2S10.9 8 12 8zm5-8H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM7 2h10v10.5c0-1.67-3.33-2.5-5-2.5s-5 .83-5 2.5V2z\",\"camera_rear\":\"M10 20H5v2h5v2l3-3-3-3v2zm4 0v2h5v-2h-5zm3-20H7C5.9 0 5 .9 5 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zm-5 6c-1.11 0-2-.9-2-2s.89-2 1.99-2 2 .9 2 2C14 5.1 13.1 6 12 6z\",\"camera_roll\":\"M14 5c0-1.1-.9-2-2-2h-1V2c0-.55-.45-1-1-1H6c-.55 0-1 .45-1 1v1H4c-1.1 0-2 .9-2 2v15c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2h8V5h-8zm-2 13h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2zm4 9h-2v-2h2v2zm0-9h-2V7h2v2z\",\"center_focus_strong\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-7 7H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4z\",\"center_focus_weak\":\"M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"collections\":\"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z\",\"collections_bookmark\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 10l-2.5-1.5L15 12V4h5v8z\",\"color_lens\":\"M12 3a9 9 0 0 0 0 18c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"colorize\":\"M20.71 5.63l-2.34-2.34a.996.996 0 0 0-1.41 0l-3.12 3.12-1.93-1.91-1.41 1.41 1.42 1.42L3 16.25V21h4.75l8.92-8.92 1.42 1.42 1.41-1.41-1.92-1.92 3.12-3.12a1 1 0 0 0 .01-1.42zM6.92 19L5 17.08l8.06-8.06 1.92 1.92L6.92 19z\",\"compare\":\"M10 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h5v2h2V1h-2v2zm0 15H5l5-6v6zm9-15h-5v2h5v13l-5-6v9h5c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\",\"control_point\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10 10-4.49 10-10S17.51 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"control_point_duplicate\":\"M16 8h-2v3h-3v2h3v3h2v-3h3v-2h-3zM2 12c0-2.79 1.64-5.2 4.01-6.32V3.52C2.52 4.76 0 8.09 0 12s2.52 7.24 6.01 8.48v-2.16A6.99 6.99 0 0 1 2 12zm13-9c-4.96 0-9 4.04-9 9s4.04 9 9 9 9-4.04 9-9-4.04-9-9-9zm0 16c-3.86 0-7-3.14-7-7s3.14-7 7-7 7 3.14 7 7-3.14 7-7 7z\",\"crop_16_9\":\"M19 6H5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H5V8h14v8z\",\"crop\":\"M17 15h2V7c0-1.1-.9-2-2-2H9v2h8v8zM7 17V1H5v4H1v2h4v10c0 1.1.9 2 2 2h10v4h2v-4h4v-2H7z\",\"crop_3_2\":\"M19 4H5c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H5V6h14v12z\",\"crop_5_4\":\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z\",\"crop_7_5\":\"M19 7H5c-1.1 0-2 .9-2 2v6c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm0 8H5V9h14v6z\",\"crop_din\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\",\"crop_free\":\"M3 5v4h2V5h4V3H5c-1.1 0-2 .9-2 2zm2 10H3v4c0 1.1.9 2 2 2h4v-2H5v-4zm14 4h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zm0-16h-4v2h4v4h2V5c0-1.1-.9-2-2-2z\",\"crop_landscape\":\"M19 5H5c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 12H5V7h14v10z\",\"crop_original\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zm-5.04-6.71l-2.75 3.54-1.96-2.36L6.5 17h11l-3.54-4.71z\",\"crop_portrait\":\"M17 3H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H7V5h10v14z\",\"crop_rotate\":\"M7.47 21.49C4.2 19.93 1.86 16.76 1.5 13H0c.51 6.16 5.66 11 11.95 11 .23 0 .44-.02.66-.03L8.8 20.15l-1.33 1.34zM12.05 0c-.23 0-.44.02-.66.04l3.81 3.81 1.33-1.33C19.8 4.07 22.14 7.24 22.5 11H24c-.51-6.16-5.66-11-11.95-11zM16 14h2V8a2 2 0 0 0-2-2h-6v2h6v6zm-8 2V4H6v2H4v2h2v8a2 2 0 0 0 2 2h8v2h2v-2h2v-2H8z\",\"crop_square\":\"M18 4H6c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H6V6h12v12z\",\"dehaze\":\"M2 15.5v2h20v-2H2zm0-5v2h20v-2H2zm0-5v2h20v-2H2z\",\"details\":\"M3 4l9 16 9-16H3zm3.38 2h11.25L12 16 6.38 6z\",\"edit\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\",\"exposure\":\"M15 17v2h2v-2h2v-2h-2v-2h-2v2h-2v2h2zm5-15H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM5 5h6v2H5V5zm15 15H4L20 4v16z\",\"exposure_neg_1\":\"M4 11v2h8v-2H4zm15 7h-2V7.38L14 8.4V6.7L18.7 5h.3v13z\",\"exposure_neg_2\":\"M15.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17s.19-.79.19-1.18c0-.53-.09-1.02-.27-1.46a2.94 2.94 0 0 0-.78-1.11c-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0 0 16.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H21v-1.71h-5.95zM2 11v2h8v-2H2z\",\"exposure_plus_1\":\"M10 7H8v4H4v2h4v4h2v-4h4v-2h-4V7zm10 11h-2V7.38L15 8.4V6.7L19.7 5h.3v13z\",\"exposure_plus_2\":\"M16.05 16.29l2.86-3.07c.38-.39.72-.79 1.04-1.18.32-.39.59-.78.82-1.17.23-.39.41-.78.54-1.17.13-.39.19-.79.19-1.18 0-.53-.09-1.02-.27-1.46a2.94 2.94 0 0 0-.78-1.11c-.34-.31-.77-.54-1.26-.71A5.72 5.72 0 0 0 17.47 5c-.69 0-1.31.11-1.85.32-.54.21-1 .51-1.36.88-.37.37-.65.8-.84 1.3-.18.47-.27.97-.28 1.5h2.14c.01-.31.05-.6.13-.87.09-.29.23-.54.4-.75.18-.21.41-.37.68-.49.27-.12.6-.18.96-.18.31 0 .58.05.81.15.23.1.43.25.59.43.16.18.28.4.37.65.08.25.13.52.13.81 0 .22-.03.43-.08.65-.06.22-.15.45-.29.7-.14.25-.32.53-.56.83-.23.3-.52.65-.88 1.03l-4.17 4.55V18H22v-1.71h-5.95zM8 7H6v4H2v2h4v4h2v-4h4v-2H8V7z\",\"exposure_zero\":\"M16.14 12.5c0 1-.1 1.85-.3 2.55-.2.7-.48 1.27-.83 1.7-.36.44-.79.75-1.3.95-.51.2-1.07.3-1.7.3-.62 0-1.18-.1-1.69-.3-.51-.2-.95-.51-1.31-.95-.36-.44-.65-1.01-.85-1.7-.2-.7-.3-1.55-.3-2.55v-2.04c0-1 .1-1.85.3-2.55.2-.7.48-1.26.84-1.69.36-.43.8-.74 1.31-.93C10.81 5.1 11.38 5 12 5c.63 0 1.19.1 1.7.29.51.19.95.5 1.31.93.36.43.64.99.84 1.69.2.7.3 1.54.3 2.55v2.04zm-2.11-2.36c0-.64-.05-1.18-.13-1.62-.09-.44-.22-.79-.4-1.06-.17-.27-.39-.46-.64-.58-.25-.13-.54-.19-.86-.19-.32 0-.61.06-.86.18s-.47.31-.64.58c-.17.27-.31.62-.4 1.06s-.13.98-.13 1.62v2.67c0 .64.05 1.18.14 1.62.09.45.23.81.4 1.09s.39.48.64.61.54.19.87.19c.33 0 .62-.06.87-.19s.46-.33.63-.61c.17-.28.3-.64.39-1.09.09-.45.13-.99.13-1.62v-2.66z\",\"filter_1\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 10h2V5h-4v2h2v8zm7-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\",\"filter\":\"M15.96 10.29l-2.75 3.54-1.96-2.36L8.5 15h11l-3.54-4.71zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\",\"filter_2\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-4-4h-4v-2h2a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-4v2h4v2h-2a2 2 0 0 0-2 2v4h6v-2z\",\"filter_3\":\"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 0 0-2-2h-4v2h4v2h-2v2h2v2h-4v2h4a2 2 0 0 0 2-2z\",\"filter_4\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm12 10h2V5h-2v4h-2V5h-2v6h4v4zm6-14H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\",\"filter_5\":\"M21 1H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm14 8v-2a2 2 0 0 0-2-2h-2V7h4V5h-6v6h4v2h-4v2h4a2 2 0 0 0 2-2z\",\"filter_6\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 0 0 2-2v-2a2 2 0 0 0-2-2h-2V7h4V5h-4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2zm0-4h2v2h-2v-2z\",\"filter_7\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2l4-8V5h-6v2h4l-4 8h2z\",\"filter_8\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zm-8-2h2a2 2 0 0 0 2-2v-1.5c0-.83-.67-1.5-1.5-1.5.83 0 1.5-.67 1.5-1.5V7a2 2 0 0 0-2-2h-2a2 2 0 0 0-2 2v1.5c0 .83.67 1.5 1.5 1.5-.83 0-1.5.67-1.5 1.5V13a2 2 0 0 0 2 2zm0-8h2v2h-2V7zm0 4h2v2h-2v-2z\",\"filter_9\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14zM15 5h-2a2 2 0 0 0-2 2v2a2 2 0 0 0 2 2h2v2h-4v2h4a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2zm0 4h-2V7h2v2z\",\"filter_9_plus\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm11 7V8a2 2 0 0 0-2-2h-1a2 2 0 0 0-2 2v1a2 2 0 0 0 2 2h1v1H9v2h3a2 2 0 0 0 2-2zm-3-3V8h1v1h-1zm10-8H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 8h-2V7h-2v2h-2v2h2v2h2v-2h2v6H7V3h14v6z\",\"filter_b_and_w\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16l-7-8v8H5l7-8V5h7v14z\",\"filter_center_focus\":\"M5 15H3v4c0 1.1.9 2 2 2h4v-2H5v-4zM5 5h4V3H5c-1.1 0-2 .9-2 2v4h2V5zm14-2h-4v2h4v4h2V5c0-1.1-.9-2-2-2zm0 16h-4v2h4c1.1 0 2-.9 2-2v-4h-2v4zM12 9c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\",\"filter_drama\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4a7.48 7.48 0 0 0-6.64 4.04A5.996 5.996 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4h2c0-2.76-1.86-5.08-4.4-5.78C8.61 6.88 10.2 6 12 6c3.03 0 5.5 2.47 5.5 5.5v.5H19c1.65 0 3 1.35 3 3s-1.35 3-3 3z\",\"filter_frames\":\"M20 4h-4l-4-4-4 4H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H4V6h4.52l3.52-3.5L15.52 6H20v14zM18 8H6v10h12\",\"filter_hdr\":\"M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z\",\"filter_none\":\"M3 5H1v16c0 1.1.9 2 2 2h16v-2H3V5zm18-4H7c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 16H7V3h14v14z\",\"filter_tilt_shift\":\"M11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.94 7.94 0 0 1 11 4.07zm7.32.19A9.95 9.95 0 0 0 13 2.05v2.02c1.46.18 2.79.76 3.9 1.62l1.42-1.43zM19.93 11h2.02c-.2-2.01-1-3.84-2.21-5.32L18.31 7.1a7.94 7.94 0 0 1 1.62 3.9zM5.69 7.1L4.26 5.68A9.95 9.95 0 0 0 2.05 11h2.02a7.94 7.94 0 0 1 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 0 1 4.07 13zM15 12c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3 3-1.34 3-3zm3.31 4.9l1.43 1.43a9.98 9.98 0 0 0 2.21-5.32h-2.02a7.945 7.945 0 0 1-1.62 3.89zM13 19.93v2.02c2.01-.2 3.84-1 5.32-2.21l-1.43-1.43c-1.1.86-2.43 1.44-3.89 1.62zm-7.32-.19A9.98 9.98 0 0 0 11 21.95v-2.02a7.94 7.94 0 0 1-3.9-1.62l-1.42 1.43z\",\"filter_vintage\":\"M18.7 12.4a6.06 6.06 0 0 0-.86-.4c.29-.11.58-.24.86-.4a6.012 6.012 0 0 0 3-5.19 6.007 6.007 0 0 0-6 0c-.28.16-.54.35-.78.54.05-.31.08-.63.08-.95 0-2.22-1.21-4.15-3-5.19C10.21 1.85 9 3.78 9 6c0 .32.03.64.08.95-.24-.2-.5-.39-.78-.55a6.008 6.008 0 0 0-6 0 5.97 5.97 0 0 0 3 5.19c.28.16.57.29.86.4-.29.11-.58.24-.86.4a6.012 6.012 0 0 0-3 5.19 6.007 6.007 0 0 0 6 0c.28-.16.54-.35.78-.54-.05.32-.08.64-.08.96 0 2.22 1.21 4.15 3 5.19 1.79-1.04 3-2.97 3-5.19 0-.32-.03-.64-.08-.95.24.2.5.38.78.54a6.008 6.008 0 0 0 6 0 6.012 6.012 0 0 0-3-5.19zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\",\"flare\":\"M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z\",\"flash_auto\":\"M3 2v12h3v9l7-12H9l4-9H3zm16 0h-2l-3.2 9h1.9l.7-2h3.2l.7 2h1.9L19 2zm-2.15 5.65L18 4l1.15 3.65h-2.3z\",\"flash_off\":\"M3.27 3L2 4.27l5 5V13h3v9l3.58-6.14L17.73 20 19 18.73 3.27 3zM17 10h-4l4-8H7v2.18l8.46 8.46L17 10z\",\"flash_on\":\"M7 2v11h3v9l7-12h-4l4-8z\",\"flip\":\"M15 21h2v-2h-2v2zm4-12h2V7h-2v2zM3 5v14c0 1.1.9 2 2 2h4v-2H5V5h4V3H5c-1.1 0-2 .9-2 2zm16-2v2h2c0-1.1-.9-2-2-2zm-8 20h2V1h-2v22zm8-6h2v-2h-2v2zM15 5h2V3h-2v2zm4 8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2z\",\"gradient\":\"M11 9h2v2h-2zm-2 2h2v2H9zm4 0h2v2h-2zm2-2h2v2h-2zM7 9h2v2H7zm12-6H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 18H7v-2h2v2zm4 0h-2v-2h2v2zm4 0h-2v-2h2v2zm2-7h-2v2h2v2h-2v-2h-2v2h-2v-2h-2v2H9v-2H7v2H5v-2h2v-2H5V5h14v6z\",\"grain\":\"M10 12c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-4 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-4-4c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\",\"grid_off\":\"M8 4v1.45l2 2V4h4v4h-3.45l2 2H14v1.45l2 2V10h4v4h-3.45l2 2H20v1.45l2 2V4c0-1.1-.9-2-2-2H4.55l2 2H8zm8 0h4v4h-4V4zM1.27 1.27L0 2.55l2 2V20c0 1.1.9 2 2 2h15.46l2 2 1.27-1.27L1.27 1.27zM10 12.55L11.45 14H10v-1.45zm-6-6L5.45 8H4V6.55zM8 20H4v-4h4v4zm0-6H4v-4h3.45l.55.55V14zm6 6h-4v-4h3.45l.55.54V20zm2 0v-1.46L17.46 20H16z\",\"grid_on\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 20H4v-4h4v4zm0-6H4v-4h4v4zm0-6H4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4zm6 12h-4v-4h4v4zm0-6h-4v-4h4v4zm0-6h-4V4h4v4z\",\"hdr_off\":\"M17.5 15v-2h1.1l.9 2H21l-.9-2.1c.5-.2.9-.8.9-1.4v-1c0-.8-.7-1.5-1.5-1.5H16v4.9l1.1 1.1h.4zm0-4.5h2v1h-2v-1zm-4.5 0v.4l1.5 1.5v-1.9c0-.8-.7-1.5-1.5-1.5h-1.9l1.5 1.5h.4zm-3.5-1l-7-7-1.1 1L6.9 9h-.4v2h-2V9H3v6h1.5v-2.5h2V15H8v-4.9l1.5 1.5V15h3.4l7.6 7.6 1.1-1.1-12.1-12z\",\"hdr_on\":\"M21 11.5v-1c0-.8-.7-1.5-1.5-1.5H16v6h1.5v-2h1.1l.9 2H21l-.9-2.1c.5-.3.9-.8.9-1.4zm-1.5 0h-2v-1h2v1zm-13-.5h-2V9H3v6h1.5v-2.5h2V15H8V9H6.5v2zM13 9H9.5v6H13c.8 0 1.5-.7 1.5-1.5v-3c0-.8-.7-1.5-1.5-1.5zm0 4.5h-2v-3h2v3z\",\"hdr_strong\":\"M17 6c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zM5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"hdr_weak\":\"M5 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm12-2c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm0 10c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4z\",\"healing\":\"M17.73 12.02l3.98-3.98a.996.996 0 0 0 0-1.41l-4.34-4.34a.996.996 0 0 0-1.41 0l-3.98 3.98L8 2.29a1 1 0 0 0-1.41 0L2.25 6.63a.996.996 0 0 0 0 1.41l3.98 3.98L2.25 16a.996.996 0 0 0 0 1.41l4.34 4.34c.39.39 1.02.39 1.41 0l3.98-3.98 3.98 3.98c.2.2.45.29.71.29.26 0 .51-.1.71-.29l4.34-4.34a.996.996 0 0 0 0-1.41l-3.99-3.98zM12 9c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-4.71 1.96L3.66 7.34l3.63-3.63 3.62 3.62-3.62 3.63zM10 13c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2 2c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm2-4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2.66 9.34l-3.63-3.62 3.63-3.63 3.62 3.62-3.62 3.63z\",\"image\":\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\",\"image_aspect_ratio\":\"M16 10h-2v2h2v-2zm0 4h-2v2h2v-2zm-8-4H6v2h2v-2zm4 0h-2v2h2v-2zm8-6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V6h16v12z\",\"iso\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5.5 7.5h2v-2H9v2h2V9H9v2H7.5V9h-2V7.5zM19 19H5L19 5v14zm-2-2v-1.5h-5V17h5z\",\"landscape\":\"M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z\",\"leak_add\":\"M6 3H3v3c1.66 0 3-1.34 3-3zm8 0h-2a9 9 0 0 1-9 9v2c6.08 0 11-4.93 11-11zm-4 0H8c0 2.76-2.24 5-5 5v2c3.87 0 7-3.13 7-7zm0 18h2a9 9 0 0 1 9-9v-2c-6.07 0-11 4.93-11 11zm8 0h3v-3c-1.66 0-3 1.34-3 3zm-4 0h2c0-2.76 2.24-5 5-5v-2c-3.87 0-7 3.13-7 7z\",\"leak_remove\":\"M10 3H8c0 .37-.04.72-.12 1.06l1.59 1.59C9.81 4.84 10 3.94 10 3zM3 4.27l2.84 2.84C5.03 7.67 4.06 8 3 8v2c1.61 0 3.09-.55 4.27-1.46L8.7 9.97A8.99 8.99 0 0 1 3 12v2c2.71 0 5.19-.99 7.11-2.62l2.5 2.5A11.044 11.044 0 0 0 10 21h2c0-2.16.76-4.14 2.03-5.69l1.43 1.43A6.922 6.922 0 0 0 14 21h2c0-1.06.33-2.03.89-2.84L19.73 21 21 19.73 4.27 3 3 4.27zM14 3h-2c0 1.5-.37 2.91-1.02 4.16l1.46 1.46C13.42 6.98 14 5.06 14 3zm5.94 13.12c.34-.08.69-.12 1.06-.12v-2c-.94 0-1.84.19-2.66.52l1.6 1.6zm-4.56-4.56l1.46 1.46A8.98 8.98 0 0 1 21 12v-2c-2.06 0-3.98.58-5.62 1.56z\",\"lens\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\",\"linked_camera\":\"M17 9c0-1.11-.89-2-2-2V4H9L7.17 6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9h-5zm-5 10c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\",\"looks\":\"M12 10c-3.86 0-7 3.14-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.86-3.14-7-7-7zm0-4C5.93 6 1 10.93 1 17h2c0-4.96 4.04-9 9-9s9 4.04 9 9h2c0-6.07-4.93-11-11-11z\",\"looks_3\":\"M19.01 3h-14c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 7.5c0 .83-.67 1.5-1.5 1.5.83 0 1.5.67 1.5 1.5V15a2 2 0 0 1-2 2h-4v-2h4v-2h-2v-2h2V9h-4V7h4a2 2 0 0 1 2 2v1.5z\",\"looks_4\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 14h-2v-4H9V7h2v4h2V7h2v10z\",\"looks_5\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2H9v-2h4v-2H9V7h6v2z\",\"looks_6\":\"M11 15h2v-2h-2v2zm8-12H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h2a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h4v2z\",\"looks_one\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z\",\"looks_two\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 8a2 2 0 0 1-2 2h-2v2h4v2H9v-4a2 2 0 0 1 2-2h2V9H9V7h4a2 2 0 0 1 2 2v2z\",\"loupe\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.49 2 2 6.49 2 12s4.49 10 10 10h8c1.1 0 2-.9 2-2v-8c0-5.51-4.49-10-10-10zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"monochrome_photos\":\"M20 5h-3.2L15 3H9L7.2 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 14h-8v-1c-2.8 0-5-2.2-5-5s2.2-5 5-5V7h8v12zm-3-6c0-2.8-2.2-5-5-5v1.8c1.8 0 3.2 1.4 3.2 3.2s-1.4 3.2-3.2 3.2V18c2.8 0 5-2.2 5-5zm-8.2 0c0 1.8 1.4 3.2 3.2 3.2V9.8c-1.8 0-3.2 1.4-3.2 3.2z\",\"movie_creation\":\"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z\",\"movie_filter\":\"M18 4l2 3h-3l-2-3h-2l2 3h-3l-2-3H8l2 3H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4zm-6.75 11.25L10 18l-1.25-2.75L6 14l2.75-1.25L10 10l1.25 2.75L14 14l-2.75 1.25zm5.69-3.31L16 14l-.94-2.06L13 11l2.06-.94L16 8l.94 2.06L19 11l-2.06.94z\",\"music_note\":\"M12 3v10.55c-.59-.34-1.27-.55-2-.55-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4V7h4V3h-6z\",\"nature\":\"M13 16.12a7 7 0 0 0 6.17-6.95c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0 0 11 16.06V20H5v2h14v-2h-6v-3.88z\",\"nature_people\":\"M22.17 9.17c0-3.87-3.13-7-7-7s-7 3.13-7 7A6.98 6.98 0 0 0 14 16.06V20H6v-3h1v-4c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v4h1v5h16v-2h-3v-3.88a7 7 0 0 0 6.17-6.95zM4.5 11c.83 0 1.5-.67 1.5-1.5S5.33 8 4.5 8 3 8.67 3 9.5 3.67 11 4.5 11z\",\"navigate_before\":\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\",\"navigate_next\":\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\",\"palette\":\"M12 3a9 9 0 0 0 0 18c.83 0 1.5-.67 1.5-1.5 0-.39-.15-.74-.39-1.01-.23-.26-.38-.61-.38-.99 0-.83.67-1.5 1.5-1.5H16c2.76 0 5-2.24 5-5 0-4.42-4.03-8-9-8zm-5.5 9c-.83 0-1.5-.67-1.5-1.5S5.67 9 6.5 9 8 9.67 8 10.5 7.33 12 6.5 12zm3-4C8.67 8 8 7.33 8 6.5S8.67 5 9.5 5s1.5.67 1.5 1.5S10.33 8 9.5 8zm5 0c-.83 0-1.5-.67-1.5-1.5S13.67 5 14.5 5s1.5.67 1.5 1.5S15.33 8 14.5 8zm3 4c-.83 0-1.5-.67-1.5-1.5S16.67 9 17.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"panorama\":\"M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z\",\"panorama_fish_eye\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"panorama_horizontal\":\"M20 6.54v10.91c-2.6-.77-5.28-1.16-8-1.16-2.72 0-5.4.39-8 1.16V6.54c2.6.77 5.28 1.16 8 1.16 2.72.01 5.4-.38 8-1.16M21.43 4c-.1 0-.2.02-.31.06C18.18 5.16 15.09 5.7 12 5.7c-3.09 0-6.18-.55-9.12-1.64A.94.94 0 0 0 2.57 4c-.34 0-.57.23-.57.63v14.75c0 .39.23.62.57.62.1 0 .2-.02.31-.06 2.94-1.1 6.03-1.64 9.12-1.64 3.09 0 6.18.55 9.12 1.64.11.04.21.06.31.06.33 0 .57-.23.57-.63V4.63c0-.4-.24-.63-.57-.63z\",\"panorama_vertical\":\"M19.94 21.12c-1.1-2.94-1.64-6.03-1.64-9.12 0-3.09.55-6.18 1.64-9.12a.94.94 0 0 0 .06-.31c0-.34-.23-.57-.63-.57H4.63c-.4 0-.63.23-.63.57 0 .1.02.2.06.31C5.16 5.82 5.71 8.91 5.71 12c0 3.09-.55 6.18-1.64 9.12-.05.11-.07.22-.07.31 0 .33.23.57.63.57h14.75c.39 0 .63-.24.63-.57-.01-.1-.03-.2-.07-.31zM6.54 20c.77-2.6 1.16-5.28 1.16-8 0-2.72-.39-5.4-1.16-8h10.91c-.77 2.6-1.16 5.28-1.16 8 0 2.72.39 5.4 1.16 8H6.54z\",\"panorama_wide_angle\":\"M12 6c2.45 0 4.71.2 7.29.64A21 21 0 0 1 20 12a21 21 0 0 1-.71 5.36c-2.58.44-4.84.64-7.29.64s-4.71-.2-7.29-.64A21 21 0 0 1 4 12a21 21 0 0 1 .71-5.36C7.29 6.2 9.55 6 12 6m0-2c-2.73 0-5.22.24-7.95.72l-.93.16-.25.9C2.29 7.85 2 9.93 2 12s.29 4.15.87 6.22l.25.89.93.16c2.73.49 5.22.73 7.95.73s5.22-.24 7.95-.72l.93-.16.25-.89c.58-2.08.87-4.16.87-6.23s-.29-4.15-.87-6.22l-.25-.89-.93-.16C17.22 4.24 14.73 4 12 4z\",\"photo\":\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\",\"photo_album\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4zm0 15l3-3.86 2.14 2.58 3-3.86L18 19H6z\",\"photo_camera\":\"M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\",\"photo_filter\":\"M19.02 10v9H5V5h9V3H5.02c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-9h-2zM17 10l.94-2.06L20 7l-2.06-.94L17 4l-.94 2.06L14 7l2.06.94zm-3.75.75L12 8l-1.25 2.75L8 12l2.75 1.25L12 16l1.25-2.75L16 12z\",\"photo_library\":\"M22 16V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2zm-11-4l2.03 2.71L16 11l4 5H8l3-4zM2 6v14c0 1.1.9 2 2 2h14v-2H4V6H2z\",\"photo_size_select_actual\":\"M21 3H3C2 3 1 4 1 5v14c0 1.1.9 2 2 2h18c1 0 2-1 2-2V5c0-1-1-2-2-2zM5 17l3.5-4.5 2.5 3.01L14.5 11l4.5 6H5z\",\"photo_size_select_large\":\"M21 15h2v2h-2v-2zm0-4h2v2h-2v-2zm2 8h-2v2c1 0 2-1 2-2zM13 3h2v2h-2V3zm8 4h2v2h-2V7zm0-4v2h2c0-1-1-2-2-2zM1 7h2v2H1V7zm16-4h2v2h-2V3zm0 16h2v2h-2v-2zM3 3C2 3 1 4 1 5h2V3zm6 0h2v2H9V3zM5 3h2v2H5V3zm-4 8v8c0 1.1.9 2 2 2h12V11H1zm2 8l2.5-3.21 1.79 2.15 2.5-3.22L13 19H3z\",\"photo_size_select_small\":\"M23 15h-2v2h2v-2zm0-4h-2v2h2v-2zm0 8h-2v2c1 0 2-1 2-2zM15 3h-2v2h2V3zm8 4h-2v2h2V7zm-2-4v2h2c0-1-1-2-2-2zM3 21h8v-6H1v4c0 1.1.9 2 2 2zM3 7H1v2h2V7zm12 12h-2v2h2v-2zm4-16h-2v2h2V3zm0 16h-2v2h2v-2zM3 3C2 3 1 4 1 5h2V3zm0 8H1v2h2v-2zm8-8H9v2h2V3zM7 3H5v2h2V3z\",\"picture_as_pdf\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8.5 7.5c0 .83-.67 1.5-1.5 1.5H9v2H7.5V7H10c.83 0 1.5.67 1.5 1.5v1zm5 2c0 .83-.67 1.5-1.5 1.5h-2.5V7H15c.83 0 1.5.67 1.5 1.5v3zm4-3H19v1h1.5V11H19v2h-1.5V7h3v1.5zM9 9.5h1v-1H9v1zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm10 5.5h1v-3h-1v3z\",\"portrait\":\"M12 12.25c1.24 0 2.25-1.01 2.25-2.25S13.24 7.75 12 7.75 9.75 8.76 9.75 10s1.01 2.25 2.25 2.25zm4.5 4c0-1.5-3-2.25-4.5-2.25s-4.5.75-4.5 2.25V17h9v-.75zM19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\",\"remove_red_eye\":\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\",\"rotate_90_degrees_ccw\":\"M7.34 6.41L.86 12.9l6.49 6.48 6.49-6.48-6.5-6.49zM3.69 12.9l3.66-3.66L11 12.9l-3.66 3.66-3.65-3.66zm15.67-6.26A8.95 8.95 0 0 0 13 4V.76L8.76 5 13 9.24V6c1.79 0 3.58.68 4.95 2.05a7.007 7.007 0 0 1 0 9.9 6.973 6.973 0 0 1-7.79 1.44l-1.49 1.49C10.02 21.62 11.51 22 13 22c2.3 0 4.61-.88 6.36-2.64a8.98 8.98 0 0 0 0-12.72z\",\"rotate_left\":\"M7.11 8.53L5.7 7.11C4.8 8.27 4.24 9.61 4.07 11h2.02c.14-.87.49-1.72 1.02-2.47zM6.09 13H4.07c.17 1.39.72 2.73 1.62 3.89l1.41-1.42c-.52-.75-.87-1.59-1.01-2.47zm1.01 5.32c1.16.9 2.51 1.44 3.9 1.61V17.9c-.87-.15-1.71-.49-2.46-1.03L7.1 18.32zM13 4.07V1L8.45 5.55 13 10V6.09c2.84.48 5 2.94 5 5.91s-2.16 5.43-5 5.91v2.02c3.95-.49 7-3.85 7-7.93s-3.05-7.44-7-7.93z\",\"rotate_right\":\"M15.55 5.55L11 1v3.07C7.06 4.56 4 7.92 4 12s3.05 7.44 7 7.93v-2.02c-2.84-.48-5-2.94-5-5.91s2.16-5.43 5-5.91V10l4.55-4.45zM19.93 11a7.906 7.906 0 0 0-1.62-3.89l-1.42 1.42c.54.75.88 1.6 1.02 2.47h2.02zM13 17.9v2.02c1.39-.17 2.74-.71 3.9-1.61l-1.44-1.44c-.75.54-1.59.89-2.46 1.03zm3.89-2.42l1.42 1.41c.9-1.16 1.45-2.5 1.62-3.89h-2.02c-.14.87-.48 1.72-1.02 2.48z\",\"slideshow\":\"M10 8v8l5-4-5-4zm9-5H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14z\",\"straighten\":\"M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 10H3V8h2v4h2V8h2v4h2V8h2v4h2V8h2v4h2V8h2v8z\",\"style\":\"M2.53 19.65l1.34.56v-9.03l-2.43 5.86a2.02 2.02 0 0 0 1.09 2.61zm19.5-3.7L17.07 3.98a2.013 2.013 0 0 0-1.81-1.23c-.26 0-.53.04-.79.15L7.1 5.95a2 2 0 0 0-1.08 2.6l4.96 11.97a1.998 1.998 0 0 0 2.6 1.08l7.36-3.05a1.994 1.994 0 0 0 1.09-2.6zM7.88 8.75c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-2 11c0 1.1.9 2 2 2h1.45l-3.45-8.34v6.34z\",\"switch_camera\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 11.5V13H9v2.5L5.5 12 9 8.5V11h6V8.5l3.5 3.5-3.5 3.5z\",\"switch_video\":\"M18 9.5V6c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h14c.55 0 1-.45 1-1v-3.5l4 4v-13l-4 4zm-5 6V13H7v2.5L3.5 12 7 8.5V11h6V8.5l3.5 3.5-3.5 3.5z\",\"tag_faces\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\",\"texture\":\"M19.51 3.08L3.08 19.51c.09.34.27.65.51.9.25.24.56.42.9.51L20.93 4.49c-.19-.69-.73-1.23-1.42-1.41zM11.88 3L3 11.88v2.83L14.71 3h-2.83zM5 3c-1.1 0-2 .9-2 2v2l4-4H5zm14 18c.55 0 1.05-.22 1.41-.59.37-.36.59-.86.59-1.41v-2l-4 4h2zm-9.71 0h2.83L21 12.12V9.29L9.29 21z\",\"timelapse\":\"M16.24 7.76A5.974 5.974 0 0 0 12 6v6l-4.24 4.24c2.34 2.34 6.14 2.34 8.49 0a5.99 5.99 0 0 0-.01-8.48zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\",\"timer_10\":\"M0 7.72V9.4l3-1V18h2V6h-.25L0 7.72zm23.78 6.65c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 0 1-.87-.23 2.61 2.61 0 0 1-.55-.25.717.717 0 0 1-.28-.3.978.978 0 0 1 .01-.8c.06-.13.15-.25.27-.34.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95a2.517 2.517 0 0 0-.93-1.97c-.3-.25-.66-.44-1.09-.59C21.49 9.07 21 9 20.46 9c-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.69.23.96c.15.28.36.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 0 1-.59-1.11h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02zm-9.96-7.32c-.34-.4-.75-.7-1.23-.88-.47-.18-1.01-.27-1.59-.27-.58 0-1.11.09-1.59.27-.48.18-.89.47-1.23.88-.34.41-.6.93-.79 1.59-.18.65-.28 1.45-.28 2.39v1.92c0 .94.09 1.74.28 2.39.19.66.45 1.19.8 1.6.34.41.75.71 1.23.89.48.18 1.01.28 1.59.28.59 0 1.12-.09 1.59-.28.48-.18.88-.48 1.22-.89.34-.41.6-.94.78-1.6.18-.65.28-1.45.28-2.39v-1.92c0-.94-.09-1.74-.28-2.39-.18-.66-.44-1.19-.78-1.59zm-.92 6.17c0 .6-.04 1.11-.12 1.53-.08.42-.2.76-.36 1.02-.16.26-.36.45-.59.57-.23.12-.51.18-.82.18-.3 0-.58-.06-.82-.18s-.44-.31-.6-.57c-.16-.26-.29-.6-.38-1.02-.09-.42-.13-.93-.13-1.53v-2.5c0-.6.04-1.11.13-1.52.09-.41.21-.74.38-1 .16-.25.36-.43.6-.55.24-.11.51-.17.81-.17.31 0 .58.06.81.17.24.11.44.29.6.55.16.25.29.58.37.99.08.41.13.92.13 1.52v2.51z\",\"timer\":\"M15 1H9v2h6V1zm-4 13h2V8h-2v6zm8.03-6.61l1.42-1.42c-.43-.51-.9-.99-1.41-1.41l-1.42 1.42A8.962 8.962 0 0 0 12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a8.994 8.994 0 0 0 7.03-14.61zM12 20c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"timer_3\":\"M11.61 12.97c-.16-.24-.36-.46-.62-.65a3.38 3.38 0 0 0-.93-.48c.3-.14.57-.3.8-.5.23-.2.42-.41.57-.64.15-.23.27-.46.34-.71.08-.24.11-.49.11-.73 0-.55-.09-1.04-.28-1.46-.18-.42-.44-.77-.78-1.06-.33-.28-.73-.5-1.2-.64-.45-.13-.97-.2-1.53-.2-.55 0-1.06.08-1.52.24-.47.17-.87.4-1.2.69-.33.29-.6.63-.78 1.03-.2.39-.29.83-.29 1.29h1.98c0-.26.05-.49.14-.69.09-.2.22-.38.38-.52.17-.14.36-.25.58-.33.22-.08.46-.12.73-.12.61 0 1.06.16 1.36.47.3.31.44.75.44 1.32 0 .27-.04.52-.12.74-.08.22-.21.41-.38.57-.17.16-.38.28-.63.37-.25.09-.55.13-.89.13H6.72v1.57H7.9c.34 0 .64.04.91.11.27.08.5.19.69.35.19.16.34.36.44.61.1.24.16.54.16.87 0 .62-.18 1.09-.53 1.42-.35.33-.84.49-1.45.49-.29 0-.56-.04-.8-.13-.24-.08-.44-.2-.61-.36-.17-.16-.3-.34-.39-.56-.09-.22-.14-.46-.14-.72H4.19c0 .55.11 1.03.32 1.45.21.42.5.77.86 1.05s.77.49 1.24.63.96.21 1.48.21c.57 0 1.09-.08 1.58-.23.49-.15.91-.38 1.26-.68.36-.3.64-.66.84-1.1.2-.43.3-.93.3-1.48 0-.29-.04-.58-.11-.86-.08-.25-.19-.51-.35-.76zm9.26 1.4c-.14-.28-.35-.53-.63-.74-.28-.21-.61-.39-1.01-.53s-.85-.27-1.35-.38a6.64 6.64 0 0 1-.87-.23 2.61 2.61 0 0 1-.55-.25.717.717 0 0 1-.28-.3c-.05-.11-.08-.24-.08-.39a.946.946 0 0 1 .36-.75c.12-.1.27-.18.45-.24s.4-.09.64-.09c.25 0 .47.04.66.11.19.07.35.17.48.29.13.12.22.26.29.42.06.16.1.32.1.49h1.95a2.517 2.517 0 0 0-.93-1.97c-.3-.25-.66-.44-1.09-.59-.43-.15-.92-.22-1.46-.22-.51 0-.98.07-1.39.21-.41.14-.77.33-1.06.57-.29.24-.51.52-.67.84-.16.32-.23.65-.23 1.01s.08.68.23.96c.15.28.37.52.64.73.27.21.6.38.98.53.38.14.81.26 1.27.36.39.08.71.17.95.26s.43.19.57.29c.13.1.22.22.27.34.05.12.07.25.07.39 0 .32-.13.57-.4.77-.27.2-.66.29-1.17.29-.22 0-.43-.02-.64-.08-.21-.05-.4-.13-.56-.24a1.333 1.333 0 0 1-.59-1.11h-1.89c0 .36.08.71.24 1.05.16.34.39.65.7.93.31.27.69.49 1.15.66.46.17.98.25 1.58.25.53 0 1.01-.06 1.44-.19.43-.13.8-.31 1.11-.54.31-.23.54-.51.71-.83.17-.32.25-.67.25-1.06-.02-.4-.09-.74-.24-1.02z\",\"timer_off\":\"M19.04 4.55l-1.42 1.42a9.012 9.012 0 0 0-10.57-.49l1.46 1.46C9.53 6.35 10.73 6 12 6c3.87 0 7 3.13 7 7 0 1.27-.35 2.47-.94 3.49l1.45 1.45A8.878 8.878 0 0 0 21 13c0-2.12-.74-4.07-1.97-5.61l1.42-1.42-1.41-1.42zM15 1H9v2h6V1zm-4 8.44l2 2V8h-2v1.44zM3.02 4L1.75 5.27 4.5 8.03A8.905 8.905 0 0 0 3 13c0 4.97 4.02 9 9 9 1.84 0 3.55-.55 4.98-1.5l2.5 2.5 1.27-1.27-7.71-7.71L3.02 4zM12 20c-3.87 0-7-3.13-7-7 0-1.28.35-2.48.95-3.52l9.56 9.56c-1.03.61-2.23.96-3.51.96z\",\"tonality\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.94-.49-7-3.85-7-7.93s3.05-7.44 7-7.93v15.86zm2-15.86c1.03.13 2 .45 2.87.93H13v-.93zM13 7h5.24c.25.31.48.65.68 1H13V7zm0 3h6.74c.08.33.15.66.19 1H13v-1zm0 9.93V19h2.87c-.87.48-1.84.8-2.87.93zM18.24 17H13v-1h5.92c-.2.35-.43.69-.68 1zm1.5-3H13v-1h6.93c-.04.34-.11.67-.19 1z\",\"transform\":\"M22 18v-2H8V4h2L7 1 4 4h2v2H2v2h4v8c0 1.1.9 2 2 2h8v2h-2l3 3 3-3h-2v-2h4zM10 8h6v6h2V8c0-1.1-.9-2-2-2h-6v2z\",\"tune\":\"M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z\",\"view_comfy\":\"M3 9h4V5H3v4zm0 5h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zM8 9h4V5H8v4zm5-4v4h4V5h-4zm5 9h4v-4h-4v4zM3 19h4v-4H3v4zm5 0h4v-4H8v4zm5 0h4v-4h-4v4zm5 0h4v-4h-4v4zm0-14v4h4V5h-4z\",\"view_compact\":\"M3 19h6v-7H3v7zm7 0h12v-7H10v7zM3 5v6h19V5H3z\",\"vignette\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 15c-4.42 0-8-2.69-8-6s3.58-6 8-6 8 2.69 8 6-3.58 6-8 6z\",\"wb_auto\":\"M6.85 12.65h2.3L8 9l-1.15 3.65zM22 7l-1.2 6.29L19.3 7h-1.6l-1.49 6.29L15 7h-.76A7.97 7.97 0 0 0 8 4c-4.42 0-8 3.58-8 8s3.58 8 8 8c3.13 0 5.84-1.81 7.15-4.43l.1.43H17l1.5-6.1L20 16h1.75l2.05-9H22zm-11.7 9l-.7-2H6.4l-.7 2H3.8L7 7h2l3.2 9h-1.9z\",\"wb_cloudy\":\"M19.36 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.64-4.96z\",\"wb_incandescent\":\"M3.55 18.54l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8zM11 22.45h2V19.5h-2v2.95zM4 10.5H1v2h3v-2zm11-4.19V1.5H9v4.81C7.21 7.35 6 9.28 6 11.5c0 3.31 2.69 6 6 6s6-2.69 6-6c0-2.22-1.21-4.15-3-5.19zm5 4.19v2h3v-2h-3zm-2.76 7.66l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4z\",\"wb_iridescent\":\"M5 14.5h14v-6H5v6zM11 .55V3.5h2V.55h-2zm8.04 2.5l-1.79 1.79 1.41 1.41 1.8-1.79-1.42-1.41zM13 22.45V19.5h-2v2.95h2zm7.45-3.91l-1.8-1.79-1.41 1.41 1.79 1.8 1.42-1.42zM3.55 4.46l1.79 1.79 1.41-1.41-1.79-1.79-1.41 1.41zm1.41 15.49l1.79-1.8-1.41-1.41-1.79 1.79 1.41 1.42z\",\"wb_sunny\":\"M6.76 4.84l-1.8-1.79-1.41 1.41 1.79 1.79 1.42-1.41zM4 10.5H1v2h3v-2zm9-9.95h-2V3.5h2V.55zm7.45 3.91l-1.41-1.41-1.79 1.79 1.41 1.41 1.79-1.79zm-3.21 13.7l1.79 1.8 1.41-1.41-1.8-1.79-1.4 1.4zM20 10.5v2h3v-2h-3zm-8-5c-3.31 0-6 2.69-6 6s2.69 6 6 6 6-2.69 6-6-2.69-6-6-6zm-1 16.95h2V19.5h-2v2.95zm-7.45-3.91l1.41 1.41 1.79-1.8-1.41-1.41-1.79 1.8z\",\"business\":\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\",\"call\":\"M6.62 10.79a15.15 15.15 0 0 0 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\",\"call_end\":\"M12 9c-1.6 0-3.15.25-4.6.72v3.1c0 .39-.23.74-.56.9-.98.49-1.87 1.12-2.66 1.85-.18.18-.43.28-.7.28-.28 0-.53-.11-.71-.29L.29 13.08a.956.956 0 0 1-.29-.7c0-.28.11-.53.29-.71C3.34 8.78 7.46 7 12 7s8.66 1.78 11.71 4.67c.18.18.29.43.29.71 0 .28-.11.53-.29.71l-2.48 2.48c-.18.18-.43.29-.71.29-.27 0-.52-.11-.7-.28a11.27 11.27 0 0 0-2.67-1.85.996.996 0 0 1-.56-.9v-3.1C15.15 9.25 13.6 9 12 9z\",\"call_made\":\"M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5z\",\"call_merge\":\"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\",\"call_missed\":\"M19.59 7L12 14.59 6.41 9H11V7H3v8h2v-4.59l7 7 9-9z\",\"call_missed_outgoing\":\"M3 8.41l9 9 7-7V15h2V7h-8v2h4.59L12 14.59 4.41 7 3 8.41z\",\"call_received\":\"M20 5.41L18.59 4 7 15.59V9H5v10h10v-2H8.41z\",\"call_split\":\"M14 4l2.29 2.29-2.88 2.88 1.42 1.42 2.88-2.88L20 10V4zm-4 0H4v6l2.29-2.29 4.71 4.7V20h2v-8.41l-5.29-5.3z\",\"chat\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z\",\"chat_bubble\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2z\",\"chat_bubble_outline\":\"M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H6l-2 2V4h16v12z\",\"clear_all\":\"M5 13h14v-2H5v2zm-2 4h14v-2H3v2zM7 7v2h14V7H7z\",\"comment\":\"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18zM18 14H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z\",\"contact_mail\":\"M21 8V7l-3 2-3-2v1l3 2 3-2zm1-5H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm8-6h-8V6h8v6z\",\"contact_phone\":\"M22 3H2C.9 3 0 3.9 0 5v14c0 1.1.9 2 2 2h20c1.1 0 1.99-.9 1.99-2L24 5c0-1.1-.9-2-2-2zM8 6c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H2v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1zm3.85-4h1.64L21 16l-1.99 1.99A7.512 7.512 0 0 1 16.28 14c-.18-.64-.28-1.31-.28-2s.1-1.36.28-2a7.474 7.474 0 0 1 2.73-3.99L21 8l-1.51 2h-1.64c-.22.63-.35 1.3-.35 2s.13 1.37.35 2z\",\"contacts\":\"M20 0H4v2h16V0zM4 24h16v-2H4v2zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 2.75c1.24 0 2.25 1.01 2.25 2.25s-1.01 2.25-2.25 2.25S9.75 10.24 9.75 9 10.76 6.75 12 6.75zM17 17H7v-1.5c0-1.67 3.33-2.5 5-2.5s5 .83 5 2.5V17z\",\"dialer_sip\":\"M17 3h-1v5h1V3zm-2 2h-2V4h2V3h-3v3h2v1h-2v1h3V5zm3-2v5h1V6h2V3h-3zm2 2h-1V4h1v1zm0 10.5c-1.25 0-2.45-.2-3.57-.57a.998.998 0 0 0-1.01.24l-2.2 2.2a15.045 15.045 0 0 1-6.59-6.59l2.2-2.21c.27-.26.35-.65.24-1A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1z\",\"dialpad\":\"M12 19c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zM6 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12-8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-6 8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\",\"email\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\",\"forum\":\"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z\",\"import_contacts\":\"M21 5c-1.11-.35-2.33-.5-3.5-.5-1.95 0-4.05.4-5.5 1.5-1.45-1.1-3.55-1.5-5.5-1.5S2.45 4.9 1 6v14.65c0 .25.25.5.5.5.1 0 .15-.05.25-.05C3.1 20.45 5.05 20 6.5 20c1.95 0 4.05.4 5.5 1.5 1.35-.85 3.8-1.5 5.5-1.5 1.65 0 3.35.3 4.75 1.05.1.05.15.05.25.05.25 0 .5-.25.5-.5V6c-.6-.45-1.25-.75-2-1zm0 13.5c-1.1-.35-2.3-.5-3.5-.5-1.7 0-4.15.65-5.5 1.5V8c1.35-.85 3.8-1.5 5.5-1.5 1.2 0 2.4.15 3.5.5v11.5z\",\"import_export\":\"M9 3L5 6.99h3V14h2V6.99h3L9 3zm7 14.01V10h-2v7.01h-3L15 21l4-3.99h-3z\",\"invert_colors_off\":\"M20.65 20.87l-2.35-2.35-6.3-6.29-3.56-3.57-1.42-1.41L4.27 4.5 3 5.77l2.78 2.78a8.005 8.005 0 0 0 .56 10.69A7.98 7.98 0 0 0 12 21.58c1.79 0 3.57-.59 5.03-1.78l2.7 2.7L21 21.23l-.35-.36zM12 19.59c-1.6 0-3.11-.62-4.24-1.76A5.945 5.945 0 0 1 6 13.59c0-1.32.43-2.57 1.21-3.6L12 14.77v4.82zM12 5.1v4.58l7.25 7.26c1.37-2.96.84-6.57-1.6-9.01L12 2.27l-3.7 3.7 1.41 1.41L12 5.1z\",\"live_help\":\"M19 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 16h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 11.9 13 12.5 13 14h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\",\"location_off\":\"M12 6.5A2.5 2.5 0 0 1 14.5 9c0 .74-.33 1.39-.83 1.85l3.63 3.63c.98-1.86 1.7-3.8 1.7-5.48 0-3.87-3.13-7-7-7a7 7 0 0 0-5.04 2.15l3.19 3.19c.46-.52 1.11-.84 1.85-.84zm4.37 9.6l-4.63-4.63-.11-.11L3.27 3 2 4.27l3.18 3.18C5.07 7.95 5 8.47 5 9c0 5.25 7 13 7 13s1.67-1.85 3.38-4.35L18.73 21 20 19.73l-3.63-3.63z\",\"location_on\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z\",\"mail_outline\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 14H4V8l8 5 8-5v10zm-8-7L4 6h16l-8 5z\",\"message\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z\",\"no_sim\":\"M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z\",\"phone\":\"M6.62 10.79a15.15 15.15 0 0 0 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\",\"phonelink_erase\":\"M13 8.2l-1-1-4 4-4-4-1 1 4 4-4 4 1 1 4-4 4 4 1-1-4-4 4-4zM19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z\",\"phonelink_lock\":\"M19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm-8.2 10V9.5C10.8 8.1 9.4 7 8 7S5.2 8.1 5.2 9.5V11c-.6 0-1.2.6-1.2 1.2v3.5c0 .7.6 1.3 1.2 1.3h5.5c.7 0 1.3-.6 1.3-1.2v-3.5c0-.7-.6-1.3-1.2-1.3zm-1.3 0h-3V9.5c0-.8.7-1.3 1.5-1.3s1.5.5 1.5 1.3V11z\",\"phonelink_ring\":\"M20.1 7.7l-1 1c1.8 1.8 1.8 4.6 0 6.5l1 1c2.5-2.3 2.5-6.1 0-8.5zM18 9.8l-1 1c.5.7.5 1.6 0 2.3l1 1c1.2-1.2 1.2-3 0-4.3zM14 1H4c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 19H4V4h10v16z\",\"phonelink_setup\":\"M11.8 12.5v-1l1.1-.8c.1-.1.1-.2.1-.3l-1-1.7c-.1-.1-.2-.2-.3-.1l-1.3.4c-.3-.2-.6-.4-.9-.5l-.2-1.3c0-.1-.1-.2-.3-.2H7c-.1 0-.2.1-.3.2l-.2 1.3c-.3.1-.6.3-.9.5l-1.3-.5c-.1 0-.2 0-.3.1l-1 1.7c-.1.1 0 .2.1.3l1.1.8v1l-1.1.8c-.1.2-.1.3-.1.4l1 1.7c.1.1.2.2.3.1l1.4-.4c.3.2.6.4.9.5l.2 1.3c-.1.1.1.2.2.2h2c.1 0 .2-.1.3-.2l.2-1.3c.3-.1.6-.3.9-.5l1.3.5c.1 0 .2 0 .3-.1l1-1.7c.1-.1 0-.2-.1-.3l-1.1-.9zM8 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM19 1H9c-1.1 0-2 .9-2 2v3h2V4h10v16H9v-2H7v3c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2z\",\"portable_wifi_off\":\"M17.56 14.24c.28-.69.44-1.45.44-2.24 0-3.31-2.69-6-6-6-.79 0-1.55.16-2.24.44l1.62 1.62c.2-.03.41-.06.62-.06a4 4 0 0 1 3.95 4.63l1.61 1.61zM12 4c4.42 0 8 3.58 8 8 0 1.35-.35 2.62-.95 3.74l1.47 1.47A9.86 9.86 0 0 0 22 12c0-5.52-4.48-10-10-10-1.91 0-3.69.55-5.21 1.47l1.46 1.46A8.04 8.04 0 0 1 12 4zM3.27 2.5L2 3.77l2.1 2.1C2.79 7.57 2 9.69 2 12c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 17.53 4 14.96 4 12c0-1.76.57-3.38 1.53-4.69l1.43 1.44C6.36 9.68 6 10.8 6 12c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-.65.17-1.25.44-1.79l1.58 1.58L10 12c0 1.1.9 2 2 2l.21-.02.01.01 7.51 7.51L21 20.23 4.27 3.5l-1-1z\",\"present_to_all\":\"M21 3H3c-1.11 0-2 .89-2 2v14c0 1.11.89 2 2 2h18c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 16.02H3V4.98h18v14.04zM10 12H8l4-4 4 4h-2v4h-4v-4z\",\"ring_volume\":\"M23.71 16.67A16.97 16.97 0 0 0 12 12C7.46 12 3.34 13.78.29 16.67c-.18.18-.29.43-.29.71 0 .28.11.53.29.71l2.48 2.48c.18.18.43.29.71.29.27 0 .52-.11.7-.28.79-.74 1.69-1.36 2.66-1.85.33-.16.56-.5.56-.9v-3.1c1.45-.48 3-.73 4.6-.73s3.15.25 4.6.72v3.1c0 .39.23.74.56.9.98.49 1.87 1.12 2.66 1.85.18.18.43.28.7.28.28 0 .53-.11.71-.29l2.48-2.48c.18-.18.29-.43.29-.71a.99.99 0 0 0-.29-.7zM21.16 6.26l-1.41-1.41-3.56 3.55 1.41 1.41s3.45-3.52 3.56-3.55zM13 2h-2v5h2V2zM6.4 9.81L7.81 8.4 4.26 4.84 2.84 6.26c.11.03 3.56 3.55 3.56 3.55z\",\"rss_feed\":\"M4 4.44v2.83c7.03 0 12.73 5.7 12.73 12.73h2.83c0-8.59-6.97-15.56-15.56-15.56zm0 5.66v2.83c3.9 0 7.07 3.17 7.07 7.07h2.83c0-5.47-4.43-9.9-9.9-9.9z\",\"screen_share\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2h-4zm-7-3.53v-2.19c-2.78 0-4.61.85-6 2.72.56-2.67 2.11-5.33 6-5.87V7l4 3.73-4 3.74z\",\"speaker_phone\":\"M7 7.07L8.43 8.5c.91-.91 2.18-1.48 3.57-1.48s2.66.57 3.57 1.48L17 7.07C15.72 5.79 13.95 5 12 5s-3.72.79-5 2.07zM12 1C8.98 1 6.24 2.23 4.25 4.21l1.41 1.41C7.28 4 9.53 3 12 3s4.72 1 6.34 2.62l1.41-1.41A10.963 10.963 0 0 0 12 1zm2.86 9.01L9.14 10C8.51 10 8 10.51 8 11.14v9.71c0 .63.51 1.14 1.14 1.14h5.71c.63 0 1.14-.51 1.14-1.14v-9.71c.01-.63-.5-1.13-1.13-1.13zM15 20H9v-8h6v8z\",\"stay_current_landscape\":\"M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z\",\"stay_current_portrait\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\",\"stay_primary_landscape\":\"M1.01 7L1 17c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2H3c-1.1 0-1.99.9-1.99 2zM19 7v10H5V7h14z\",\"stay_primary_portrait\":\"M17 1.01L7 1c-1.1 0-1.99.9-1.99 2v18c0 1.1.89 2 1.99 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\",\"stop_screen_share\":\"M21.22 18.02l2 2H24v-2h-2.78zm.77-2l.01-10a2 2 0 0 0-2-2H7.22l5.23 5.23c.18-.04.36-.07.55-.1V7.02l4 3.73-1.58 1.47 5.54 5.54c.61-.33 1.03-.99 1.03-1.74zM2.39 1.73L1.11 3l1.54 1.54c-.4.36-.65.89-.65 1.48v10a2 2 0 0 0 2 2H0v2h18.13l2.71 2.71 1.27-1.27L2.39 1.73zM7 15.02c.31-1.48.92-2.95 2.07-4.06l1.59 1.59c-1.54.38-2.7 1.18-3.66 2.47z\",\"swap_calls\":\"M18 4l-4 4h3v7c0 1.1-.9 2-2 2s-2-.9-2-2V8c0-2.21-1.79-4-4-4S5 5.79 5 8v7H2l4 4 4-4H7V8c0-1.1.9-2 2-2s2 .9 2 2v7c0 2.21 1.79 4 4 4s4-1.79 4-4V8h3l-4-4z\",\"textsms\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM9 11H7V9h2v2zm4 0h-2V9h2v2zm4 0h-2V9h2v2z\",\"voicemail\":\"M18.5 6C15.46 6 13 8.46 13 11.5c0 1.33.47 2.55 1.26 3.5H9.74A5.45 5.45 0 0 0 11 11.5C11 8.46 8.54 6 5.5 6S0 8.46 0 11.5 2.46 17 5.5 17h13c3.04 0 5.5-2.46 5.5-5.5S21.54 6 18.5 6zm-13 9C3.57 15 2 13.43 2 11.5S3.57 8 5.5 8 9 9.57 9 11.5 7.43 15 5.5 15zm13 0c-1.93 0-3.5-1.57-3.5-3.5S16.57 8 18.5 8 22 9.57 22 11.5 20.43 15 18.5 15z\",\"vpn_key\":\"M12.65 10A5.99 5.99 0 0 0 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6a5.99 5.99 0 0 0 5.65-4H17v4h4v-4h2v-4H12.65zM7 14c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"cake\":\"M12 6a2 2 0 0 0 2-2c0-.38-.1-.73-.29-1.03L12 0l-1.71 2.97c-.19.3-.29.65-.29 1.03 0 1.1.9 2 2 2zm4.6 9.99l-1.07-1.07-1.08 1.07c-1.3 1.3-3.58 1.31-4.89 0l-1.07-1.07-1.09 1.07C6.75 16.64 5.88 17 4.96 17c-.73 0-1.4-.23-1.96-.61V21c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-4.61c-.56.38-1.23.61-1.96.61-.92 0-1.79-.36-2.44-1.01zM18 9h-5V7h-2v2H6c-1.66 0-3 1.34-3 3v1.54c0 1.08.88 1.96 1.96 1.96.52 0 1.02-.2 1.38-.57l2.14-2.13 2.13 2.13c.74.74 2.03.74 2.77 0l2.14-2.13 2.13 2.13c.37.37.86.57 1.38.57 1.08 0 1.96-.88 1.96-1.96V12C21 10.34 19.66 9 18 9z\",\"domain\":\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\",\"group\":\"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\",\"group_add\":\"M8 10H5V7H3v3H0v2h3v3h2v-3h3v-2zm10 1c1.66 0 2.99-1.34 2.99-3S19.66 5 18 5c-.32 0-.63.05-.91.14.57.81.9 1.79.9 2.86s-.34 2.04-.9 2.86c.28.09.59.14.91.14zm-5 0c1.66 0 2.99-1.34 2.99-3S14.66 5 13 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm6.62 2.16c.83.73 1.38 1.66 1.38 2.84v2h3v-2c0-1.54-2.37-2.49-4.38-2.84zM13 13c-2 0-6 1-6 3v2h12v-2c0-2-4-3-6-3z\",\"location_city\":\"M15 11V5l-3-3-3 3v2H3v14h18V11h-6zm-8 8H5v-2h2v2zm0-4H5v-2h2v2zm0-4H5V9h2v2zm6 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V9h2v2zm0-4h-2V5h2v2zm6 12h-2v-2h2v2zm0-4h-2v-2h2v2z\",\"mood\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\",\"mood_bad\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 3c-2.33 0-4.31 1.46-5.11 3.5h10.22c-.8-2.04-2.78-3.5-5.11-3.5z\",\"notifications\":\"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2z\",\"notifications_active\":\"M7.58 4.08L6.15 2.65C3.75 4.48 2.17 7.3 2.03 10.5h2a8.445 8.445 0 0 1 3.55-6.42zm12.39 6.42h2a10.49 10.49 0 0 0-4.12-7.85l-1.42 1.43a8.495 8.495 0 0 1 3.54 6.42zM18 11c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2v-5zm-6 11c.14 0 .27-.01.4-.04a2.03 2.03 0 0 0 1.44-1.18c.1-.24.15-.5.15-.78h-4c.01 1.1.9 2 2.01 2z\",\"notifications_none\":\"M12 22c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 5.36 6 7.92 6 11v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6c0-2.48 1.51-4.5 4-4.5s4 2.02 4 4.5v6z\",\"notifications_off\":\"M20 18.69L7.84 6.14 5.27 3.49 4 4.76l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.72l-1-1.03zM12 22c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V11c0-3.08-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.68z\",\"notifications_paused\":\"M12 22c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V4c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 5.36 6 7.93 6 11v5l-2 2v1h16v-1l-2-2zm-3.5-6.2l-2.8 3.4h2.8V15h-5v-1.8l2.8-3.4H9.5V8h5v1.8z\",\"pages\":\"M3 5v6h5L7 7l4 1V3H5c-1.1 0-2 .9-2 2zm5 8H3v6c0 1.1.9 2 2 2h6v-5l-4 1 1-4zm9 4l-4-1v5h6c1.1 0 2-.9 2-2v-6h-5l1 4zm2-14h-6v5l4-1-1 4h5V5c0-1.1-.9-2-2-2z\",\"party_mode\":\"M20 4h-3.17L15 2H9L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 3c1.63 0 3.06.79 3.98 2H12c-1.66 0-3 1.34-3 3 0 .35.07.69.18 1H7.1A5.002 5.002 0 0 1 12 7zm0 10c-1.63 0-3.06-.79-3.98-2H12c1.66 0 3-1.34 3-3 0-.35-.07-.69-.18-1h2.08a5.002 5.002 0 0 1-4.9 6z\",\"people\":\"M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z\",\"people_outline\":\"M16.5 13c-1.2 0-3.07.34-4.5 1-1.43-.67-3.3-1-4.5-1C5.33 13 1 14.08 1 16.25V19h22v-2.75c0-2.17-4.33-3.25-6.5-3.25zm-4 4.5h-10v-1.25c0-.54 2.56-1.75 5-1.75s5 1.21 5 1.75v1.25zm9 0H14v-1.25c0-.46-.2-.86-.52-1.22.88-.3 1.96-.53 3.02-.53 2.44 0 5 1.21 5 1.75v1.25zM7.5 12c1.93 0 3.5-1.57 3.5-3.5S9.43 5 7.5 5 4 6.57 4 8.5 5.57 12 7.5 12zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 5.5c1.93 0 3.5-1.57 3.5-3.5S18.43 5 16.5 5 13 6.57 13 8.5s1.57 3.5 3.5 3.5zm0-5.5c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2z\",\"person\":\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\",\"person_add\":\"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\",\"person_outline\":\"M12 5.9a2.1 2.1 0 1 1 0 4.2 2.1 2.1 0 0 1 0-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\",\"plus_one\":\"M10 8H8v4H4v2h4v4h2v-4h4v-2h-4zm4.5-1.92V7.9l2.5-.5V18h2V5z\",\"poll\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\",\"public\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\",\"school\":\"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z\",\"sentiment_dissatisfied\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-6c-2.33 0-4.32 1.45-5.12 3.5h1.67c.69-1.19 1.97-2 3.45-2s2.75.81 3.45 2h1.67c-.8-2.05-2.79-3.5-5.12-3.5z\",\"sentiment_neutral\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\",\"sentiment_satisfied\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm0-4c-1.48 0-2.75-.81-3.45-2H6.88a5.495 5.495 0 0 0 10.24 0h-1.67c-.7 1.19-1.97 2-3.45 2z\",\"sentiment_very_dissatisfied\":\"M11.99 2C6.47 2 2 6.47 2 12s4.47 10 9.99 10S22 17.53 22 12 17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm4.18-12.24l-1.06 1.06-1.06-1.06L13 8.82l1.06 1.06L13 10.94 14.06 12l1.06-1.06L16.18 12l1.06-1.06-1.06-1.06 1.06-1.06zM7.82 12l1.06-1.06L9.94 12 11 10.94 9.94 9.88 11 8.82 9.94 7.76 8.88 8.82 7.82 7.76 6.76 8.82l1.06 1.06-1.06 1.06zM12 14c-2.33 0-4.31 1.46-5.11 3.5h10.22c-.8-2.04-2.78-3.5-5.11-3.5z\",\"sentiment_very_satisfied\":\"M11.99 2C6.47 2 2 6.47 2 12s4.47 10 9.99 10S22 17.53 22 12 17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm1-10.06L14.06 11l1.06-1.06L16.18 11l1.06-1.06-2.12-2.12zm-4.12 0L9.94 11 11 9.94 8.88 7.82 6.76 9.94 7.82 11zM12 17.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\",\"share\":\"M18 16.08c-.76 0-1.44.3-1.96.77L8.91 12.7c.05-.23.09-.46.09-.7s-.04-.47-.09-.7l7.05-4.11c.54.5 1.25.81 2.04.81 1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3c0 .24.04.47.09.7L8.04 9.81C7.5 9.31 6.79 9 6 9c-1.66 0-3 1.34-3 3s1.34 3 3 3c.79 0 1.5-.31 2.04-.81l7.12 4.16c-.05.21-.08.43-.08.65 0 1.61 1.31 2.92 2.92 2.92 1.61 0 2.92-1.31 2.92-2.92s-1.31-2.92-2.92-2.92z\",\"whatshot\":\"M13.5.67s.74 2.65.74 4.8c0 2.06-1.35 3.73-3.41 3.73-2.07 0-3.63-1.67-3.63-3.73l.03-.36C5.21 7.51 4 10.62 4 14c0 4.42 3.58 8 8 8s8-3.58 8-8C20 8.61 17.41 3.8 13.5.67zM11.71 19c-1.78 0-3.22-1.4-3.22-3.14 0-1.62 1.05-2.76 2.81-3.12 1.77-.36 3.6-1.21 4.62-2.58.39 1.29.59 2.65.59 4.04a4.8 4.8 0 0 1-4.8 4.8z\",\"3d_rotation\":\"M7.52 21.48A10.487 10.487 0 0 1 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32zm.89-6.52c-.19 0-.37-.03-.52-.08a1.07 1.07 0 0 1-.4-.24.99.99 0 0 1-.26-.37c-.06-.14-.09-.3-.09-.47h-1.3c0 .36.07.68.21.95.14.27.33.5.56.69.24.18.51.32.82.41.3.1.62.15.96.15.37 0 .72-.05 1.03-.15.32-.1.6-.25.83-.44s.42-.43.55-.72c.13-.29.2-.61.2-.97 0-.19-.02-.38-.07-.56a1.67 1.67 0 0 0-.23-.51c-.1-.16-.24-.3-.4-.43-.17-.13-.37-.23-.61-.31a2.098 2.098 0 0 0 .89-.75c.1-.15.17-.3.22-.46.05-.16.07-.32.07-.48 0-.36-.06-.68-.18-.96a1.78 1.78 0 0 0-.51-.69c-.2-.19-.47-.33-.77-.43C9.1 8.05 8.76 8 8.39 8c-.36 0-.69.05-1 .16-.3.11-.57.26-.79.45-.21.19-.38.41-.51.67-.12.26-.18.54-.18.85h1.3c0-.17.03-.32.09-.45s.14-.25.25-.34c.11-.09.23-.17.38-.22.15-.05.3-.08.48-.08.4 0 .7.1.89.31.19.2.29.49.29.86 0 .18-.03.34-.08.49a.87.87 0 0 1-.25.37c-.11.1-.25.18-.41.24-.16.06-.36.09-.58.09H7.5v1.03h.77c.22 0 .42.02.6.07s.33.13.45.23c.12.11.22.24.29.4.07.16.1.35.1.57 0 .41-.12.72-.35.93-.23.23-.55.33-.95.33zm8.55-5.92c-.32-.33-.7-.59-1.14-.77-.43-.18-.92-.27-1.46-.27H12v8h2.3c.55 0 1.06-.09 1.51-.27.45-.18.84-.43 1.16-.76.32-.33.57-.73.74-1.19.17-.47.26-.99.26-1.57v-.4c0-.58-.09-1.1-.26-1.57-.18-.47-.43-.87-.75-1.2zm-.39 3.16c0 .42-.05.79-.14 1.13-.1.33-.24.62-.43.85-.19.23-.43.41-.71.53-.29.12-.62.18-.99.18h-.91V9.12h.97c.72 0 1.27.23 1.64.69.38.46.57 1.12.57 1.99v.4zM12 0l-.66.03 3.81 3.81 1.33-1.33c3.27 1.55 5.61 4.72 5.96 8.48h1.5C23.44 4.84 18.29 0 12 0z\",\"accessibility\":\"M12 2c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm9 7h-6v13h-2v-6h-2v6H9V9H3V7h18v2z\",\"accessible\":\"M19 13v-2c-1.54.02-3.09-.75-4.07-1.83l-1.29-1.43c-.17-.19-.38-.34-.61-.45-.01 0-.01-.01-.02-.01H13c-.35-.2-.75-.3-1.19-.26C10.76 7.11 10 8.04 10 9.09V15c0 1.1.9 2 2 2h5v5h2v-5.5c0-1.1-.9-2-2-2h-3v-3.45c1.29 1.07 3.25 1.94 5 1.95zm-6.17 5c-.41 1.16-1.52 2-2.83 2-1.66 0-3-1.34-3-3 0-1.31.84-2.41 2-2.83V12.1a5 5 0 1 0 5.9 5.9h-2.07z\",\"account_balance\":\"M4 10v7h3v-7H4zm6 0v7h3v-7h-3zM2 22h19v-3H2v3zm14-12v7h3v-7h-3zm-4.5-9L2 6v2h19V6l-9.5-5z\",\"account_balance_wallet\":\"M21 18v1c0 1.1-.9 2-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h14c1.1 0 2 .9 2 2v1h-9a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h9zm-9-2h10V8H12v8zm4-2.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"account_box\":\"M3 5v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5a2 2 0 0 0-2 2zm12 4c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z\",\"account_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2a7.2 7.2 0 0 1-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 0 1-6 3.22z\",\"add_shopping_cart\":\"M11 9h2V6h3V4h-3V1h-2v3H8v2h3v3zm-4 9c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zm10 0c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2zm-9.83-3.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.86-7.01L19.42 4h-.01l-1.1 2-2.76 5H8.53l-.13-.27L6.16 6l-.95-2-.94-2H1v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.13 0-.25-.11-.25-.25z\",\"alarm\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"alarm_add\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z\",\"alarm_off\":\"M12 6c3.87 0 7 3.13 7 7 0 .84-.16 1.65-.43 2.4l1.52 1.52c.58-1.19.91-2.51.91-3.92a9 9 0 0 0-9-9c-1.41 0-2.73.33-3.92.91L9.6 6.43C10.35 6.16 11.16 6 12 6zm10-.28l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM2.92 2.29L1.65 3.57 2.98 4.9l-1.11.93 1.42 1.42 1.11-.94.8.8A8.964 8.964 0 0 0 3 13c0 4.97 4.02 9 9 9 2.25 0 4.31-.83 5.89-2.2l2.2 2.2 1.27-1.27L3.89 3.27l-.97-.98zm13.55 16.1C15.26 19.39 13.7 20 12 20c-3.87 0-7-3.13-7-7 0-1.7.61-3.26 1.61-4.47l9.86 9.86zM8.02 3.28L6.6 1.86l-.86.71 1.42 1.42.86-.71z\",\"alarm_on\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-1.46-5.47L8.41 12.4l-1.06 1.06 3.18 3.18 6-6-1.06-1.06-4.93 4.95z\",\"all_out\":\"M16.21 4.16l4 4v-4zm4 12l-4 4h4zm-12 4l-4-4v4zm-4-12l4-4h-4zm12.95-.95c-2.73-2.73-7.17-2.73-9.9 0s-2.73 7.17 0 9.9 7.17 2.73 9.9 0 2.73-7.16 0-9.9zm-1.1 8.8c-2.13 2.13-5.57 2.13-7.7 0s-2.13-5.57 0-7.7 5.57-2.13 7.7 0 2.13 5.57 0 7.7z\",\"android\":\"M6 18c0 .55.45 1 1 1h1v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h2v3.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5V19h1c.55 0 1-.45 1-1V8H6v10zM3.5 8C2.67 8 2 8.67 2 9.5v7c0 .83.67 1.5 1.5 1.5S5 17.33 5 16.5v-7C5 8.67 4.33 8 3.5 8zm17 0c-.83 0-1.5.67-1.5 1.5v7c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5v-7c0-.83-.67-1.5-1.5-1.5zm-4.97-5.84l1.3-1.3c.2-.2.2-.51 0-.71-.2-.2-.51-.2-.71 0l-1.48 1.48A5.84 5.84 0 0 0 12 1c-.96 0-1.86.23-2.66.63L7.85.15c-.2-.2-.51-.2-.71 0-.2.2-.2.51 0 .71l1.31 1.31A5.983 5.983 0 0 0 6 7h12c0-1.99-.97-3.75-2.47-4.84zM10 5H9V4h1v1zm5 0h-1V4h1v1z\",\"announcement\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 9h-2V5h2v6zm0 4h-2v-2h2v2z\",\"aspect_ratio\":\"M19 12h-2v3h-3v2h5v-5zM7 9h3V7H5v5h2V9zm14-6H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\",\"assessment\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\",\"assignment\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\",\"assignment_ind\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 4c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1.4c0-2 4-3.1 6-3.1s6 1.1 6 3.1V19z\",\"assignment_late\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-6 15h-2v-2h2v2zm0-4h-2V8h2v6zm-1-9c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\",\"assignment_return\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm4 12h-4v3l-5-5 5-5v3h4v4z\",\"assignment_returned\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm0 15l-5-5h3V9h4v4h3l-5 5z\",\"assignment_turned_in\":\"M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 14l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z\",\"autorenew\":\"M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8A5.87 5.87 0 0 1 6 12c0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z\",\"backup\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z\",\"book\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z\",\"bookmark\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\",\"bookmark_border\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z\",\"bug_report\":\"M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z\",\"build\":\"M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z\",\"cached\":\"M19 8l-4 4h3c0 3.31-2.69 6-6 6a5.87 5.87 0 0 1-2.8-.7l-1.46 1.46A7.93 7.93 0 0 0 12 20c4.42 0 8-3.58 8-8h3l-4-4zM6 12c0-3.31 2.69-6 6-6 1.01 0 1.97.25 2.8.7l1.46-1.46A7.93 7.93 0 0 0 12 4c-4.42 0-8 3.58-8 8H1l4 4 4-4H6z\",\"camera_enhance\":\"M9 3L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2h-3.17L15 3H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-1l1.25-2.75L16 13l-2.75-1.25L12 9l-1.25 2.75L8 13l2.75 1.25z\",\"card_giftcard\":\"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68A3.01 3.01 0 0 0 9 2C7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z\",\"card_membership\":\"M20 2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h4v5l4-2 4 2v-5h4c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 13H4v-2h16v2zm0-5H4V4h16v6z\",\"card_travel\":\"M20 6h-3V4c0-1.11-.89-2-2-2H9c-1.11 0-2 .89-2 2v2H4c-1.11 0-2 .89-2 2v11c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zM9 4h6v2H9V4zm11 15H4v-2h16v2zm0-5H4V8h3v2h2V8h6v2h2V8h3v6z\",\"change_history\":\"M12 7.77L18.39 18H5.61L12 7.77M12 4L2 20h20L12 4z\",\"check_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\",\"chrome_reader_mode\":\"M13 12h7v1.5h-7zm0-2.5h7V11h-7zm0 5h7V16h-7zM21 4H3c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 15h-9V6h9v13z\",\"class\":\"M18 2H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 4h5v8l-2.5-1.5L6 12V4z\",\"code\":\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\",\"compare_arrows\":\"M9.01 14H2v2h7.01v3L13 15l-3.99-4v3zm5.98-1v-3H22V8h-7.01V5L11 9l3.99 4z\",\"copyright\":\"M10.08 10.86c.05-.33.16-.62.3-.87s.34-.46.59-.62c.24-.15.54-.22.91-.23.23.01.44.05.63.13.2.09.38.21.52.36s.25.33.34.53.13.42.14.64h1.79c-.02-.47-.11-.9-.28-1.29s-.4-.73-.7-1.01-.66-.5-1.08-.66-.88-.23-1.39-.23c-.65 0-1.22.11-1.7.34s-.88.53-1.2.92-.56.84-.71 1.36S8 11.29 8 11.87v.27c0 .58.08 1.12.23 1.64s.39.97.71 1.35.72.69 1.2.91 1.05.34 1.7.34c.47 0 .91-.08 1.32-.23s.77-.36 1.08-.63.56-.58.74-.94.29-.74.3-1.15h-1.79c-.01.21-.06.4-.15.58s-.21.33-.36.46-.32.23-.52.3c-.19.07-.39.09-.6.1-.36-.01-.66-.08-.89-.23-.25-.16-.45-.37-.59-.62s-.25-.55-.3-.88-.08-.67-.08-1v-.27c0-.35.03-.68.08-1.01zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"credit_card\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z\",\"dashboard\":\"M3 13h8V3H3v10zm0 8h8v-6H3v6zm10 0h8V11h-8v10zm0-18v6h8V3h-8z\",\"date_range\":\"M9 11H7v2h2v-2zm4 0h-2v2h2v-2zm4 0h-2v2h2v-2zm2-7h-1V2h-2v2H8V2H6v2H5c-1.11 0-1.99.9-1.99 2L3 20a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 16H5V9h14v11z\",\"delete\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\",\"delete_forever\":\"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z\",\"description\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z\",\"dns\":\"M20 13H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zM7 19c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM20 3H4c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h16c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zM7 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"done\":\"M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z\",\"done_all\":\"M18 7l-1.41-1.41-6.34 6.34 1.41 1.41L18 7zm4.24-1.41L11.66 16.17 7.48 12l-1.41 1.41L11.66 19l12-12-1.42-1.41zM.41 13.41L6 19l1.41-1.41L1.83 12 .41 13.41z\",\"donut_large\":\"M11 5.08V2c-5 .5-9 4.81-9 10s4 9.5 9 10v-3.08c-3-.48-6-3.4-6-6.92s3-6.44 6-6.92zM18.97 11H22c-.47-5-4-8.53-9-9v3.08C16 5.51 18.54 8 18.97 11zM13 18.92V22c5-.47 8.53-4 9-9h-3.03c-.43 3-2.97 5.49-5.97 5.92z\",\"donut_small\":\"M11 9.16V2c-5 .5-9 4.79-9 10s4 9.5 9 10v-7.16c-1-.41-2-1.52-2-2.84s1-2.43 2-2.84zM14.86 11H22c-.48-4.75-4-8.53-9-9v7.16c1 .3 1.52.98 1.86 1.84zM13 14.84V22c5-.47 8.52-4.25 9-9h-7.14c-.34.86-.86 1.54-1.86 1.84z\",\"eject\":\"M5 17h14v2H5zm7-12L5.33 15h13.34z\",\"euro_symbol\":\"M15 18.5A6.48 6.48 0 0 1 9.24 15H15v-2H8.58c-.05-.33-.08-.66-.08-1s.03-.67.08-1H15V9H9.24A6.49 6.49 0 0 1 15 5.5c1.61 0 3.09.59 4.23 1.57L21 5.3A8.955 8.955 0 0 0 15 3c-3.92 0-7.24 2.51-8.48 6H3v2h3.06a8.262 8.262 0 0 0 0 2H3v2h3.52c1.24 3.49 4.56 6 8.48 6 2.31 0 4.41-.87 6-2.3l-1.78-1.77c-1.13.98-2.6 1.57-4.22 1.57z\",\"event\":\"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\",\"event_seat\":\"M4 18v3h3v-3h10v3h3v-6H4zm15-8h3v3h-3zM2 10h3v3H2zm15 3H7V5c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v8z\",\"exit_to_app\":\"M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5a2 2 0 0 0-2 2v4h2V5h14v14H5v-4H3v4a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\",\"explore\":\"M12 10.9c-.61 0-1.1.49-1.1 1.1s.49 1.1 1.1 1.1c.61 0 1.1-.49 1.1-1.1s-.49-1.1-1.1-1.1zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm2.19 12.19L6 18l3.81-8.19L18 6l-3.81 8.19z\",\"extension\":\"M20.5 11H19V7c0-1.1-.9-2-2-2h-4V3.5a2.5 2.5 0 0 0-5 0V5H4c-1.1 0-1.99.9-1.99 2v3.8H3.5c1.49 0 2.7 1.21 2.7 2.7s-1.21 2.7-2.7 2.7H2V20c0 1.1.9 2 2 2h3.8v-1.5a2.7 2.7 0 0 1 2.7-2.7 2.7 2.7 0 0 1 2.7 2.7V22H17c1.1 0 2-.9 2-2v-4h1.5a2.5 2.5 0 0 0 0-5z\",\"face\":\"M9 11.75a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5zm6 0a1.25 1.25 0 1 0 0 2.5 1.25 1.25 0 0 0 0-2.5zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8 0-.29.02-.58.05-.86 2.36-1.05 4.23-2.98 5.21-5.37a9.974 9.974 0 0 0 10.41 3.97c.21.71.33 1.47.33 2.26 0 4.41-3.59 8-8 8z\",\"favorite\":\"M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z\",\"favorite_border\":\"M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z\",\"feedback\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 12h-2v-2h2v2zm0-4h-2V6h2v4z\",\"find_in_page\":\"M20 19.59V8l-6-6H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c.45 0 .85-.15 1.19-.4l-4.43-4.43c-.8.52-1.74.83-2.76.83-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5c0 1.02-.31 1.96-.83 2.75L20 19.59zM9 13c0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3-3 1.34-3 3z\",\"find_replace\":\"M11 6c1.38 0 2.63.56 3.54 1.46L12 10h6V4l-2.05 2.05A6.976 6.976 0 0 0 11 4c-3.53 0-6.43 2.61-6.92 6H6.1A5 5 0 0 1 11 6zm5.64 9.14A6.89 6.89 0 0 0 17.92 12H15.9a5 5 0 0 1-4.9 4c-1.38 0-2.63-.56-3.54-1.46L10 12H4v6l2.05-2.05A6.976 6.976 0 0 0 11 18c1.55 0 2.98-.51 4.14-1.36L20 21.49 21.49 20l-4.85-4.86z\",\"fingerprint\":\"M17.81 4.47c-.08 0-.16-.02-.23-.06C15.66 3.42 14 3 12.01 3c-1.98 0-3.86.47-5.57 1.41a.51.51 0 0 1-.68-.2.506.506 0 0 1 .2-.68C7.82 2.52 9.86 2 12.01 2c2.13 0 3.99.47 6.03 1.52.25.13.34.43.21.67a.49.49 0 0 1-.44.28zM3.5 9.72a.5.5 0 0 1-.41-.79c.99-1.4 2.25-2.5 3.75-3.27C9.98 4.04 14 4.03 17.15 5.65c1.5.77 2.76 1.86 3.75 3.25a.5.5 0 0 1-.12.7.5.5 0 0 1-.7-.12 9.388 9.388 0 0 0-3.39-2.94c-2.87-1.47-6.54-1.47-9.4.01-1.36.7-2.5 1.7-3.4 2.96-.08.14-.23.21-.39.21zm6.25 12.07a.47.47 0 0 1-.35-.15c-.87-.87-1.34-1.43-2.01-2.64-.69-1.23-1.05-2.73-1.05-4.34 0-2.97 2.54-5.39 5.66-5.39s5.66 2.42 5.66 5.39c0 .28-.22.5-.5.5s-.5-.22-.5-.5c0-2.42-2.09-4.39-4.66-4.39-2.57 0-4.66 1.97-4.66 4.39 0 1.44.32 2.77.93 3.85.64 1.15 1.08 1.64 1.85 2.42.19.2.19.51 0 .71-.11.1-.24.15-.37.15zm7.17-1.85c-1.19 0-2.24-.3-3.1-.89-1.49-1.01-2.38-2.65-2.38-4.39 0-.28.22-.5.5-.5s.5.22.5.5c0 1.41.72 2.74 1.94 3.56.71.48 1.54.71 2.54.71.24 0 .64-.03 1.04-.1.27-.05.53.13.58.41.05.27-.13.53-.41.58-.57.11-1.07.12-1.21.12zM14.91 22c-.04 0-.09-.01-.13-.02-1.59-.44-2.63-1.03-3.72-2.1a7.297 7.297 0 0 1-2.17-5.22c0-1.62 1.38-2.94 3.08-2.94 1.7 0 3.08 1.32 3.08 2.94 0 1.07.93 1.94 2.08 1.94s2.08-.87 2.08-1.94c0-3.77-3.25-6.83-7.25-6.83-2.84 0-5.44 1.58-6.61 4.03-.39.81-.59 1.76-.59 2.8 0 .78.07 2.01.67 3.61.1.26-.03.55-.29.64-.26.1-.55-.04-.64-.29a11.14 11.14 0 0 1-.73-3.96c0-1.2.23-2.29.68-3.24 1.33-2.79 4.28-4.6 7.51-4.6 4.55 0 8.25 3.51 8.25 7.83 0 1.62-1.38 2.94-3.08 2.94s-3.08-1.32-3.08-2.94c0-1.07-.93-1.94-2.08-1.94s-2.08.87-2.08 1.94c0 1.71.66 3.31 1.87 4.51.95.94 1.86 1.46 3.27 1.85.27.07.42.35.35.61-.05.23-.26.38-.47.38z\",\"flight_land\":\"M2.5 19h19v2h-19zm7.18-5.73l4.35 1.16 5.31 1.42c.8.21 1.62-.26 1.84-1.06.21-.8-.26-1.62-1.06-1.84l-5.31-1.42-2.76-9.02L10.12 2v8.28L5.15 8.95l-.93-2.32-1.45-.39v5.17l1.6.43 5.31 1.43z\",\"flight_takeoff\":\"M2.5 19h19v2h-19zm19.57-9.36c-.21-.8-1.04-1.28-1.84-1.06L14.92 10l-6.9-6.43-1.93.51 4.14 7.17-4.97 1.33-1.97-1.54-1.45.39 1.82 3.16.77 1.33 1.6-.43 5.31-1.42 4.35-1.16L21 11.49c.81-.23 1.28-1.05 1.07-1.85z\",\"flip_to_back\":\"M9 7H7v2h2V7zm0 4H7v2h2v-2zm0-8a2 2 0 0 0-2 2h2V3zm4 12h-2v2h2v-2zm6-12v2h2c0-1.1-.9-2-2-2zm-6 0h-2v2h2V3zM9 17v-2H7a2 2 0 0 0 2 2zm10-4h2v-2h-2v2zm0-4h2V7h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zM5 7H3v12a2 2 0 0 0 2 2h12v-2H5V7zm10-2h2V3h-2v2zm0 12h2v-2h-2v2z\",\"flip_to_front\":\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm2 4v-2H3a2 2 0 0 0 2 2zM3 9h2V7H3v2zm12 12h2v-2h-2v2zm4-18H9a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12H9V5h10v10zm-8 6h2v-2h-2v2zm-4 0h2v-2H7v2z\",\"g_translate\":\"M20 5h-9.12L10 2H4c-1.1 0-2 .9-2 2v13c0 1.1.9 2 2 2h7l1 3h8c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zM7.17 14.59c-2.25 0-4.09-1.83-4.09-4.09s1.83-4.09 4.09-4.09c1.04 0 1.99.37 2.74 1.07l.07.06-1.23 1.18-.06-.05c-.29-.27-.78-.59-1.52-.59-1.31 0-2.38 1.09-2.38 2.42s1.07 2.42 2.38 2.42c1.37 0 1.96-.87 2.12-1.46H7.08V9.91h3.95l.01.07c.04.21.05.4.05.61 0 2.35-1.61 4-3.92 4zm6.03-1.71c.33.6.74 1.18 1.19 1.7l-.54.53-.65-2.23zm.77-.76h-.99l-.31-1.04h3.99s-.34 1.31-1.56 2.74a9.18 9.18 0 0 1-1.13-1.7zM21 20c0 .55-.45 1-1 1h-7l2-2-.81-2.77.92-.92L17.79 18l.73-.73-2.71-2.68c.9-1.03 1.6-2.25 1.92-3.51H19v-1.04h-3.64V9h-1.04v1.04h-1.96L11.18 6H20c.55 0 1 .45 1 1v13z\",\"gavel\":\"M1 21h12v2H1zM5.245 8.07l2.83-2.827 14.14 14.142-2.828 2.828zM12.317 1l5.657 5.656-2.83 2.83-5.654-5.66zM3.825 9.485l5.657 5.657-2.828 2.828-5.657-5.657z\",\"get_app\":\"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\",\"gif\":\"M11.5 9H13v6h-1.5zM9 9H6c-.6 0-1 .5-1 1v4c0 .5.4 1 1 1h3c.6 0 1-.5 1-1v-2H8.5v1.5h-2v-3H10V10c0-.5-.4-1-1-1zm10 1.5V9h-4.5v6H16v-2h2v-1.5h-2v-1z\",\"grade\":\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21z\",\"group_work\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM8 17.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5zM9.5 8a2.5 2.5 0 0 1 5 0 2.5 2.5 0 0 1-5 0zm6.5 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z\",\"help\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\",\"help_outline\":\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14a4 4 0 0 0-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5a4 4 0 0 0-4-4z\",\"highlight_off\":\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"history\":\"M13 3a9 9 0 0 0-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0 0 13 21a9 9 0 0 0 0-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\",\"home\":\"M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z\",\"hourglass_empty\":\"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z\",\"hourglass_full\":\"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6z\",\"http\":\"M4.5 11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5v2zm2.5-.5h1.5V15H10v-4.5h1.5V9H7v1.5zm5.5 0H14V15h1.5v-4.5H17V9h-4.5v1.5zm9-1.5H18v6h1.5v-2h2c.8 0 1.5-.7 1.5-1.5v-1c0-.8-.7-1.5-1.5-1.5zm0 2.5h-2v-1h2v1z\",\"https\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\",\"important_devices\":\"M23 11.01L18 11c-.55 0-1 .45-1 1v9c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-9c0-.55-.45-.99-1-.99zM23 20h-5v-7h5v7zM20 2H2C.89 2 0 2.89 0 4v12a2 2 0 0 0 2 2h7v2H7v2h8v-2h-2v-2h2v-2H2V4h18v5h2V4a2 2 0 0 0-2-2zm-8.03 7L11 6l-.97 3H7l2.47 1.76-.94 2.91 2.47-1.8 2.47 1.8-.94-2.91L15 9h-3.03z\",\"info\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\",\"info_outline\":\"M11 17h2v-6h-2v6zm1-15C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zM11 9h2V7h-2v2z\",\"input\":\"M21 3.01H3c-1.1 0-2 .9-2 2V9h2V4.99h18v14.03H3V15H1v4.01c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98v-14a2 2 0 0 0-2-2zM11 16l4-4-4-4v3H1v2h10v3z\",\"invert_colors\":\"M17.66 7.93L12 2.27 6.34 7.93c-3.12 3.12-3.12 8.19 0 11.31A7.98 7.98 0 0 0 12 21.58c2.05 0 4.1-.78 5.66-2.34 3.12-3.12 3.12-8.19 0-11.31zM12 19.59c-1.6 0-3.11-.62-4.24-1.76C6.62 16.69 6 15.19 6 13.59s.62-3.11 1.76-4.24L12 5.1v14.49z\",\"label\":\"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z\",\"label_outline\":\"M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16zM16 17H5V7h11l3.55 5L16 17z\",\"language\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm6.93 6h-2.95a15.65 15.65 0 0 0-1.38-3.56A8.03 8.03 0 0 1 18.92 8zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56A7.987 7.987 0 0 1 5.08 16zm2.95-8H5.08a7.987 7.987 0 0 1 4.33-3.56A15.65 15.65 0 0 0 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95a8.03 8.03 0 0 1-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\",\"launch\":\"M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\",\"lightbulb_outline\":\"M9 21c0 .55.45 1 1 1h4c.55 0 1-.45 1-1v-1H9v1zm3-19C8.14 2 5 5.14 5 9c0 2.38 1.19 4.47 3 5.74V17c0 .55.45 1 1 1h6c.55 0 1-.45 1-1v-2.26c1.81-1.27 3-3.36 3-5.74 0-3.86-3.14-7-7-7zm2.85 11.1l-.85.6V16h-4v-2.3l-.85-.6A4.997 4.997 0 0 1 7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 1.63-.8 3.16-2.15 4.1z\",\"line_style\":\"M3 16h5v-2H3v2zm6.5 0h5v-2h-5v2zm6.5 0h5v-2h-5v2zM3 20h2v-2H3v2zm4 0h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM3 12h8v-2H3v2zm10 0h8v-2h-8v2zM3 4v4h18V4H3z\",\"line_weight\":\"M3 17h18v-2H3v2zm0 3h18v-1H3v1zm0-7h18v-3H3v3zm0-9v4h18V4H3z\",\"list\":\"M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z\",\"lock\":\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\",\"lock_open\":\"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm0 12H6V10h12v10z\",\"lock_outline\":\"M12 17c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm6-9h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM8.9 6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1v2H8.9V6zM18 20H6V10h12v10z\",\"loyalty\":\"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7zm11.77 8.27L13 19.54l-4.27-4.27A2.5 2.5 0 0 1 10.5 11c.69 0 1.32.28 1.77.74l.73.72.73-.73a2.5 2.5 0 0 1 3.54 3.54z\",\"markunread_mailbox\":\"M20 6H10v6H8V4h6V0H6v6H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2z\",\"motorcycle\":\"M19.44 9.03L15.41 5H11v2h3.59l2 2H5c-2.8 0-5 2.2-5 5s2.2 5 5 5c2.46 0 4.45-1.69 4.9-4h1.65l2.77-2.77c-.21.54-.32 1.14-.32 1.77 0 2.8 2.2 5 5 5s5-2.2 5-5c0-2.65-1.97-4.77-4.56-4.97zM7.82 15C7.4 16.15 6.28 17 5 17c-1.63 0-3-1.37-3-3s1.37-3 3-3c1.28 0 2.4.85 2.82 2H5v2h2.82zM19 17c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3z\",\"note_add\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 14h-3v3h-2v-3H8v-2h3v-3h2v3h3v2zm-3-7V3.5L18.5 9H13z\",\"offline_pin\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm5 16H7v-2h10v2zm-6.7-4L7 10.7l1.4-1.4 1.9 1.9 5.3-5.3L17 7.3 10.3 14z\",\"opacity\":\"M17.66 8L12 2.35 6.34 8A8.02 8.02 0 0 0 4 13.64c0 2 .78 4.11 2.34 5.67a7.99 7.99 0 0 0 11.32 0c1.56-1.56 2.34-3.67 2.34-5.67S19.22 9.56 17.66 8zM6 14c.01-2 .62-3.27 1.76-4.4L12 5.27l4.24 4.38C17.38 10.77 17.99 12 18 14H6z\",\"open_in_browser\":\"M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4v-2H5V8h14v10h-4v2h4c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm-7 6l-4 4h3v6h2v-6h3l-4-4z\",\"open_in_new\":\"M19 19H5V5h7V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\",\"open_with\":\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\",\"pageview\":\"M11.5 9a2.5 2.5 0 0 0 0 5 2.5 2.5 0 0 0 0-5zM20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-3.21 14.21l-2.91-2.91c-.69.44-1.51.7-2.39.7C9.01 16 7 13.99 7 11.5S9.01 7 11.5 7 16 9.01 16 11.5c0 .88-.26 1.69-.7 2.39l2.91 2.9-1.42 1.42z\",\"pan_tool\":\"M23 5.5V20c0 2.2-1.8 4-4 4h-7.3c-1.08 0-2.1-.43-2.85-1.19L1 14.83s1.26-1.23 1.3-1.25c.22-.19.49-.29.79-.29.22 0 .42.06.6.16.04.01 4.31 2.46 4.31 2.46V4c0-.83.67-1.5 1.5-1.5S11 3.17 11 4v7h1V1.5c0-.83.67-1.5 1.5-1.5S15 .67 15 1.5V11h1V2.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V11h1V5.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5z\",\"payment\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4v-6h16v6zm0-10H4V6h16v2z\",\"perm_camera_mic\":\"M20 5h-3.17L15 3H9L7.17 5H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v-2.09c-2.83-.48-5-2.94-5-5.91h2c0 2.21 1.79 4 4 4s4-1.79 4-4h2c0 2.97-2.17 5.43-5 5.91V21h7c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-6 8c0 1.1-.9 2-2 2s-2-.9-2-2V9c0-1.1.9-2 2-2s2 .9 2 2v4z\",\"perm_contact_calendar\":\"M19 3h-1V1h-2v2H8V1H6v2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm6 12H6v-1c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1z\",\"perm_data_setting\":\"M18.99 11.5c.34 0 .67.03 1 .07L20 0 0 20h11.56c-.04-.33-.07-.66-.07-1 0-4.14 3.36-7.5 7.5-7.5zm3.71 7.99c.02-.16.04-.32.04-.49 0-.17-.01-.33-.04-.49l1.06-.83a.26.26 0 0 0 .06-.32l-1-1.73c-.06-.11-.19-.15-.31-.11l-1.24.5c-.26-.2-.54-.37-.85-.49l-.19-1.32c-.01-.12-.12-.21-.24-.21h-2c-.12 0-.23.09-.25.21l-.19 1.32c-.3.13-.59.29-.85.49l-1.24-.5c-.11-.04-.24 0-.31.11l-1 1.73c-.06.11-.04.24.06.32l1.06.83a3.908 3.908 0 0 0 0 .98l-1.06.83a.26.26 0 0 0-.06.32l1 1.73c.06.11.19.15.31.11l1.24-.5c.26.2.54.37.85.49l.19 1.32c.02.12.12.21.25.21h2c.12 0 .23-.09.25-.21l.19-1.32c.3-.13.59-.29.84-.49l1.25.5c.11.04.24 0 .31-.11l1-1.73a.26.26 0 0 0-.06-.32l-1.07-.83zm-3.71 1.01c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"perm_device_information\":\"M13 7h-2v2h2V7zm0 4h-2v6h2v-6zm4-9.99L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\",\"perm_identity\":\"M12 5.9a2.1 2.1 0 1 1 0 4.2 2.1 2.1 0 0 1 0-4.2m0 9c2.97 0 6.1 1.46 6.1 2.1v1.1H5.9V17c0-.64 3.13-2.1 6.1-2.1M12 4C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 9c-2.67 0-8 1.34-8 4v3h16v-3c0-2.66-5.33-4-8-4z\",\"perm_media\":\"M2 6H0v5h.01L0 20c0 1.1.9 2 2 2h18v-2H2V6zm20-2h-8l-2-2H6c-1.1 0-1.99.9-1.99 2L4 16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7 15l4.5-6 3.5 4.51 2.5-3.01L21 15H7z\",\"perm_phone_msg\":\"M20 15.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM12 3v10l3-3h6V3h-9z\",\"perm_scan_wifi\":\"M12 3C6.95 3 3.15 4.85 0 7.23L12 22 24 7.25C20.85 4.87 17.05 3 12 3zm1 13h-2v-6h2v6zm-2-8V6h2v2h-2z\",\"picture_in_picture\":\"M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z\",\"picture_in_picture_alt\":\"M19 11h-8v6h8v-6zm4 8V4.98C23 3.88 22.1 3 21 3H3c-1.1 0-2 .88-2 1.98V19c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zm-2 .02H3V4.97h18v14.05z\",\"play_for_work\":\"M11 5v5.59H7.5l4.5 4.5 4.5-4.5H13V5h-2zm-5 9c0 3.31 2.69 6 6 6s6-2.69 6-6h-2c0 2.21-1.79 4-4 4s-4-1.79-4-4H6z\",\"polymer\":\"M19 4h-4L7.11 16.63 4.5 12 9 4H5L.5 12 5 20h4l7.89-12.63L19.5 12 15 20h4l4.5-8z\",\"power_settings_new\":\"M13 3h-2v10h2V3zm4.83 2.17l-1.42 1.42A6.92 6.92 0 0 1 19 12c0 3.87-3.13 7-7 7A6.995 6.995 0 0 1 7.58 6.58L6.17 5.17A8.932 8.932 0 0 0 3 12a9 9 0 0 0 18 0c0-2.74-1.23-5.18-3.17-6.83z\",\"pregnant_woman\":\"M9 4c0-1.11.89-2 2-2s2 .89 2 2-.89 2-2 2-2-.89-2-2zm7 9a3.285 3.285 0 0 0-2-3c0-1.66-1.34-3-3-3s-3 1.34-3 3v7h2v5h3v-5h3v-4z\",\"print\":\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\",\"query_builder\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\",\"question_answer\":\"M21 6h-2v9H6v2c0 .55.45 1 1 1h11l4 4V7c0-.55-.45-1-1-1zm-4 6V3c0-.55-.45-1-1-1H3c-.55 0-1 .45-1 1v14l4-4h10c.55 0 1-.45 1-1z\",\"receipt\":\"M18 17H6v-2h12v2zm0-4H6v-2h12v2zm0-4H6V7h12v2zM3 22l1.5-1.5L6 22l1.5-1.5L9 22l1.5-1.5L12 22l1.5-1.5L15 22l1.5-1.5L18 22l1.5-1.5L21 22V2l-1.5 1.5L18 2l-1.5 1.5L15 2l-1.5 1.5L12 2l-1.5 1.5L9 2 7.5 3.5 6 2 4.5 3.5 3 2v20z\",\"record_voice_over\":\"M9 15c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4zm7.76-9.64l-1.68 1.69c.84 1.18.84 2.71 0 3.89l1.68 1.69c2.02-2.02 2.02-5.07 0-7.27zM20.07 2l-1.63 1.63c2.77 3.02 2.77 7.56 0 10.74L20.07 16c3.9-3.89 3.91-9.95 0-14z\",\"redeem\":\"M20 6h-2.18c.11-.31.18-.65.18-1a2.996 2.996 0 0 0-5.5-1.65l-.5.67-.5-.68A3.01 3.01 0 0 0 9 2C7.34 2 6 3.34 6 5c0 .35.07.69.18 1H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-5-2c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM9 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm11 15H4v-2h16v2zm0-5H4V8h5.08L7 10.83 8.62 12 11 8.76l1-1.36 1 1.36L15.38 12 17 10.83 14.92 8H20v6z\",\"remove_shopping_cart\":\"M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38A1.997 1.997 0 0 0 17 22c.67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z\",\"reorder\":\"M3 15h18v-2H3v2zm0 4h18v-2H3v2zm0-8h18V9H3v2zm0-6v2h18V5H3z\",\"report_problem\":\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\",\"restore\":\"M13 3a9 9 0 0 0-9 9H1l3.89 3.89.07.14L9 12H6c0-3.87 3.13-7 7-7s7 3.13 7 7-3.13 7-7 7c-1.93 0-3.68-.79-4.94-2.06l-1.42 1.42A8.954 8.954 0 0 0 13 21a9 9 0 0 0 0-18zm-1 5v5l4.28 2.54.72-1.21-3.5-2.08V8H12z\",\"restore_page\":\"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm-2 16c-2.05 0-3.81-1.24-4.58-3h1.71c.63.9 1.68 1.5 2.87 1.5 1.93 0 3.5-1.57 3.5-3.5S13.93 9.5 12 9.5a3.5 3.5 0 0 0-3.1 1.9l1.6 1.6h-4V9l1.3 1.3C8.69 8.92 10.23 8 12 8c2.76 0 5 2.24 5 5s-2.24 5-5 5z\",\"room\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z\",\"rounded_corner\":\"M19 19h2v2h-2v-2zm0-2h2v-2h-2v2zM3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm0-4h2V3H3v2zm4 0h2V3H7v2zm8 16h2v-2h-2v2zm-4 0h2v-2h-2v2zm4 0h2v-2h-2v2zm-8 0h2v-2H7v2zm-4 0h2v-2H3v2zM21 8c0-2.76-2.24-5-5-5h-5v2h5c1.65 0 3 1.35 3 3v5h2V8z\",\"rowing\":\"M8.5 14.5L4 19l1.5 1.5L9 17h2l-2.5-2.5zM15 1c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 20.01L18 24l-2.99-3.01V19.5l-7.1-7.09c-.31.05-.61.07-.91.07v-2.16c1.66.03 3.61-.87 4.67-2.04l1.4-1.55c.19-.21.43-.38.69-.5.29-.14.62-.23.96-.23h.03C15.99 6.01 17 7.02 17 8.26v5.75a3 3 0 0 1-.92 2.16l-3.58-3.58v-2.27c-.63.52-1.43 1.02-2.29 1.39L16.5 18H18l3 3.01z\",\"schedule\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\",\"search\":\"M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z\",\"settings\":\"M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0 0 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 15.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\",\"settings_applications\":\"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42a.353.353 0 0 1 .08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16a.353.353 0 0 1-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z\",\"settings_backup_restore\":\"M14 12c0-1.1-.9-2-2-2s-2 .9-2 2 .9 2 2 2 2-.9 2-2zm-2-9a9 9 0 0 0-9 9H0l4 4 4-4H5c0-3.87 3.13-7 7-7s7 3.13 7 7a6.995 6.995 0 0 1-11.06 5.7l-1.42 1.44A9 9 0 1 0 12 3z\",\"settings_bluetooth\":\"M11 24h2v-2h-2v2zm-4 0h2v-2H7v2zm8 0h2v-2h-2v2zm2.71-18.29L12 0h-1v7.59L6.41 3 5 4.41 10.59 10 5 15.59 6.41 17 11 12.41V20h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 3.83l1.88 1.88L13 7.59V3.83zm1.88 10.46L13 16.17v-3.76l1.88 1.88z\",\"settings_brightness\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02zM8 16h2.5l1.5 1.5 1.5-1.5H16v-2.5l1.5-1.5-1.5-1.5V8h-2.5L12 6.5 10.5 8H8v2.5L6.5 12 8 13.5V16zm4-7c1.66 0 3 1.34 3 3s-1.34 3-3 3V9z\",\"settings_cell\":\"M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm4 0h2v-2h-2v2zM16 .01L8 0C6.9 0 6 .9 6 2v16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V2c0-1.1-.9-1.99-2-1.99zM16 16H8V4h8v12z\",\"settings_ethernet\":\"M7.77 6.76L6.23 5.48.82 12l5.41 6.52 1.54-1.28L3.42 12l4.35-5.24zM7 13h2v-2H7v2zm10-2h-2v2h2v-2zm-6 2h2v-2h-2v2zm6.77-7.52l-1.54 1.28L20.58 12l-4.35 5.24 1.54 1.28L23.18 12l-5.41-6.52z\",\"settings_input_antenna\":\"M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29a2.5 2.5 0 0 0-5 0c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2a9 9 0 0 1 18 0h2c0-6.07-4.93-11-11-11z\",\"settings_input_component\":\"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z\",\"settings_input_composite\":\"M5 2c0-.55-.45-1-1-1s-1 .45-1 1v4H1v6h6V6H5V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2H9v2zm-8 0c0 1.3.84 2.4 2 2.82V23h2v-4.18C6.16 18.4 7 17.3 7 16v-2H1v2zM21 6V2c0-.55-.45-1-1-1s-1 .45-1 1v4h-2v6h6V6h-2zm-8-4c0-.55-.45-1-1-1s-1 .45-1 1v4H9v6h6V6h-2V2zm4 14c0 1.3.84 2.4 2 2.82V23h2v-4.18c1.16-.41 2-1.51 2-2.82v-2h-6v2z\",\"settings_input_hdmi\":\"M18 7V4c0-1.1-.9-2-2-2H8c-1.1 0-2 .9-2 2v3H5v6l3 6v3h8v-3l3-6V7h-1zM8 4h8v3h-2V5h-1v2h-2V5h-1v2H8V4z\",\"settings_input_svideo\":\"M8 11.5c0-.83-.67-1.5-1.5-1.5S5 10.67 5 11.5 5.67 13 6.5 13 8 12.33 8 11.5zm7-5c0-.83-.67-1.5-1.5-1.5h-3C9.67 5 9 5.67 9 6.5S9.67 8 10.5 8h3c.83 0 1.5-.67 1.5-1.5zM8.5 15c-.83 0-1.5.67-1.5 1.5S7.67 18 8.5 18s1.5-.67 1.5-1.5S9.33 15 8.5 15zM12 1C5.93 1 1 5.93 1 12s4.93 11 11 11 11-4.93 11-11S18.07 1 12 1zm0 20c-4.96 0-9-4.04-9-9s4.04-9 9-9 9 4.04 9 9-4.04 9-9 9zm5.5-11c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm-2 5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\",\"settings_overscan\":\"M12.01 5.5L10 8h4l-1.99-2.5zM18 10v4l2.5-1.99L18 10zM6 10l-2.5 2.01L6 14v-4zm8 6h-4l2.01 2.5L14 16zm7-13H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\",\"settings_phone\":\"M13 9h-2v2h2V9zm4 0h-2v2h2V9zm3 6.5c-1.25 0-2.45-.2-3.57-.57a1.02 1.02 0 0 0-1.02.24l-2.2 2.2a15.074 15.074 0 0 1-6.59-6.58l2.2-2.21c.28-.27.36-.66.25-1.01A11.36 11.36 0 0 1 8.5 4c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1 0 9.39 7.61 17 17 17 .55 0 1-.45 1-1v-3.5c0-.55-.45-1-1-1zM19 9v2h2V9h-2z\",\"settings_power\":\"M7 24h2v-2H7v2zm4 0h2v-2h-2v2zm2-22h-2v10h2V2zm3.56 2.44l-1.45 1.45A5.97 5.97 0 0 1 18 11c0 3.31-2.69 6-6 6s-6-2.69-6-6c0-2.17 1.16-4.06 2.88-5.12L7.44 4.44A7.96 7.96 0 0 0 4 11c0 4.42 3.58 8 8 8s8-3.58 8-8a7.96 7.96 0 0 0-3.44-6.56zM15 24h2v-2h-2v2z\",\"settings_remote\":\"M15 9H9c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V10c0-.55-.45-1-1-1zm-3 6c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM7.05 6.05l1.41 1.41a5.022 5.022 0 0 1 7.08 0l1.41-1.41C15.68 4.78 13.93 4 12 4s-3.68.78-4.95 2.05zM12 0C8.96 0 6.21 1.23 4.22 3.22l1.41 1.41C7.26 3.01 9.51 2 12 2s4.74 1.01 6.36 2.64l1.41-1.41C17.79 1.23 15.04 0 12 0z\",\"settings_voice\":\"M7 24h2v-2H7v2zm5-11c1.66 0 2.99-1.34 2.99-3L15 4c0-1.66-1.34-3-3-3S9 2.34 9 4v6c0 1.66 1.34 3 3 3zm-1 11h2v-2h-2v2zm4 0h2v-2h-2v2zm4-14h-1.7c0 3-2.54 5.1-5.3 5.1S6.7 13 6.7 10H5c0 3.41 2.72 6.23 6 6.72V20h2v-3.28c3.28-.49 6-3.31 6-6.72z\",\"shop\":\"M16 6V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H2v13c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6h-6zm-6-2h4v2h-4V4zM9 18V9l7.5 4L9 18z\",\"shop_two\":\"M3 9H1v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2H3V9zm15-4V3c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H5v11c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2V5h-5zm-6-2h4v2h-4V3zm0 12V8l5.5 3-5.5 4z\",\"shopping_basket\":\"M17.21 9l-4.38-6.56a.993.993 0 0 0-.83-.42c-.32 0-.64.14-.83.43L6.79 9H2c-.55 0-1 .45-1 1 0 .09.01.18.04.27l2.54 9.27c.23.84 1 1.46 1.92 1.46h13c.92 0 1.69-.62 1.93-1.46l2.54-9.27L23 10c0-.55-.45-1-1-1h-4.79zM9 9l3-4.4L15 9H9zm3 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"shopping_cart\":\"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\",\"speaker_notes\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM8 14H6v-2h2v2zm0-3H6V9h2v2zm0-3H6V6h2v2zm7 6h-5v-2h5v2zm3-3h-8V9h8v2zm0-3h-8V6h8v2z\",\"speaker_notes_off\":\"M10.54 11l-.54-.54L7.54 8 6 6.46 2.38 2.84 1.27 1.73 0 3l2.01 2.01L2 22l4-4h9l5.73 5.73L22 22.46 17.54 18l-7-7zM8 14H6v-2h2v2zm-2-3V9l2 2H6zm14-9H4.08L10 7.92V6h8v2h-7.92l1 1H18v2h-4.92l6.99 6.99C21.14 17.95 22 17.08 22 16V4c0-1.1-.9-2-2-2z\",\"spellcheck\":\"M12.45 16h2.09L9.43 3H7.57L2.46 16h2.09l1.12-3h5.64l1.14 3zm-6.02-5L8.5 5.48 10.57 11H6.43zm15.16.59l-8.09 8.09L9.83 16l-1.41 1.41 5.09 5.09L23 13l-1.41-1.41z\",\"stars\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zm4.24 16L12 15.45 7.77 18l1.12-4.81-3.73-3.23 4.92-.42L12 5l1.92 4.53 4.92.42-3.73 3.23L16.23 18z\",\"store\":\"M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z\",\"subject\":\"M14 17H4v2h10v-2zm6-8H4v2h16V9zM4 15h16v-2H4v2zM4 5v2h16V5H4z\",\"supervisor_account\":\"M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7a2.5 2.5 0 0 0 0 5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z\",\"swap_horiz\":\"M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z\",\"swap_vert\":\"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z\",\"swap_vertical_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM6.5 9L10 5.5 13.5 9H11v4H9V9H6.5zm11 6L14 18.5 10.5 15H13v-4h2v4h2.5z\",\"system_update_alt\":\"M12 16.5l4-4h-3v-9h-2v9H8l4 4zm9-13h-6v1.99h6v14.03H3V5.49h6V3.5H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-14c0-1.1-.9-2-2-2z\",\"tab\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z\",\"tab_unselected\":\"M1 9h2V7H1v2zm0 4h2v-2H1v2zm0-8h2V3c-1.1 0-2 .9-2 2zm8 16h2v-2H9v2zm-8-4h2v-2H1v2zm2 4v-2H1c0 1.1.9 2 2 2zM21 3h-8v6h10V5c0-1.1-.9-2-2-2zm0 14h2v-2h-2v2zM9 5h2V3H9v2zM5 21h2v-2H5v2zM5 5h2V3H5v2zm16 16c1.1 0 2-.9 2-2h-2v2zm0-8h2v-2h-2v2zm-8 8h2v-2h-2v2zm4 0h2v-2h-2v2z\",\"theaters\":\"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z\",\"thumb_down\":\"M15 3H6c-.83 0-1.54.5-1.84 1.22l-3.02 7.05c-.09.23-.14.47-.14.73v1.91l.01.01L1 14c0 1.1.9 2 2 2h6.31l-.95 4.57-.03.32c0 .41.17.79.44 1.06L9.83 23l6.59-6.59c.36-.36.58-.86.58-1.41V5c0-1.1-.9-2-2-2zm4 0v12h4V3h-4z\",\"thumb_up\":\"M1 21h4V9H1v12zm22-11c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.59 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-1.91l-.01-.01L23 10z\",\"thumbs_up_down\":\"M12 6c0-.55-.45-1-1-1H5.82l.66-3.18.02-.23c0-.31-.13-.59-.33-.8L5.38 0 .44 4.94C.17 5.21 0 5.59 0 6v6.5c0 .83.67 1.5 1.5 1.5h6.75c.62 0 1.15-.38 1.38-.91l2.26-5.29c.07-.17.11-.36.11-.55V6zm10.5 4h-6.75c-.62 0-1.15.38-1.38.91l-2.26 5.29c-.07.17-.11.36-.11.55V18c0 .55.45 1 1 1h5.18l-.66 3.18-.02.24c0 .31.13.59.33.8l.79.78 4.94-4.94c.27-.27.44-.65.44-1.06v-6.5c0-.83-.67-1.5-1.5-1.5z\",\"timeline\":\"M23 8c0 1.1-.9 2-2 2a1.7 1.7 0 0 1-.51-.07l-3.56 3.55c.05.16.07.34.07.52 0 1.1-.9 2-2 2s-2-.9-2-2c0-.18.02-.36.07-.52l-2.55-2.55c-.16.05-.34.07-.52.07s-.36-.02-.52-.07l-4.55 4.56c.05.16.07.33.07.51 0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2c.18 0 .35.02.51.07l4.56-4.55C8.02 9.36 8 9.18 8 9c0-1.1.9-2 2-2s2 .9 2 2c0 .18-.02.36-.07.52l2.55 2.55c.16-.05.34-.07.52-.07s.36.02.52.07l3.55-3.56A1.7 1.7 0 0 1 19 8c0-1.1.9-2 2-2s2 .9 2 2z\",\"toc\":\"M3 9h14V7H3v2zm0 4h14v-2H3v2zm0 4h14v-2H3v2zm16 0h2v-2h-2v2zm0-10v2h2V7h-2zm0 6h2v-2h-2v2z\",\"today\":\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\",\"toll\":\"M15 4c-4.42 0-8 3.58-8 8s3.58 8 8 8 8-3.58 8-8-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zM3 12a5.99 5.99 0 0 1 4-5.65V4.26C3.55 5.15 1 8.27 1 12s2.55 6.85 6 7.74v-2.09A5.99 5.99 0 0 1 3 12z\",\"touch_app\":\"M9 11.24V7.5a2.5 2.5 0 0 1 5 0v3.74c1.21-.81 2-2.18 2-3.74C16 5.01 13.99 3 11.5 3S7 5.01 7 7.5c0 1.56.79 2.93 2 3.74zm9.84 4.63l-4.54-2.26c-.17-.07-.35-.11-.54-.11H13v-6c0-.83-.67-1.5-1.5-1.5S10 6.67 10 7.5v10.74l-3.43-.72c-.08-.01-.15-.03-.24-.03-.31 0-.59.13-.79.33l-.79.8 4.94 4.94c.27.27.65.44 1.06.44h6.79c.75 0 1.33-.55 1.44-1.28l.75-5.27c.01-.07.02-.14.02-.2 0-.62-.38-1.16-.91-1.38z\",\"track_changes\":\"M19.07 4.93l-1.41 1.41A8.014 8.014 0 0 1 20 12c0 4.42-3.58 8-8 8s-8-3.58-8-8c0-4.08 3.05-7.44 7-7.93v2.02C8.16 6.57 6 9.03 6 12c0 3.31 2.69 6 6 6s6-2.69 6-6c0-1.66-.67-3.16-1.76-4.24l-1.41 1.41C15.55 9.9 16 10.9 16 12c0 2.21-1.79 4-4 4s-4-1.79-4-4c0-1.86 1.28-3.41 3-3.86v2.14c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V2h-1C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10a9.97 9.97 0 0 0-2.93-7.07z\",\"translate\":\"M12.87 15.07l-2.54-2.51.03-.03A17.52 17.52 0 0 0 14.07 6H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z\",\"trending_down\":\"M16 18l2.29-2.29-4.88-4.88-4 4L2 7.41 3.41 6l6 6 4-4 6.3 6.29L22 12v6z\",\"trending_flat\":\"M22 12l-4-4v3H3v2h15v3z\",\"trending_up\":\"M16 6l2.29 2.29-4.88 4.88-4-4L2 16.59 3.41 18l6-6 4 4 6.3-6.29L22 12V6z\",\"turned_in\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2z\",\"turned_in_not\":\"M17 3H7c-1.1 0-1.99.9-1.99 2L5 21l7-3 7 3V5c0-1.1-.9-2-2-2zm0 15l-5-2.18L7 18V5h10v13z\",\"update\":\"M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1a6.875 6.875 0 0 0 0 9.79 7.02 7.02 0 0 0 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58a8.987 8.987 0 0 1 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z\",\"verified_user\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm-2 16l-4-4 1.41-1.41L10 14.17l6.59-6.59L18 9l-8 8z\",\"view_agenda\":\"M20 13H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1v-6c0-.55-.45-1-1-1zm0-10H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1z\",\"view_array\":\"M4 18h3V5H4v13zM18 5v13h3V5h-3zM8 18h9V5H8v13z\",\"view_carousel\":\"M7 19h10V4H7v15zm-5-2h4V6H2v11zM18 6v11h4V6h-4z\",\"view_column\":\"M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z\",\"view_day\":\"M2 21h19v-3H2v3zM20 8H3c-.55 0-1 .45-1 1v6c0 .55.45 1 1 1h17c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zM2 3v3h19V3H2z\",\"view_headline\":\"M4 15h16v-2H4v2zm0 4h16v-2H4v2zm0-8h16V9H4v2zm0-6v2h16V5H4z\",\"view_list\":\"M4 14h4v-4H4v4zm0 5h4v-4H4v4zM4 9h4V5H4v4zm5 5h12v-4H9v4zm0 5h12v-4H9v4zM9 5v4h12V5H9z\",\"view_module\":\"M4 11h5V5H4v6zm0 7h5v-6H4v6zm6 0h5v-6h-5v6zm6 0h5v-6h-5v6zm-6-7h5V5h-5v6zm6-6v6h5V5h-5z\",\"view_quilt\":\"M10 18h5v-6h-5v6zm-6 0h5V5H4v13zm12 0h5v-6h-5v6zM10 5v6h11V5H10z\",\"view_stream\":\"M4 18h17v-6H4v6zM4 5v6h17V5H4z\",\"view_week\":\"M6 5H3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm14 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zm-7 0h-3c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h3c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1z\",\"visibility\":\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\",\"visibility_off\":\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\",\"watch_later\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z\",\"work\":\"M20 6h-4V4c0-1.11-.89-2-2-2h-4c-1.11 0-2 .89-2 2v2H4c-1.11 0-1.99.89-1.99 2L2 19c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-6 0h-4V4h4v2z\",\"youtube_searched_for\":\"M17.01 14h-.8l-.27-.27a6.45 6.45 0 0 0 1.57-4.23c0-3.59-2.91-6.5-6.5-6.5s-6.5 3-6.5 6.5H2l3.84 4 4.16-4H6.51a4.5 4.5 0 0 1 9 0 4.507 4.507 0 0 1-6.32 4.12L7.71 15.1a6.474 6.474 0 0 0 7.52-.67l.27.27v.79l5.01 4.99L22 19l-4.99-5z\",\"zoom_in\":\"M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm2.5-4h-2v2H9v-2H7V9h2V7h1v2h2v1z\",\"zoom_out\":\"M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z\",\"apps\":\"M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z\",\"arrow_back\":\"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z\",\"arrow_downward\":\"M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z\",\"arrow_drop_down\":\"M7 10l5 5 5-5z\",\"arrow_drop_down_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 12l-4-4h8l-4 4z\",\"arrow_drop_up\":\"M7 14l5-5 5 5z\",\"arrow_forward\":\"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\",\"arrow_upward\":\"M4 12l1.41 1.41L11 7.83V20h2V7.83l5.58 5.59L20 12l-8-8-8 8z\",\"cancel\":\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\",\"check\":\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\",\"chevron_left\":\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\",\"chevron_right\":\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\",\"close\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\",\"expand_less\":\"M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\",\"expand_more\":\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z\",\"first_page\":\"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\",\"fullscreen\":\"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z\",\"fullscreen_exit\":\"M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z\",\"last_page\":\"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\",\"menu\":\"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\",\"more_horiz\":\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\",\"more_vert\":\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\",\"refresh\":\"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\",\"subdirectory_arrow_left\":\"M11 9l1.42 1.42L8.83 14H18V4h2v12H8.83l3.59 3.58L11 21l-6-6 6-6z\",\"subdirectory_arrow_right\":\"M19 15l-6 6-1.42-1.42L15.17 16H4V4h2v10h9.17l-3.59-3.58L13 9l6 6z\",\"unfold_less\":\"M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z\",\"unfold_more\":\"M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z\",\"add\":\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\",\"add_box\":\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\",\"add_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\",\"add_circle_outline\":\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"archive\":\"M20.54 5.23l-1.39-1.68A1.45 1.45 0 0 0 18 3H6c-.47 0-.88.21-1.16.55L3.46 5.23C3.17 5.57 3 6.02 3 6.5V19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V6.5c0-.48-.17-.93-.46-1.27zM12 17.5L6.5 12H10v-2h4v2h3.5L12 17.5zM5.12 5l.81-1h12l.94 1H5.12z\",\"backspace\":\"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12 19 15.59z\",\"block\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9A7.902 7.902 0 0 1 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1A7.902 7.902 0 0 1 20 12c0 4.42-3.58 8-8 8z\",\"clear\":\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\",\"content_copy\":\"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z\",\"content_cut\":\"M9.64 7.64c.23-.5.36-1.05.36-1.64 0-2.21-1.79-4-4-4S2 3.79 2 6s1.79 4 4 4c.59 0 1.14-.13 1.64-.36L10 12l-2.36 2.36C7.14 14.13 6.59 14 6 14c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4c0-.59-.13-1.14-.36-1.64L12 14l7 7h3v-1L9.64 7.64zM6 8a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0 12a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm6-7.5c-.28 0-.5-.22-.5-.5s.22-.5.5-.5.5.22.5.5-.22.5-.5.5zM19 3l-6 6 2 2 7-7V3z\",\"content_paste\":\"M19 2h-4.18C14.4.84 13.3 0 12 0c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm7 18H5V4h2v3h10V4h2v16z\",\"create\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\",\"delete_sweep\":\"M15 16h4v2h-4zm0-8h7v2h-7zm0 4h6v2h-6zM3 18c0 1.1.9 2 2 2h6c1.1 0 2-.9 2-2V8H3v10zM14 5h-3l-1-1H6L5 5H2v2h12z\",\"drafts\":\"M21.99 8c0-.72-.37-1.35-.94-1.7L12 1 2.95 6.3C2.38 6.65 2 7.28 2 8v10c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2l-.01-10zM12 13L3.74 7.84 12 3l8.26 4.84L12 13z\",\"filter_list\":\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\",\"flag\":\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\",\"font_download\":\"M9.93 13.5h4.14L12 7.98zM20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-4.05 16.5l-1.14-3H9.17l-1.12 3H5.96l5.11-13h1.86l5.11 13h-2.09z\",\"forward\":\"M12 8V4l8 8-8 8v-4H4V8z\",\"gesture\":\"M4.59 6.89c.7-.71 1.4-1.35 1.71-1.22.5.2 0 1.03-.3 1.52-.25.42-2.86 3.89-2.86 6.31 0 1.28.48 2.34 1.34 2.98.75.56 1.74.73 2.64.46 1.07-.31 1.95-1.4 3.06-2.77 1.21-1.49 2.83-3.44 4.08-3.44 1.63 0 1.65 1.01 1.76 1.79-3.78.64-5.38 3.67-5.38 5.37 0 1.7 1.44 3.09 3.21 3.09 1.63 0 4.29-1.33 4.69-6.1H21v-2.5h-2.47c-.15-1.65-1.09-4.2-4.03-4.2-2.25 0-4.18 1.91-4.94 2.84-.58.73-2.06 2.48-2.29 2.72-.25.3-.68.84-1.11.84-.45 0-.72-.83-.36-1.92.35-1.09 1.4-2.86 1.85-3.52.78-1.14 1.3-1.92 1.3-3.28C8.95 3.69 7.31 3 6.44 3 5.12 3 3.97 4 3.72 4.25c-.36.36-.66.66-.88.93l1.75 1.71zm9.29 11.66c-.31 0-.74-.26-.74-.72 0-.6.73-2.2 2.87-2.76-.3 2.69-1.43 3.48-2.13 3.48z\",\"inbox\":\"M19 3H4.99c-1.11 0-1.98.89-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5a2 2 0 0 0-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10z\",\"link\":\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\",\"low_priority\":\"M14 5h8v2h-8zm0 5.5h8v2h-8zm0 5.5h8v2h-8zM2 11.5C2 15.08 4.92 18 8.5 18H9v2l3-3-3-3v2h-.5C6.02 16 4 13.98 4 11.5S6.02 7 8.5 7H12V5H8.5C4.92 5 2 7.92 2 11.5z\",\"mail\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\",\"markunread\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\",\"move_to_inbox\":\"M19 3H4.99c-1.11 0-1.98.9-1.98 2L3 19c0 1.1.88 2 1.99 2H19c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 12h-4c0 1.66-1.35 3-3 3s-3-1.34-3-3H4.99V5H19v10zm-3-5h-2V7h-4v3H8l4 4 4-4z\",\"next_week\":\"M20 7h-4V5c0-.55-.22-1.05-.59-1.41C15.05 3.22 14.55 3 14 3h-4c-1.1 0-2 .9-2 2v2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zM10 5h4v2h-4V5zm1 13.5l-1-1 3-3-3-3 1-1 4 4-4 4z\",\"redo\":\"M18.4 10.6C16.55 8.99 14.15 8 11.5 8c-4.65 0-8.58 3.03-9.96 7.22L3.9 16a8.002 8.002 0 0 1 7.6-5.5c1.95 0 3.73.72 5.12 1.88L13 16h9V7l-3.6 3.6z\",\"remove\":\"M19 13H5v-2h14v2z\",\"remove_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\",\"remove_circle_outline\":\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"reply\":\"M10 9V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z\",\"reply_all\":\"M7 8V5l-7 7 7 7v-3l-4-4 4-4zm6 1V5l-7 7 7 7v-4.1c5 0 8.5 1.6 11 5.1-1-5-4-10-11-11z\",\"report\":\"M15.73 3H8.27L3 8.27v7.46L8.27 21h7.46L21 15.73V8.27L15.73 3zM12 17.3c-.72 0-1.3-.58-1.3-1.3 0-.72.58-1.3 1.3-1.3.72 0 1.3.58 1.3 1.3 0 .72-.58 1.3-1.3 1.3zm1-4.3h-2V7h2v6z\",\"save\":\"M17 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z\",\"select_all\":\"M3 5h2V3c-1.1 0-2 .9-2 2zm0 8h2v-2H3v2zm4 8h2v-2H7v2zM3 9h2V7H3v2zm10-6h-2v2h2V3zm6 0v2h2c0-1.1-.9-2-2-2zM5 21v-2H3c0 1.1.9 2 2 2zm-2-4h2v-2H3v2zM9 3H7v2h2V3zm2 18h2v-2h-2v2zm8-8h2v-2h-2v2zm0 8c1.1 0 2-.9 2-2h-2v2zm0-12h2V7h-2v2zm0 8h2v-2h-2v2zm-4 4h2v-2h-2v2zm0-16h2V3h-2v2zM7 17h10V7H7v10zm2-8h6v6H9V9z\",\"send\":\"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z\",\"sort\":\"M3 18h6v-2H3v2zM3 6v2h18V6H3zm0 7h12v-2H3v2z\",\"text_format\":\"M5 17v2h14v-2H5zm4.5-4.2h5l.9 2.2h2.1L12.75 4h-1.5L6.5 15h2.1l.9-2.2zM12 5.98L13.87 11h-3.74L12 5.98z\",\"unarchive\":\"M20.55 5.22l-1.39-1.68A1.51 1.51 0 0 0 18 3H6c-.47 0-.88.21-1.15.55L3.46 5.22C3.17 5.57 3 6.01 3 6.5V19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6.5c0-.49-.17-.93-.45-1.28zM12 9.5l5.5 5.5H14v2h-4v-2H6.5L12 9.5zM5.12 5l.82-1h12l.93 1H5.12z\",\"undo\":\"M12.5 8c-2.65 0-5.05.99-6.9 2.6L2 7v9h9l-3.62-3.62c1.39-1.16 3.16-1.88 5.12-1.88 3.54 0 6.55 2.31 7.6 5.5l2.37-.78C21.08 11.03 17.15 8 12.5 8z\",\"weekend\":\"M21 10c-1.1 0-2 .9-2 2v3H5v-3c0-1.1-.9-2-2-2s-2 .9-2 2v5c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2v-5c0-1.1-.9-2-2-2zm-3-5H6c-1.1 0-2 .9-2 2v2.15c1.16.41 2 1.51 2 2.82V14h12v-2.03c0-1.3.84-2.4 2-2.82V7c0-1.1-.9-2-2-2z\",\"add_location\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm4 8h-3v3h-2v-3H8V8h3V5h2v3h3v2z\",\"beenhere\":\"M19 1H5c-1.1 0-1.99.9-1.99 2L3 15.93c0 .69.35 1.3.88 1.66L12 23l8.11-5.41c.53-.36.88-.97.88-1.66L21 3c0-1.1-.9-2-2-2zm-9 15l-5-5 1.41-1.41L10 13.17l7.59-7.59L19 7l-9 9z\",\"directions\":\"M21.71 11.29l-9-9a.996.996 0 0 0-1.41 0l-9 9a.996.996 0 0 0 0 1.41l9 9c.39.39 1.02.39 1.41 0l9-9a.996.996 0 0 0 0-1.41zM14 14.5V12h-4v3H8v-4c0-.55.45-1 1-1h5V7.5l3.5 3.5-3.5 3.5z\",\"directions_bike\":\"M15.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zm5.8-10l2.4-2.4.8.8c1.3 1.3 3 2.1 5.1 2.1V9c-1.5 0-2.7-.6-3.6-1.5l-1.9-1.9c-.5-.4-1-.6-1.6-.6s-1.1.2-1.4.6L7.8 8.4c-.4.4-.6.9-.6 1.4 0 .6.2 1.1.6 1.4L11 14v5h2v-6.2l-2.2-2.3zM19 12c-2.8 0-5 2.2-5 5s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm0 8.5c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5z\",\"directions_boat\":\"M20 21c-1.39 0-2.78-.47-4-1.32-2.44 1.71-5.56 1.71-8 0C6.78 20.53 5.39 21 4 21H2v2h2c1.38 0 2.74-.35 4-.99a8.752 8.752 0 0 0 8 0c1.26.65 2.62.99 4 .99h2v-2h-2zM3.95 19H4c1.6 0 3.02-.88 4-2 .98 1.12 2.4 2 4 2s3.02-.88 4-2c.98 1.12 2.4 2 4 2h.05l1.89-6.68c.08-.26.06-.54-.06-.78s-.34-.42-.6-.5L20 10.62V6c0-1.1-.9-2-2-2h-3V1H9v3H6c-1.1 0-2 .9-2 2v4.62l-1.29.42a1.007 1.007 0 0 0-.66 1.28L3.95 19zM6 6h12v3.97L12 8 6 9.97V6z\",\"directions_bus\":\"M4 16c0 .88.39 1.67 1 2.22V20c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h8v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1.78c.61-.55 1-1.34 1-2.22V6c0-3.5-3.58-4-8-4s-8 .5-8 4v10zm3.5 1c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm9 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6H6V6h12v5z\",\"directions_car\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5h-11c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\",\"directions_railway\":\"M4 15.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V5c0-3.5-3.58-4-8-4s-8 .5-8 4v10.5zm8 1.5c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm6-7H6V5h12v5z\",\"directions_run\":\"M13.49 5.48c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm-3.6 13.9l1-4.4 2.1 2v6h2v-7.5l-2.1-2 .6-3c1.3 1.5 3.3 2.5 5.5 2.5v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1l-5.2 2.2v4.7h2v-3.4l1.8-.7-1.6 8.1-4.9-1-.4 2 7 1.4z\",\"directions_subway\":\"M12 2c-4.42 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm5.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6h-5V6h5v5z\",\"directions_transit\":\"M12 2c-4.42 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h12v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-6H6V6h5v5zm5.5 6c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm1.5-6h-5V6h5v5z\",\"directions_walk\":\"M13.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM9.8 8.9L7 23h2.1l1.8-8 2.1 2v6h2v-7.5l-2.1-2 .6-3C14.8 12 16.8 13 19 13v-2c-1.9 0-3.5-1-4.3-2.4l-1-1.6c-.4-.6-1-1-1.7-1-.3 0-.5.1-.8.1L6 8.3V13h2V9.6l1.8-.7\",\"edit_location\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm-1.56 10H9v-1.44l3.35-3.34 1.43 1.43L10.44 12zm4.45-4.45l-.7.7-1.44-1.44.7-.7a.38.38 0 0 1 .54 0l.9.9c.15.15.15.39 0 .54z\",\"ev_station\":\"M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 0 0 2.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 0 0 5 0V9c0-.69-.28-1.32-.73-1.77zM18 10c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM8 18v-4.5H6L10 6v5h2l-4 7z\",\"flight\":\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\",\"hotel\":\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9a4 4 0 0 0-4-4z\",\"layers\":\"M11.99 18.54l-7.37-5.73L3 14.07l9 7 9-7-1.63-1.27-7.38 5.74zM12 16l7.36-5.73L21 9l-9-7-9 7 1.63 1.27L12 16z\",\"layers_clear\":\"M19.81 14.99l1.19-.92-1.43-1.43-1.19.92 1.43 1.43zm-.45-4.72L21 9l-9-7-2.91 2.27 7.87 7.88 2.4-1.88zM3.27 1L2 2.27l4.22 4.22L3 9l1.63 1.27L12 16l2.1-1.63 1.43 1.43L12 18.54l-7.37-5.73L3 14.07l9 7 4.95-3.85L20.73 21 22 19.73 3.27 1z\",\"local_activity\":\"M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z\",\"local_airport\":\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\",\"local_atm\":\"M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z\",\"local_bar\":\"M21 5V3H3v2l8 9v5H6v2h12v-2h-5v-5l8-9zM7.43 7L5.66 5h12.69l-1.78 2H7.43z\",\"local_cafe\":\"M20 3H4v10a4 4 0 0 0 4 4h6a4 4 0 0 0 4-4v-3h2c1.11 0 2-.89 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM2 21h18v-2H2v2z\",\"local_car_wash\":\"M17 5c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zm-5 0c.83 0 1.5-.67 1.5-1.5 0-1-1.5-2.7-1.5-2.7s-1.5 1.7-1.5 2.7c0 .83.67 1.5 1.5 1.5zM7 5c.83 0 1.5-.67 1.5-1.5C8.5 2.5 7 .8 7 .8S5.5 2.5 5.5 3.5C5.5 4.33 6.17 5 7 5zm11.92 3.01C18.72 7.42 18.16 7 17.5 7h-11c-.66 0-1.21.42-1.42 1.01L3 14v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 18c-.83 0-1.5-.67-1.5-1.5S5.67 15 6.5 15s1.5.67 1.5 1.5S7.33 18 6.5 18zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 13l1.5-4.5h11L19 13H5z\",\"local_convenience_store\":\"M19 7V4H5v3H2v13h8v-4h4v4h8V7h-3zm-8 3H9v1h2v1H8V9h2V8H8V7h3v3zm5 2h-1v-2h-2V7h1v2h1V7h1v5z\",\"local_dining\":\"M8.1 13.34l2.83-2.83L3.91 3.5a4.008 4.008 0 0 0 0 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z\",\"local_drink\":\"M3 2l2.01 18.23C5.13 21.23 5.97 22 7 22h10c1.03 0 1.87-.77 1.99-1.77L21 2H3zm9 17c-1.66 0-3-1.34-3-3 0-2 3-5.4 3-5.4s3 3.4 3 5.4c0 1.66-1.34 3-3 3zm6.33-11H5.67l-.44-4h13.53l-.43 4z\",\"local_florist\":\"M12 22a9 9 0 0 0 9-9 9 9 0 0 0-9 9zM5.6 10.25a2.5 2.5 0 0 0 3.92 2.06l-.02.19a2.5 2.5 0 0 0 5 0l-.02-.19c.4.28.89.44 1.42.44a2.5 2.5 0 0 0 2.5-2.5c0-1-.59-1.85-1.43-2.25a2.49 2.49 0 0 0 1.43-2.25 2.5 2.5 0 0 0-3.92-2.06l.02-.19a2.5 2.5 0 1 0-5 0l.02.19c-.4-.28-.89-.44-1.42-.44a2.5 2.5 0 0 0-2.5 2.5c0 1 .59 1.85 1.43 2.25a2.49 2.49 0 0 0-1.43 2.25zM12 5.5a2.5 2.5 0 0 1 0 5 2.5 2.5 0 0 1 0-5zM3 13a9 9 0 0 0 9 9 9 9 0 0 0-9-9z\",\"local_gas_station\":\"M19.77 7.23l.01-.01-3.72-3.72L15 4.56l2.11 2.11c-.94.36-1.61 1.26-1.61 2.33a2.5 2.5 0 0 0 2.5 2.5c.36 0 .69-.08 1-.21v7.21c0 .55-.45 1-1 1s-1-.45-1-1V14c0-1.1-.9-2-2-2h-1V5c0-1.1-.9-2-2-2H6c-1.1 0-2 .9-2 2v16h10v-7.5h1.5v5a2.5 2.5 0 0 0 5 0V9c0-.69-.28-1.32-.73-1.77zM12 10H6V5h6v5zm6 0c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\",\"local_grocery_store\":\"M7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2zM1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49A1.003 1.003 0 0 0 20 4H5.21l-.94-2H1zm16 16c-1.1 0-1.99.9-1.99 2s.89 2 1.99 2 2-.9 2-2-.9-2-2-2z\",\"local_hospital\":\"M19 3H5c-1.1 0-1.99.9-1.99 2L3 19c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-1 11h-4v4h-4v-4H6v-4h4V6h4v4h4v4z\",\"local_hotel\":\"M7 13c1.66 0 3-1.34 3-3S8.66 7 7 7s-3 1.34-3 3 1.34 3 3 3zm12-6h-8v7H3V5H1v15h2v-3h18v3h2v-9a4 4 0 0 0-4-4z\",\"local_laundry_service\":\"M9.17 16.83a4.008 4.008 0 0 0 5.66 0 4.008 4.008 0 0 0 0-5.66l-5.66 5.66zM18 2.01L6 2c-1.11 0-2 .89-2 2v16c0 1.11.89 2 2 2h12c1.11 0 2-.89 2-2V4c0-1.11-.89-1.99-2-1.99zM10 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM7 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm5 16c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\",\"local_library\":\"M12 11.55C9.64 9.35 6.48 8 3 8v11c3.48 0 6.64 1.35 9 3.55 2.36-2.19 5.52-3.55 9-3.55V8c-3.48 0-6.64 1.35-9 3.55zM12 8c1.66 0 3-1.34 3-3s-1.34-3-3-3-3 1.34-3 3 1.34 3 3 3z\",\"local_mall\":\"M19 6h-2c0-2.76-2.24-5-5-5S7 3.24 7 6H5c-1.1 0-1.99.9-1.99 2L3 20c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-7-3c1.66 0 3 1.34 3 3H9c0-1.66 1.34-3 3-3zm0 10c-2.76 0-5-2.24-5-5h2c0 1.66 1.34 3 3 3s3-1.34 3-3h2c0 2.76-2.24 5-5 5z\",\"local_movies\":\"M18 3v2h-2V3H8v2H6V3H4v18h2v-2h2v2h8v-2h2v2h2V3h-2zM8 17H6v-2h2v2zm0-4H6v-2h2v2zm0-4H6V7h2v2zm10 8h-2v-2h2v2zm0-4h-2v-2h2v2zm0-4h-2V7h2v2z\",\"local_offer\":\"M21.41 11.58l-9-9C12.05 2.22 11.55 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .55.22 1.05.59 1.42l9 9c.36.36.86.58 1.41.58.55 0 1.05-.22 1.41-.59l7-7c.37-.36.59-.86.59-1.41 0-.55-.23-1.06-.59-1.42zM5.5 7C4.67 7 4 6.33 4 5.5S4.67 4 5.5 4 7 4.67 7 5.5 6.33 7 5.5 7z\",\"local_parking\":\"M13 3H6v18h4v-6h3c3.31 0 6-2.69 6-6s-2.69-6-6-6zm.2 8H10V7h3.2c1.1 0 2 .9 2 2s-.9 2-2 2z\",\"local_pharmacy\":\"M21 5h-2.64l1.14-3.14L17.15 1l-1.46 4H3v2l2 6-2 6v2h18v-2l-2-6 2-6V5zm-5 9h-3v3h-2v-3H8v-2h3V9h2v3h3v2z\",\"local_phone\":\"M6.62 10.79a15.15 15.15 0 0 0 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57.11.35.03.74-.25 1.02l-2.2 2.2z\",\"local_pizza\":\"M12 2C8.43 2 5.23 3.54 3.01 6L12 22l8.99-16C18.78 3.55 15.57 2 12 2zM7 7c0-1.1.9-2 2-2s2 .9 2 2-.9 2-2 2-2-.9-2-2zm5 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2z\",\"local_play\":\"M20 12c0-1.1.9-2 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-1.99.9-1.99 2v4c1.1 0 1.99.9 1.99 2s-.89 2-2 2v4c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-4c-1.1 0-2-.9-2-2zm-4.42 4.8L12 14.5l-3.58 2.3 1.08-4.12-3.29-2.69 4.24-.25L12 5.8l1.54 3.95 4.24.25-3.29 2.69 1.09 4.11z\",\"local_post_office\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z\",\"local_printshop\":\"M19 8H5c-1.66 0-3 1.34-3 3v6h4v4h12v-4h4v-6c0-1.66-1.34-3-3-3zm-3 11H8v-5h8v5zm3-7c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm-1-9H6v4h12V3z\",\"local_see\":\"M9 2L7.17 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2h-3.17L15 2H9zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z\",\"local_shipping\":\"M20 8h-3V4H3c-1.1 0-2 .9-2 2v11h2c0 1.66 1.34 3 3 3s3-1.34 3-3h6c0 1.66 1.34 3 3 3s3-1.34 3-3h2v-5l-3-4zM6 18.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm13.5-9l1.96 2.5H17V9.5h2.5zm-1.5 9c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"local_taxi\":\"M18.92 6.01C18.72 5.42 18.16 5 17.5 5H15V3H9v2H6.5c-.66 0-1.21.42-1.42 1.01L3 12v8c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-1h12v1c0 .55.45 1 1 1h1c.55 0 1-.45 1-1v-8l-2.08-5.99zM6.5 16c-.83 0-1.5-.67-1.5-1.5S5.67 13 6.5 13s1.5.67 1.5 1.5S7.33 16 6.5 16zm11 0c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM5 11l1.5-4.5h11L19 11H5z\",\"map\":\"M20.5 3l-.16.03L15 5.1 9 3 3.36 4.9c-.21.07-.36.25-.36.48V20.5c0 .28.22.5.5.5l.16-.03L9 18.9l6 2.1 5.64-1.9c.21-.07.36-.25.36-.48V3.5c0-.28-.22-.5-.5-.5zM15 19l-6-2.11V5l6 2.11V19z\",\"my_location\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"navigation\":\"M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z\",\"near_me\":\"M21 3L3 10.53v.98l6.84 2.65L12.48 21h.98L21 3z\",\"person_pin\":\"M19 2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h4l3 3 3-3h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-7 3.3A2.7 2.7 0 0 1 14.7 8a2.7 2.7 0 0 1-2.7 2.7A2.7 2.7 0 0 1 9.3 8 2.7 2.7 0 0 1 12 5.3zM18 16H6v-.9c0-2 4-3.1 6-3.1s6 1.1 6 3.1v.9z\",\"person_pin_circle\":\"M12 2C8.14 2 5 5.14 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.86-3.14-7-7-7zm0 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm0 10c-1.67 0-3.14-.85-4-2.15.02-1.32 2.67-2.05 4-2.05s3.98.73 4 2.05A4.783 4.783 0 0 1 12 14z\",\"pin_drop\":\"M18 8c0-3.31-2.69-6-6-6S6 4.69 6 8c0 4.5 6 11 6 11s6-6.5 6-11zm-8 0c0-1.1.9-2 2-2s2 .9 2 2a2 2 0 0 1-4 0zM5 20v2h14v-2H5z\",\"place\":\"M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5a2.5 2.5 0 0 1 0-5 2.5 2.5 0 0 1 0 5z\",\"rate_review\":\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 14v-2.47l6.88-6.88c.2-.2.51-.2.71 0l1.77 1.77c.2.2.2.51 0 .71L8.47 14H6zm12 0h-7.5l2-2H18v2z\",\"restaurant\":\"M11 9H9V2H7v7H5V2H3v7c0 2.12 1.66 3.84 3.75 3.97V22h2.5v-9.03C11.34 12.84 13 11.12 13 9V2h-2v7zm5-3v8h2.5v8H21V2c-2.76 0-5 2.24-5 4z\",\"restaurant_menu\":\"M8.1 13.34l2.83-2.83L3.91 3.5a4.008 4.008 0 0 0 0 5.66l4.19 4.18zm6.78-1.81c1.53.71 3.68.21 5.27-1.38 1.91-1.91 2.28-4.65.81-6.12-1.46-1.46-4.2-1.1-6.12.81-1.59 1.59-2.09 3.74-1.38 5.27L3.7 19.87l1.41 1.41L12 14.41l6.88 6.88 1.41-1.41L13.41 13l1.47-1.47z\",\"satellite\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM5 4.99h3C8 6.65 6.66 8 5 8V4.99zM5 12v-2c2.76 0 5-2.25 5-5.01h2C12 8.86 8.87 12 5 12zm0 6l3.5-4.5 2.5 3.01L14.5 12l4.5 6H5z\",\"store_mall_directory\":\"M20 4H4v2h16V4zm1 10v-2l-1-5H4l-1 5v2h1v6h10v-6h4v6h2v-6h1zm-9 4H6v-4h6v4z\",\"streetview\":\"M11.5 6c0-1.08.27-2.1.74-3H5c-1.1 0-2 .9-2 2v14c0 .55.23 1.05.59 1.41l9.82-9.82A6.435 6.435 0 0 1 11.5 6z\",\"subway\":\"M7.01 9h10v5h-10zM17.8 2.8C16 2.09 13.86 2 12 2c-1.86 0-4 .09-5.8.8C3.53 3.84 2 6.05 2 8.86V22h20V8.86c0-2.81-1.53-5.02-4.2-6.06zm.2 13.08c0 1.45-1.18 2.62-2.63 2.62l1.13 1.12V20H15l-1.5-1.5h-2.83L9.17 20H7.5v-.38l1.12-1.12A2.63 2.63 0 0 1 6 15.88V9c0-2.63 3-3 6-3 3.32 0 6 .38 6 3v6.88z\",\"terrain\":\"M14 6l-3.75 5 2.85 3.8-1.6 1.2C9.81 13.75 7 10 7 10l-6 8h22L14 6z\",\"traffic\":\"M20 10h-3V8.86c1.72-.45 3-2 3-3.86h-3V4c0-.55-.45-1-1-1H8c-.55 0-1 .45-1 1v1H4c0 1.86 1.28 3.41 3 3.86V10H4c0 1.86 1.28 3.41 3 3.86V15H4c0 1.86 1.28 3.41 3 3.86V20c0 .55.45 1 1 1h8c.55 0 1-.45 1-1v-1.14c1.72-.45 3-2 3-3.86h-3v-1.14c1.72-.45 3-2 3-3.86zm-8 9a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0-5a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm0-5a2 2 0 0 1-2-2c0-1.11.89-2 2-2a2 2 0 0 1 0 4z\",\"train\":\"M12 2c-4 0-8 .5-8 4v9.5C4 17.43 5.57 19 7.5 19L6 20.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 19c1.93 0 3.5-1.57 3.5-3.5V6c0-3.5-3.58-4-8-4zM7.5 17c-.83 0-1.5-.67-1.5-1.5S6.67 14 7.5 14s1.5.67 1.5 1.5S8.33 17 7.5 17zm3.5-7H6V6h5v4zm2 0V6h5v4h-5zm3.5 7c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"tram\":\"M19 16.94V8.5c0-2.79-2.61-3.4-6.01-3.49l.76-1.51H17V2H7v1.5h4.75l-.76 1.52C7.86 5.11 5 5.73 5 8.5v8.44c0 1.45 1.19 2.66 2.59 2.97L6 21.5v.5h2.23l2-2H14l2 2h2v-.5L16.5 20h-.08c1.69 0 2.58-1.37 2.58-3.06zm-7 1.56c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm5-4.5H7V9h10v5z\",\"transfer_within_a_station\":\"M16.49 15.5v-1.75L14 16.25l2.49 2.5V17H22v-1.5zm3.02 4.25H14v1.5h5.51V23L22 20.5 19.51 18zM9.5 5.5c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zM5.75 8.9L3 23h2.1l1.75-8L9 17v6h2v-7.55L8.95 13.4l.6-3C10.85 12 12.8 13 15 13v-2c-1.85 0-3.45-1-4.35-2.45l-.95-1.6C9.35 6.35 8.7 6 8 6c-.25 0-.5.05-.75.15L2 8.3V13h2V9.65l1.75-.75\",\"zoom_out_map\":\"M15 3l2.3 2.3-2.89 2.87 1.42 1.42L18.7 6.7 21 9V3zM3 9l2.3-2.3 2.87 2.89 1.42-1.42L6.7 5.3 9 3H3zm6 12l-2.3-2.3 2.89-2.87-1.42-1.42L5.3 17.3 3 15v6zm12-6l-2.3 2.3-2.87-2.89-1.42 1.42 2.89 2.87L15 21h6z\",\"access_alarm\":\"M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"access_alarms\":\"M22 5.7l-4.6-3.9-1.3 1.5 4.6 3.9L22 5.7zM7.9 3.4L6.6 1.9 2 5.7l1.3 1.5 4.6-3.8zM12.5 8H11v6l4.7 2.9.8-1.2-4-2.4V8zM12 4c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7z\",\"access_time\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z\",\"add_alarm\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm1-11h-2v3H8v2h3v3h2v-3h3v-2h-3V9z\",\"airplanemode_off\":\"M13 9V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5v3.68l7.83 7.83L21 16v-2l-8-5zM3 5.27l4.99 4.99L2 14v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-3.73L18.73 21 20 19.73 4.27 4 3 5.27z\",\"airplanemode_on\":\"M21 16v-2l-8-5V3.5c0-.83-.67-1.5-1.5-1.5S10 2.67 10 3.5V9l-8 5v2l8-2.5V19l-2 1.5V22l3.5-1 3.5 1v-1.5L13 19v-5.5l8 2.5z\",\"battery_20\":\"M17 5.33C17 4.6 16.4 4 15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h10V5.33z\",\"battery_30\":\"M7 15v5.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V15H7z\",\"battery_50\":\"M7 13v7.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V13H7z\",\"battery_60\":\"M7 11v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11H7z\",\"battery_80\":\"M7 9v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9H7z\",\"battery_90\":\"M7 8v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8H7z\",\"battery_alert\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM13 18h-2v-2h2v2zm0-4h-2V9h2v5z\",\"battery_charging_20\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33V17h4v-2.5H9L13 7v5.5h2L12.6 17H17V5.33C17 4.6 16.4 4 15.67 4z\",\"battery_charging_30\":\"M11 20v-5.5H7v6.17C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V14.5h-3.07L11 20z\",\"battery_charging_50\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v8.17h2.53L13 7v5.5h2l-.53 1H17V5.33C17 4.6 16.4 4 15.67 4z\",\"battery_charging_60\":\"M13 12.5h2L11 20v-5.5H9l1.87-3.5H7v9.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V11h-4v1.5z\",\"battery_charging_80\":\"M13 12.5h2L11 20v-5.5H9L11.93 9H7v11.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V9h-4v3.5z\",\"battery_charging_90\":\"M13 12.5h2L11 20v-5.5H9L12.47 8H7v12.67C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V8h-4v4.5z\",\"battery_charging_full\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zM11 20v-5.5H9L13 7v5.5h2L11 20z\",\"battery_full\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z\",\"battery_std\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4z\",\"battery_unknown\":\"M15.67 4H14V2h-4v2H8.33C7.6 4 7 4.6 7 5.33v15.33C7 21.4 7.6 22 8.33 22h7.33c.74 0 1.34-.6 1.34-1.33V5.33C17 4.6 16.4 4 15.67 4zm-2.72 13.95h-1.9v-1.9h1.9v1.9zm1.35-5.26s-.38.42-.67.71c-.48.48-.83 1.15-.83 1.6h-1.6c0-.83.46-1.52.93-2l.93-.94c.27-.27.44-.65.44-1.06 0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5H9c0-1.66 1.34-3 3-3s3 1.34 3 3c0 .66-.27 1.26-.7 1.69z\",\"bluetooth\":\"M17.71 7.71L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88z\",\"bluetooth_connected\":\"M7 12l-2-2-2 2 2 2 2-2zm10.71-4.29L12 2h-1v7.59L6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM13 5.83l1.88 1.88L13 9.59V5.83zm1.88 10.46L13 18.17v-3.76l1.88 1.88zM19 10l-2 2 2 2 2-2-2-2z\",\"bluetooth_disabled\":\"M13 5.83l1.88 1.88-1.6 1.6 1.41 1.41 3.02-3.02L12 2h-1v5.03l2 2v-3.2zM5.41 4L4 5.41 10.59 12 5 17.59 6.41 19 11 14.41V22h1l4.29-4.29 2.3 2.29L20 18.59 5.41 4zM13 18.17v-3.76l1.88 1.88L13 18.17z\",\"bluetooth_searching\":\"M14.24 12.01l2.32 2.32c.28-.72.44-1.51.44-2.33 0-.82-.16-1.59-.43-2.31l-2.33 2.32zm5.29-5.3l-1.26 1.26c.63 1.21.98 2.57.98 4.02s-.36 2.82-.98 4.02l1.2 1.2c.97-1.54 1.54-3.36 1.54-5.31-.01-1.89-.55-3.67-1.48-5.19zm-3.82 1L10 2H9v7.59L4.41 5 3 6.41 8.59 12 3 17.59 4.41 19 9 14.41V22h1l5.71-5.71-4.3-4.29 4.3-4.29zM11 5.83l1.88 1.88L11 9.59V5.83zm1.88 10.46L11 18.17v-3.76l1.88 1.88z\",\"brightness_auto\":\"M10.85 12.65h2.3L12 9l-1.15 3.65zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM14.3 16l-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9h-1.9z\",\"brightness_high\":\"M20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12 20 8.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6zm0-10c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4z\",\"brightness_low\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6 6 2.69 6 6-2.69 6-6 6z\",\"brightness_medium\":\"M20 15.31L23.31 12 20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69zM12 18V6c3.31 0 6 2.69 6 6s-2.69 6-6 6z\",\"data_usage\":\"M13 2.05v3.03c3.39.49 6 3.39 6 6.92 0 .9-.18 1.75-.48 2.54l2.6 1.53c.56-1.24.88-2.62.88-4.07 0-5.18-3.95-9.45-9-9.95zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05c-5.06.5-9 4.76-9 9.95 0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-2.6-1.53C16.17 17.98 14.21 19 12 19z\",\"developer_mode\":\"M7 5h10v2h2V3c0-1.1-.9-1.99-2-1.99L7 1c-1.1 0-2 .9-2 2v4h2V5zm8.41 11.59L20 12l-4.59-4.59L14 8.83 17.17 12 14 15.17l1.41 1.42zM10 15.17L6.83 12 10 8.83 8.59 7.41 4 12l4.59 4.59L10 15.17zM17 19H7v-2H5v4c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2v-4h-2v2z\",\"devices\":\"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z\",\"dvr\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12zm-2-9H8v2h11V8zm0 4H8v2h11v-2zM7 8H5v2h2V8zm0 4H5v2h2v-2z\",\"gps_fixed\":\"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"gps_not_fixed\":\"M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"gps_off\":\"M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5C10.16 5.19 11.06 5 12 5c3.87 0 7 3.13 7 7 0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04C3.97 7.62 3.25 9.23 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27C15.09 18.45 13.61 19 12 19c-3.87 0-7-3.13-7-7 0-1.61.55-3.09 1.46-4.27l9.81 9.81z\",\"location_disabled\":\"M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06c-1.13.12-2.19.46-3.16.97l1.5 1.5C10.16 5.19 11.06 5 12 5c3.87 0 7 3.13 7 7 0 .94-.19 1.84-.52 2.65l1.5 1.5c.5-.96.84-2.02.97-3.15H23v-2h-2.06zM3 4.27l2.04 2.04C3.97 7.62 3.25 9.23 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c1.77-.2 3.38-.91 4.69-1.98L19.73 21 21 19.73 4.27 3 3 4.27zm13.27 13.27C15.09 18.45 13.61 19 12 19c-3.87 0-7-3.13-7-7 0-1.61.55-3.09 1.46-4.27l9.81 9.81z\",\"location_searching\":\"M20.94 11c-.46-4.17-3.77-7.48-7.94-7.94V1h-2v2.06C6.83 3.52 3.52 6.83 3.06 11H1v2h2.06c.46 4.17 3.77 7.48 7.94 7.94V23h2v-2.06c4.17-.46 7.48-3.77 7.94-7.94H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z\",\"multitrack_audio\":\"M7 18h2V6H7v12zm4 4h2V2h-2v20zm-8-8h2v-4H3v4zm12 4h2V6h-2v12zm4-8v4h2v-4h-2z\",\"network_cell\":\"M17 7L2 22h15z\",\"network_wifi\":\"M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z\",\"nfc\":\"M20 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 18H4V4h16v16zM18 6h-5c-1.1 0-2 .9-2 2v2.28c-.6.35-1 .98-1 1.72 0 1.1.9 2 2 2s2-.9 2-2c0-.74-.4-1.38-1-1.72V8h3v8H8V8h2V6H6v12h12V6z\",\"now_wallpaper\":\"M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z\",\"now_widgets\":\"M13 13v8h8v-8h-8zM3 21h8v-8H3v8zM3 3v8h8V3H3zm13.66-1.31L11 7.34 16.66 13l5.66-5.66-5.66-5.65z\",\"screen_lock_landscape\":\"M21 5H3c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-2 12H5V7h14v10zm-9-1h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1c0-1.11-.9-2-2-2-1.11 0-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1z\",\"screen_lock_portrait\":\"M10 16h4c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1v-1c0-1.11-.9-2-2-2-1.11 0-2 .9-2 2v1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1zm.8-6c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2v1h-2.4v-1zM17 1H7c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2zm0 18H7V5h10v14z\",\"screen_lock_rotation\":\"M23.25 12.77l-2.57-2.57-1.41 1.41 2.22 2.22-5.66 5.66L4.51 8.17l5.66-5.66 2.1 2.1 1.41-1.41L11.23.75c-.59-.59-1.54-.59-2.12 0L2.75 7.11c-.59.59-.59 1.54 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12zM8.47 20.48C5.2 18.94 2.86 15.76 2.5 12H1c.51 6.16 5.66 11 11.95 11l.66-.03-3.81-3.82-1.33 1.33zM16 9h5c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1v-.5C21 1.12 19.88 0 18.5 0S16 1.12 16 2.5V3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm.8-6.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V3h-3.4v-.5z\",\"screen_rotation\":\"M16.48 2.52c3.27 1.55 5.61 4.72 5.97 8.48h1.5C23.44 4.84 18.29 0 12 0l-.66.03 3.81 3.81 1.33-1.32zm-6.25-.77c-.59-.59-1.54-.59-2.12 0L1.75 8.11c-.59.59-.59 1.54 0 2.12l12.02 12.02c.59.59 1.54.59 2.12 0l6.36-6.36c.59-.59.59-1.54 0-2.12L10.23 1.75zm4.6 19.44L2.81 9.17l6.36-6.36 12.02 12.02-6.36 6.36zm-7.31.29C4.25 19.94 1.91 16.76 1.55 13H.05C.56 19.16 5.71 24 12 24l.66-.03-3.81-3.81-1.33 1.32z\",\"sd_storage\":\"M18 2h-8L4.02 8 4 20c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-6 6h-2V4h2v4zm3 0h-2V4h2v4zm3 0h-2V4h2v4z\",\"settings_system_daydream\":\"M9 16h6.5c1.38 0 2.5-1.12 2.5-2.5S16.88 11 15.5 11h-.05c-.24-1.69-1.69-3-3.45-3-1.4 0-2.6.83-3.16 2.02h-.16C7.17 10.18 6 11.45 6 13c0 1.66 1.34 3 3 3zM21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16.01H3V4.99h18v14.02z\",\"signal_cellular_0_bar\":\"M2 22h20V2z\",\"signal_cellular_1_bar\":\"M12 12L2 22h10z\",\"signal_cellular_2_bar\":\"M14 10L2 22h12z\",\"signal_cellular_3_bar\":\"M17 7L2 22h15z\",\"signal_cellular_4_bar\":\"M2 22h20V2z\",\"signal_cellular_connected_no_internet_0_bar\":\"M20 22h2v-2h-2v2zm0-12v8h2v-8h-2z\",\"signal_cellular_connected_no_internet_1_bar\":\"M20 10v8h2v-8h-2zm-8 12V12L2 22h10zm8 0h2v-2h-2v2z\",\"signal_cellular_connected_no_internet_2_bar\":\"M14 22V10L2 22h12zm6-12v8h2v-8h-2zm0 12h2v-2h-2v2z\",\"signal_cellular_connected_no_internet_3_bar\":\"M17 22V7L2 22h15zm3-12v8h2v-8h-2zm0 12h2v-2h-2v2z\",\"signal_cellular_connected_no_internet_4_bar\":\"M20 18h2v-8h-2v8zm0 4h2v-2h-2v2zM2 22h16V8h4V2L2 22z\",\"signal_cellular_no_sim\":\"M18.99 5c0-1.1-.89-2-1.99-2h-7L7.66 5.34 19 16.68 18.99 5zM3.65 3.88L2.38 5.15 5 7.77V19c0 1.1.9 2 2 2h10.01c.35 0 .67-.1.96-.26l1.88 1.88 1.27-1.27L3.65 3.88z\",\"signal_cellular_null\":\"M20 6.83V20H6.83L20 6.83M22 2L2 22h20V2z\",\"signal_cellular_off\":\"M21 1l-8.59 8.59L21 18.18V1zM4.77 4.5L3.5 5.77l6.36 6.36L1 21h17.73l2 2L22 21.73 4.77 4.5z\",\"signal_wifi_0_bar\":\"M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z\",\"signal_wifi_1_bar\":\"M6.67 14.86L12 21.49v.01l.01-.01 5.33-6.63C17.06 14.65 15.03 13 12 13s-5.06 1.65-5.33 1.86z\",\"signal_wifi_2_bar\":\"M4.79 12.52l7.2 8.98H12l.01-.01 7.2-8.98C18.85 12.24 16.1 10 12 10s-6.85 2.24-7.21 2.52z\",\"signal_wifi_3_bar\":\"M3.53 10.95l8.46 10.54.01.01.01-.01 8.46-10.54C20.04 10.62 16.81 8 12 8c-4.81 0-8.04 2.62-8.47 2.95z\",\"signal_wifi_4_bar\":\"M12.01 21.49L23.64 7c-.45-.34-4.93-4-11.64-4C5.28 3 .81 6.66.36 7l11.63 14.49.01.01.01-.01z\",\"signal_wifi_off\":\"M23.64 7c-.45-.34-4.93-4-11.64-4-1.5 0-2.89.19-4.15.48L18.18 13.8 23.64 7zm-6.6 8.22L3.27 1.44 2 2.72l2.05 2.06C1.91 5.76.59 6.82.36 7l11.63 14.49.01.01.01-.01 3.9-4.86 3.32 3.32 1.27-1.27-3.46-3.46z\",\"storage\":\"M2 20h20v-4H2v4zm2-3h2v2H4v-2zM2 4v4h20V4H2zm4 3H4V5h2v2zm-4 7h20v-4H2v4zm2-3h2v2H4v-2z\",\"usb\":\"M15 7v4h1v2h-3V5h2l-3-4-3 4h2v8H8v-2.07c.7-.37 1.2-1.08 1.2-1.93 0-1.21-.99-2.2-2.2-2.2-1.21 0-2.2.99-2.2 2.2 0 .85.5 1.56 1.2 1.93V13c0 1.11.89 2 2 2h3v3.05c-.71.37-1.2 1.1-1.2 1.95 0 1.22.99 2.2 2.2 2.2 1.21 0 2.2-.98 2.2-2.2 0-.85-.49-1.58-1.2-1.95V15h3c1.11 0 2-.89 2-2v-2h1V7h-4z\",\"wifi_lock\":\"M20.5 9.5c.28 0 .55.04.81.08L24 6c-3.34-2.51-7.5-4-12-4S3.34 3.49 0 6l12 16 3.5-4.67V14.5c0-2.76 2.24-5 5-5zM23 16v-1.5c0-1.38-1.12-2.5-2.5-2.5S18 13.12 18 14.5V16c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1v-4c0-.55-.45-1-1-1zm-1 0h-3v-1.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5V16z\",\"wifi_tethering\":\"M12 11c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 2c0-3.31-2.69-6-6-6s-6 2.69-6 6c0 2.22 1.21 4.15 3 5.19l1-1.74c-1.19-.7-2-1.97-2-3.45 0-2.21 1.79-4 4-4s4 1.79 4 4c0 1.48-.81 2.75-2 3.45l1 1.74c1.79-1.04 3-2.97 3-5.19zM12 3C6.48 3 2 7.48 2 13c0 3.7 2.01 6.92 4.99 8.65l1-1.73C5.61 18.53 4 15.96 4 13c0-4.42 3.58-8 8-8s8 3.58 8 8c0 2.96-1.61 5.53-4 6.92l1 1.73c2.99-1.73 5-4.95 5-8.65 0-5.52-4.48-10-10-10z\",\"add_to_queue\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-7v2h-3v3h-2v-3H8v-2h3V7h2v3h3z\",\"airplay\":\"M6 22h12l-6-6zM21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V5h18v12h-4v2h4c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\",\"album\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5zm0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1z\",\"art_track\":\"M22 13h-8v-2h8v2zm0-6h-8v2h8V7zm-8 10h8v-2h-8v2zm-2-8v6c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V9c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-1.5 6l-2.25-3-1.75 2.26-1.25-1.51L3.5 15h7z\",\"av_timer\":\"M11 17c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1zm0-14v4h2V5.08c3.39.49 6 3.39 6 6.92 0 3.87-3.13 7-7 7s-7-3.13-7-7c0-1.68.59-3.22 1.58-4.42L12 13l1.41-1.41-6.8-6.8v.02C4.42 6.45 3 9.05 3 12c0 4.97 4.02 9 9 9a9 9 0 0 0 0-18h-1zm7 9c0-.55-.45-1-1-1s-1 .45-1 1 .45 1 1 1 1-.45 1-1zM6 12c0 .55.45 1 1 1s1-.45 1-1-.45-1-1-1-1 .45-1 1z\",\"branding_watermark\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16h-9v-6h9v6z\",\"call_to_action\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3v-3h18v3z\",\"closed_caption\":\"M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 7H9.5v-.5h-2v3h2V13H11v1c0 .55-.45 1-1 1H7c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1zm7 0h-1.5v-.5h-2v3h2V13H18v1c0 .55-.45 1-1 1h-3c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v1z\",\"equalizer\":\"M10 20h4V4h-4v16zm-6 0h4v-8H4v8zM16 9v11h4V9h-4z\",\"explicit\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-4 6h-4v2h4v2h-4v2h4v2H9V7h6v2z\",\"fast_forward\":\"M4 18l8.5-6L4 6v12zm9-12v12l8.5-6L13 6z\",\"fast_rewind\":\"M11 18V6l-8.5 6 8.5 6zm.5-6l8.5 6V6l-8.5 6z\",\"featured_play_list\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 8H3V9h9v2zm0-4H3V5h9v2z\",\"featured_video\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 9H3V5h9v7z\",\"fiber_dvr\":\"M17.5 10.5h2v1h-2zm-13 0h2v3h-2zM21 3H3c-1.11 0-2 .89-2 2v14a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zM8 13.5c0 .85-.65 1.5-1.5 1.5H3V9h3.5c.85 0 1.5.65 1.5 1.5v3zm4.62 1.5h-1.5L9.37 9h1.5l1 3.43 1-3.43h1.5l-1.75 6zM21 11.5c0 .6-.4 1.15-.9 1.4L21 15h-1.5l-.85-2H17.5v2H16V9h3.5c.85 0 1.5.65 1.5 1.5v1z\",\"fiber_new\":\"M20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM8.5 15H7.3l-2.55-3.5V15H3.5V9h1.25l2.5 3.5V9H8.5v6zm5-4.74H11v1.12h2.5v1.26H11v1.11h2.5V15h-4V9h4v1.26zm7 3.74c0 .55-.45 1-1 1h-4c-.55 0-1-.45-1-1V9h1.25v4.51h1.13V9.99h1.25v3.51h1.12V9h1.25v5z\",\"fiber_pin\":\"M5.5 10.5h2v1h-2zM20 4H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zM9 11.5c0 .85-.65 1.5-1.5 1.5h-2v2H4V9h3.5c.85 0 1.5.65 1.5 1.5v1zm3.5 3.5H11V9h1.5v6zm7.5 0h-1.2l-2.55-3.5V15H15V9h1.25l2.5 3.5V9H20v6z\",\"forward_10\":\"M4 13c0 4.4 3.6 8 8 8s8-3.6 8-8h-2c0 3.3-2.7 6-6 6s-6-2.7-6-6 2.7-6 6-6v4l5-5-5-5v4c-4.4 0-8 3.6-8 8zm6.8 3H10v-3.3L9 13v-.7l1.8-.6h.1V16zm4.3-1.8c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1.3.2.5.3.2.3.3.6.1.5.1.8v.7zm-.8-.8v-.5s-.1-.2-.1-.3-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5z\",\"forward_30\":\"M9.6 13.5h.4c.2 0 .4-.1.5-.2s.2-.2.2-.4v-.2s-.1-.1-.1-.2-.1-.1-.2-.1h-.5s-.1.1-.2.1-.1.1-.1.2v.2h-1c0-.2 0-.3.1-.5s.2-.3.3-.4.3-.2.4-.2.4-.1.5-.1c.2 0 .4 0 .6.1s.3.1.5.2.2.2.3.4.1.3.1.5v.3s-.1.2-.1.3-.1.2-.2.2-.2.1-.3.2c.2.1.4.2.5.4s.2.4.2.6c0 .2 0 .4-.1.5s-.2.3-.3.4-.3.2-.5.2-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.4-.1-.6h.8v.2s.1.1.1.2.1.1.2.1h.5s.1-.1.2-.1.1-.1.1-.2v-.5s-.1-.1-.1-.2-.1-.1-.2-.1h-.6v-.7zm5.7.7c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1.3.2.5.3.2.3.3.6.1.5.1.8v.7zm-.9-.8v-.5s-.1-.2-.1-.3-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5zM4 13c0 4.4 3.6 8 8 8s8-3.6 8-8h-2c0 3.3-2.7 6-6 6s-6-2.7-6-6 2.7-6 6-6v4l5-5-5-5v4c-4.4 0-8 3.6-8 8z\",\"forward_5\":\"M4 13c0 4.4 3.6 8 8 8s8-3.6 8-8h-2c0 3.3-2.7 6-6 6s-6-2.7-6-6 2.7-6 6-6v4l5-5-5-5v4c-4.4 0-8 3.6-8 8zm6.7.9l.2-2.2h2.4v.7h-1.7l-.1.9s.1 0 .1-.1.1 0 .1-.1.1 0 .2 0h.2c.2 0 .4 0 .5.1s.3.2.4.3.2.3.3.5.1.4.1.6c0 .2 0 .4-.1.5s-.1.3-.3.5-.3.2-.5.3-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.3-.1-.5h.8c0 .2.1.3.2.4s.2.1.4.1c.1 0 .2 0 .3-.1l.2-.2s.1-.2.1-.3v-.6l-.1-.2-.2-.2s-.2-.1-.3-.1h-.2s-.1 0-.2.1-.1 0-.1.1-.1.1-.1.1h-.6z\",\"games\":\"M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z\",\"hd\":\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 12H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm2-6h4c.55 0 1 .45 1 1v4c0 .55-.45 1-1 1h-4V9zm1.5 4.5h2v-3h-2v3z\",\"hearing\":\"M17 20c-.29 0-.56-.06-.76-.15-.71-.37-1.21-.88-1.71-2.38-.51-1.56-1.47-2.29-2.39-3-.79-.61-1.61-1.24-2.32-2.53C9.29 10.98 9 9.93 9 9c0-2.8 2.2-5 5-5s5 2.2 5 5h2c0-3.93-3.07-7-7-7S7 5.07 7 9c0 1.26.38 2.65 1.07 3.9.91 1.65 1.98 2.48 2.85 3.15.81.62 1.39 1.07 1.71 2.05.6 1.82 1.37 2.84 2.73 3.55A4 4 0 0 0 21 18h-2c0 1.1-.9 2-2 2zM7.64 2.64L6.22 1.22C4.23 3.21 3 5.96 3 9s1.23 5.79 3.22 7.78l1.41-1.41C6.01 13.74 5 11.49 5 9s1.01-4.74 2.64-6.36zM11.5 9a2.5 2.5 0 0 0 5 0 2.5 2.5 0 0 0-5 0z\",\"high_quality\":\"M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z\",\"library_add\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z\",\"library_books\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9H9V9h10v2zm-4 4H9v-2h6v2zm4-8H9V5h10v2z\",\"library_music\":\"M20 2H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-2 5h-3v5.5a2.5 2.5 0 0 1-5 0 2.5 2.5 0 0 1 2.5-2.5c.57 0 1.08.19 1.5.51V5h4v2zM4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6z\",\"loop\":\"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46A7.93 7.93 0 0 0 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74A7.93 7.93 0 0 0 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z\",\"mic\":\"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\",\"mic_none\":\"M12 14c1.66 0 2.99-1.34 2.99-3L15 5c0-1.66-1.34-3-3-3S9 3.34 9 5v6c0 1.66 1.34 3 3 3zm-1.2-9.1c0-.66.54-1.2 1.2-1.2.66 0 1.2.54 1.2 1.2l-.01 6.2c0 .66-.53 1.2-1.19 1.2-.66 0-1.2-.54-1.2-1.2V4.9zm6.5 6.1c0 3-2.54 5.1-5.3 5.1S6.7 14 6.7 11H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\",\"mic_off\":\"M19 11h-1.7c0 .74-.16 1.43-.43 2.05l1.23 1.23c.56-.98.9-2.09.9-3.28zm-4.02.17c0-.06.02-.11.02-.17V5c0-1.66-1.34-3-3-3S9 3.34 9 5v.18l5.98 5.99zM4.27 3L3 4.27l6.01 6.01V11c0 1.66 1.33 3 2.99 3 .22 0 .44-.03.65-.08l1.66 1.66c-.71.33-1.5.52-2.31.52-2.76 0-5.3-2.1-5.3-5.1H5c0 3.41 2.72 6.23 6 6.72V21h2v-3.28c.91-.13 1.77-.45 2.54-.9L19.73 21 21 19.73 4.27 3z\",\"movie\":\"M18 4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V4h-4z\",\"music_video\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h18v14zM8 15c0-1.66 1.34-3 3-3 .35 0 .69.07 1 .18V6h5v2h-3v7.03A3.003 3.003 0 0 1 11 18c-1.66 0-3-1.34-3-3z\",\"new_releases\":\"M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3 8.6 1.54 6.71 4.72l-3.61.81.34 3.68L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-10 5h-2v-2h2v2zm0-4h-2V7h2v6z\",\"not_interested\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\",\"note\":\"M22 10l-6-6H4c-1.1 0-2 .9-2 2v12.01c0 1.1.9 1.99 2 1.99l16-.01c1.1 0 2-.89 2-1.99v-8zm-7-4.5l5.5 5.5H15V5.5z\",\"pause\":\"M6 19h4V5H6v14zm8-14v14h4V5h-4z\",\"pause_circle_filled\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 14H9V8h2v8zm4 0h-2V8h2v8z\",\"pause_circle_outline\":\"M9 16h2V8H9v8zm3-14C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm1-4h2V8h-2v8z\",\"play_arrow\":\"M8 5v14l11-7z\",\"play_circle_filled\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 14.5v-9l6 4.5-6 4.5z\",\"play_circle_outline\":\"M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\",\"playlist_add\":\"M14 10H2v2h12v-2zm0-4H2v2h12V6zm4 8v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zM2 16h8v-2H2v2z\",\"playlist_add_check\":\"M14 10H2v2h12v-2zm0-4H2v2h12V6zM2 16h8v-2H2v2zm19.5-4.5L23 13l-6.99 7-4.51-4.5L13 14l3.01 3 5.49-5.5z\",\"playlist_play\":\"M19 9H2v2h17V9zm0-4H2v2h17V5zM2 15h13v-2H2v2zm15-2v6l5-3-5-3z\",\"queue\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-1 9h-4v4h-2v-4H9V9h4V5h2v4h4v2z\",\"queue_music\":\"M15 6H3v2h12V6zm0 4H3v2h12v-2zM3 16h8v-2H3v2zM17 6v8.18c-.31-.11-.65-.18-1-.18-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3V8h3V6h-5z\",\"queue_play_next\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h2v-2H3V5h18v8h2V5a2 2 0 0 0-2-2zm-8 7V7h-2v3H8v2h3v3h2v-3h3v-2h-3zm11 8l-4.5 4.5L18 21l3-3-3-3 1.5-1.5L24 18z\",\"radio\":\"M3.24 6.15C2.51 6.43 2 7.17 2 8v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8c0-1.11-.89-2-2-2H8.3l8.26-3.34L15.88 1 3.24 6.15zM7 20c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm13-8h-2v-2h-2v2H4V8h16v4z\",\"recent_actors\":\"M21 5v14h2V5h-2zm-4 14h2V5h-2v14zM14 5H2c-.55 0-1 .45-1 1v12c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6c0-.55-.45-1-1-1zM8 7.75c1.24 0 2.25 1.01 2.25 2.25S9.24 12.25 8 12.25 5.75 11.24 5.75 10 6.76 7.75 8 7.75zM12.5 17h-9v-.75c0-1.5 3-2.25 4.5-2.25s4.5.75 4.5 2.25V17z\",\"remove_from_queue\":\"M21 3H3c-1.11 0-2 .89-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5a2 2 0 0 0-2-2zm0 14H3V5h18v12zm-5-7v2H8v-2h8z\",\"repeat\":\"M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4z\",\"repeat_one\":\"M7 7h10v3l4-4-4-4v3H5v6h2V7zm10 10H7v-3l-4 4 4 4v-3h12v-6h-2v4zm-4-2V9h-1l-2 1v1h1.5v4H13z\",\"replay_10\":\"M12 5V1L7 6l5 5V7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6H4c0 4.4 3.6 8 8 8s8-3.6 8-8-3.6-8-8-8zm-1.1 11H10v-3.3L9 13v-.7l1.8-.6h.1V16zm4.3-1.8c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1c.2.1.3.2.5.3s.2.3.3.6.1.5.1.8v.7zm-.9-.8v-.5s-.1-.2-.1-.3-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5z\",\"replay\":\"M12 5V1L7 6l5 5V7c3.31 0 6 2.69 6 6s-2.69 6-6 6-6-2.69-6-6H4c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8z\",\"replay_30\":\"M12 5V1L7 6l5 5V7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6H4c0 4.4 3.6 8 8 8s8-3.6 8-8-3.6-8-8-8zm-2.4 8.5h.4c.2 0 .4-.1.5-.2s.2-.2.2-.4v-.2s-.1-.1-.1-.2-.1-.1-.2-.1h-.5s-.1.1-.2.1-.1.1-.1.2v.2h-1c0-.2 0-.3.1-.5s.2-.3.3-.4.3-.2.4-.2.4-.1.5-.1c.2 0 .4 0 .6.1s.3.1.5.2.2.2.3.4.1.3.1.5v.3s-.1.2-.1.3-.1.2-.2.2-.2.1-.3.2c.2.1.4.2.5.4s.2.4.2.6c0 .2 0 .4-.1.5s-.2.3-.3.4-.3.2-.5.2-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.4-.1-.6h.8v.2s.1.1.1.2.1.1.2.1h.5s.1-.1.2-.1.1-.1.1-.2v-.5s-.1-.1-.1-.2-.1-.1-.2-.1h-.6v-.7zm5.7.7c0 .3 0 .6-.1.8l-.3.6s-.3.3-.5.3-.4.1-.6.1-.4 0-.6-.1-.3-.2-.5-.3-.2-.3-.3-.6-.1-.5-.1-.8v-.7c0-.3 0-.6.1-.8l.3-.6s.3-.3.5-.3.4-.1.6-.1.4 0 .6.1.3.2.5.3.2.3.3.6.1.5.1.8v.7zm-.8-.8v-.5c0-.1-.1-.2-.1-.3s-.1-.1-.2-.2-.2-.1-.3-.1-.2 0-.3.1l-.2.2s-.1.2-.1.3v2s.1.2.1.3.1.1.2.2.2.1.3.1.2 0 .3-.1l.2-.2s.1-.2.1-.3v-1.5z\",\"replay_5\":\"M12 5V1L7 6l5 5V7c3.3 0 6 2.7 6 6s-2.7 6-6 6-6-2.7-6-6H4c0 4.4 3.6 8 8 8s8-3.6 8-8-3.6-8-8-8zm-1.3 8.9l.2-2.2h2.4v.7h-1.7l-.1.9s.1 0 .1-.1.1 0 .1-.1.1 0 .2 0h.2c.2 0 .4 0 .5.1s.3.2.4.3.2.3.3.5.1.4.1.6c0 .2 0 .4-.1.5s-.1.3-.3.5-.3.2-.4.3-.4.1-.6.1c-.2 0-.4 0-.5-.1s-.3-.1-.5-.2-.2-.2-.3-.4-.1-.3-.1-.5h.8c0 .2.1.3.2.4s.2.1.4.1c.1 0 .2 0 .3-.1l.2-.2s.1-.2.1-.3v-.6l-.1-.2-.2-.2s-.2-.1-.3-.1h-.2s-.1 0-.2.1-.1 0-.1.1-.1.1-.1.1h-.7z\",\"shuffle\":\"M10.59 9.17L5.41 4 4 5.41l5.17 5.17 1.42-1.41zM14.5 4l2.04 2.04L4 18.59 5.41 20 17.96 7.46 20 9.5V4h-5.5zm.33 9.41l-1.41 1.41 3.13 3.13L14.5 20H20v-5.5l-2.04 2.04-3.13-3.13z\",\"skip_next\":\"M6 18l8.5-6L6 6v12zM16 6v12h2V6h-2z\",\"skip_previous\":\"M6 6h2v12H6zm3.5 6l8.5 6V6z\",\"slow_motion_video\":\"M13.05 9.79L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zm0 0L10 7.5v9l3.05-2.29L16 12zM11 4.07V2.05c-2.01.2-3.84 1-5.32 2.21L7.1 5.69A7.94 7.94 0 0 1 11 4.07zM5.69 7.1L4.26 5.68A9.95 9.95 0 0 0 2.05 11h2.02a7.94 7.94 0 0 1 1.62-3.9zM4.07 13H2.05c.2 2.01 1 3.84 2.21 5.32l1.43-1.43A7.868 7.868 0 0 1 4.07 13zm1.61 6.74A9.98 9.98 0 0 0 11 21.95v-2.02a7.94 7.94 0 0 1-3.9-1.62l-1.42 1.43zM22 12c0 5.16-3.92 9.42-8.95 9.95v-2.02C16.97 19.41 20 16.05 20 12s-3.03-7.41-6.95-7.93V2.05C18.08 2.58 22 6.84 22 12z\",\"snooze\":\"M7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9a9 9 0 0 0 0-18zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7zm-3-9h3.63L9 15.2V17h6v-2h-3.63L15 10.8V9H9v2z\",\"sort_by_alpha\":\"M14.94 4.66h-4.72l2.36-2.36zm-4.69 14.71h4.66l-2.33 2.33zM6.1 6.27L1.6 17.73h1.84l.92-2.45h5.11l.92 2.45h1.84L7.74 6.27H6.1zm-1.13 7.37l1.94-5.18 1.94 5.18H4.97zm10.76 2.5h6.12v1.59h-8.53v-1.29l5.92-8.56h-5.88v-1.6h8.3v1.26l-5.93 8.6z\",\"stop\":\"M6 6h12v12H6z\",\"subscriptions\":\"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z\",\"subtitles\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z\",\"surround_sound\":\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM7.76 16.24l-1.41 1.41A7.91 7.91 0 0 1 4 12c0-2.05.78-4.1 2.34-5.66l1.41 1.41C6.59 8.93 6 10.46 6 12s.59 3.07 1.76 4.24zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm5.66 1.66l-1.41-1.41C17.41 15.07 18 13.54 18 12s-.59-3.07-1.76-4.24l1.41-1.41A7.91 7.91 0 0 1 20 12c0 2.05-.78 4.1-2.34 5.66zM12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\",\"video_call\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4zM14 13h-3v3H9v-3H6v-2h3V8h2v3h3v2z\",\"video_label\":\"M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 13H3V5h18v11z\",\"video_library\":\"M4 6H2v14c0 1.1.9 2 2 2h14v-2H4V6zm16-4H8c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-8 12.5v-9l6 4.5-6 4.5z\",\"videocam\":\"M17 10.5V7c0-.55-.45-1-1-1H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z\",\"videocam_off\":\"M21 6.5l-4 4V7c0-.55-.45-1-1-1H9.82L21 17.18V6.5zM3.27 2L2 3.27 4.73 6H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.21 0 .39-.08.54-.18L19.73 21 21 19.73 3.27 2z\",\"volume_down\":\"M18.5 12A4.5 4.5 0 0 0 16 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM5 9v6h4l5 5V4L9 9H5z\",\"volume_mute\":\"M7 9v6h4l5 5V4l-5 5H7z\",\"volume_off\":\"M16.5 12A4.5 4.5 0 0 0 14 7.97v2.21l2.45 2.45c.03-.2.05-.41.05-.63zm2.5 0c0 .94-.2 1.82-.54 2.64l1.51 1.51A8.796 8.796 0 0 0 21 12c0-4.28-2.99-7.86-7-8.77v2.06c2.89.86 5 3.54 5 6.71zM4.27 3L3 4.27 7.73 9H3v6h4l5 5v-6.73l4.25 4.25c-.67.52-1.42.93-2.25 1.18v2.06a8.99 8.99 0 0 0 3.69-1.81L19.73 21 21 19.73l-9-9L4.27 3zM12 4L9.91 6.09 12 8.18V4z\",\"volume_up\":\"M3 9v6h4l5 5V4L7 9H3zm13.5 3A4.5 4.5 0 0 0 14 7.97v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\",\"web\":\"M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-5 14H4v-4h11v4zm0-5H4V9h11v4zm5 5h-4V9h4v9z\",\"web_asset\":\"M19 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V6a2 2 0 0 0-2-2zm0 14H5V8h14v10z\",\"cast\":\"M21 3H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm0-4v2a9 9 0 0 1 9 9h2c0-6.08-4.93-11-11-11z\",\"cast_connected\":\"M1 18v3h3c0-1.66-1.34-3-3-3zm0-4v2c2.76 0 5 2.24 5 5h2c0-3.87-3.13-7-7-7zm18-7H5v1.63c3.96 1.28 7.09 4.41 8.37 8.37H19V7zM1 10v2a9 9 0 0 1 9 9h2c0-6.08-4.93-11-11-11zm20-7H3c-1.1 0-2 .9-2 2v3h2V5h18v14h-7v2h7c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\",\"computer\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\",\"desktop_mac\":\"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7l-2 3v1h8v-1l-2-3h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 12H3V4h18v10z\",\"desktop_windows\":\"M21 2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h7v2H8v2h8v-2h-2v-2h7c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H3V4h18v12z\",\"developer_board\":\"M22 9V7h-2V5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2v-2h-2V9h2zm-4 10H4V5h14v14zM6 13h5v4H6zm6-6h4v3h-4zM6 7h5v5H6zm6 4h4v6h-4z\",\"device_hub\":\"M17 16l-4-4V8.82C14.16 8.4 15 7.3 15 6c0-1.66-1.34-3-3-3S9 4.34 9 6c0 1.3.84 2.4 2 2.82V12l-4 4H3v5h5v-3.05l4-4.2 4 4.2V21h5v-5h-4z\",\"devices_other\":\"M3 6h18V4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h4v-2H3V6zm10 6H9v1.78c-.61.55-1 1.33-1 2.22s.39 1.67 1 2.22V20h4v-1.78c.61-.55 1-1.34 1-2.22s-.39-1.67-1-2.22V12zm-2 5.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM22 8h-6c-.5 0-1 .5-1 1v10c0 .5.5 1 1 1h6c.5 0 1-.5 1-1V9c0-.5-.5-1-1-1zm-1 10h-4v-8h4v8z\",\"dock\":\"M8 23h8v-2H8v2zm8-21.99L8 1c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM16 15H8V5h8v10z\",\"gamepad\":\"M15 7.5V2H9v5.5l3 3 3-3zM7.5 9H2v6h5.5l3-3-3-3zM9 16.5V22h6v-5.5l-3-3-3 3zM16.5 9l-3 3 3 3H22V9h-5.5z\",\"headset\":\"M12 1a9 9 0 0 0-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h3c1.66 0 3-1.34 3-3v-7a9 9 0 0 0-9-9z\",\"headset_mic\":\"M12 1a9 9 0 0 0-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10a9 9 0 0 0-9-9z\",\"keyboard\":\"M20 5H4c-1.1 0-1.99.9-1.99 2L2 17c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-9 3h2v2h-2V8zm0 3h2v2h-2v-2zM8 8h2v2H8V8zm0 3h2v2H8v-2zm-1 2H5v-2h2v2zm0-3H5V8h2v2zm9 7H8v-2h8v2zm0-4h-2v-2h2v2zm0-3h-2V8h2v2zm3 3h-2v-2h2v2zm0-3h-2V8h2v2z\",\"keyboard_arrow_down\":\"M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z\",\"keyboard_arrow_left\":\"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\",\"keyboard_arrow_right\":\"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\",\"keyboard_arrow_up\":\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z\",\"keyboard_backspace\":\"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21z\",\"keyboard_capslock\":\"M12 8.41L16.59 13 18 11.59l-6-6-6 6L7.41 13 12 8.41zM6 18h12v-2H6v2z\",\"keyboard_hide\":\"M20 3H4c-1.1 0-1.99.9-1.99 2L2 15c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-9 3h2v2h-2V6zm0 3h2v2h-2V9zM8 6h2v2H8V6zm0 3h2v2H8V9zm-1 2H5V9h2v2zm0-3H5V6h2v2zm9 7H8v-2h8v2zm0-4h-2V9h2v2zm0-3h-2V6h2v2zm3 3h-2V9h2v2zm0-3h-2V6h2v2zm-7 15l4-4H8l4 4z\",\"keyboard_return\":\"M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.41L5.83 13H21V7z\",\"keyboard_tab\":\"M11.59 7.41L15.17 11H1v2h14.17l-3.59 3.59L13 18l6-6-6-6-1.41 1.41zM20 6v12h2V6h-2z\",\"keyboard_voice\":\"M12 15c1.66 0 2.99-1.34 2.99-3L15 6c0-1.66-1.34-3-3-3S9 4.34 9 6v6c0 1.66 1.34 3 3 3zm5.3-3c0 3-2.54 5.1-5.3 5.1S6.7 15 6.7 12H5c0 3.42 2.72 6.23 6 6.72V22h2v-3.28c3.28-.48 6-3.3 6-6.72h-1.7z\",\"laptop\":\"M20 18c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2H0v2h24v-2h-4zM4 6h16v10H4V6z\",\"laptop_chromebook\":\"M22 18V3H2v15H0v2h24v-2h-2zm-8 0h-4v-1h4v1zm6-3H4V5h16v10z\",\"laptop_mac\":\"M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\",\"laptop_windows\":\"M20 18v-1c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2v1H0v2h24v-2h-4zM4 5h16v10H4V5z\",\"memory\":\"M15 9H9v6h6V9zm-2 4h-2v-2h2v2zm8-2V9h-2V7c0-1.1-.9-2-2-2h-2V3h-2v2h-2V3H9v2H7c-1.1 0-2 .9-2 2v2H3v2h2v2H3v2h2v2c0 1.1.9 2 2 2h2v2h2v-2h2v2h2v-2h2c1.1 0 2-.9 2-2v-2h2v-2h-2v-2h2zm-4 6H7V7h10v10z\",\"mouse\":\"M13 1.07V9h7c0-4.08-3.05-7.44-7-7.93zM4 15c0 4.42 3.58 8 8 8s8-3.58 8-8v-4H4v4zm7-13.93C7.05 1.56 4 4.92 4 9h7V1.07z\",\"phone_android\":\"M16 1H8C6.34 1 5 2.34 5 4v16c0 1.66 1.34 3 3 3h8c1.66 0 3-1.34 3-3V4c0-1.66-1.34-3-3-3zm-2 20h-4v-1h4v1zm3.25-3H6.75V4h10.5v14z\",\"phone_iphone\":\"M15.5 1h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z\",\"phonelink\":\"M4 6h18V4H4c-1.1 0-2 .9-2 2v11H0v3h14v-3H4V6zm19 2h-6c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h6c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1zm-1 9h-4v-7h4v7z\",\"phonelink_off\":\"M22 6V4H6.82l2 2H22zM1.92 1.65L.65 2.92l1.82 1.82C2.18 5.08 2 5.52 2 6v11H0v3h17.73l2.35 2.35 1.27-1.27L3.89 3.62 1.92 1.65zM4 6.27L14.73 17H4V6.27zM23 8h-6c-.55 0-1 .45-1 1v4.18l2 2V10h4v7h-2.18l3 3H23c.55 0 1-.45 1-1V9c0-.55-.45-1-1-1z\",\"power_input\":\"M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z\",\"router\":\"M20.2 5.9l.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7zm-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1l.8-.8zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zM8 18H6v-2h2v2zm3.5 0h-2v-2h2v2zm3.5 0h-2v-2h2v2z\",\"scanner\":\"M19.8 10.7L4.2 5l-.7 1.9L17.6 12H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-5.5c0-.8-.5-1.6-1.2-1.8zM7 17H5v-2h2v2zm12 0H9v-2h10v2z\",\"security\":\"M12 1L3 5v6c0 5.55 3.84 10.74 9 12 5.16-1.26 9-6.45 9-12V5l-9-4zm0 10.99h7c-.53 4.12-3.28 7.79-7 8.94V12H5V6.3l7-3.11v8.8z\",\"sim_card\":\"M19.99 4c0-1.1-.89-2-1.99-2h-8L4 8v12c0 1.1.9 2 2 2h12.01c1.1 0 1.99-.9 1.99-2l-.01-16zM9 19H7v-2h2v2zm8 0h-2v-2h2v2zm-8-4H7v-4h2v4zm4 4h-2v-4h2v4zm0-6h-2v-2h2v2zm4 2h-2v-4h2v4z\",\"smartphone\":\"M17 1.01L7 1c-1.1 0-2 .9-2 2v18c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V3c0-1.1-.9-1.99-2-1.99zM17 19H7V5h10v14z\",\"speaker\":\"M17 2H7c-1.1 0-2 .9-2 2v16c0 1.1.9 1.99 2 1.99L17 22c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm-5 2c1.1 0 2 .9 2 2s-.9 2-2 2a2 2 0 0 1 0-4zm0 16c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\",\"speaker_group\":\"M6 5H4v16a2 2 0 0 0 2 2h10v-2H6V5z\",\"tablet\":\"M21 4H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 1.99-.9 1.99-2L23 6c0-1.1-.9-2-2-2zm-2 14H5V6h14v12z\",\"tablet_android\":\"M18 0H6C4.34 0 3 1.34 3 3v18c0 1.66 1.34 3 3 3h12c1.66 0 3-1.34 3-3V3c0-1.66-1.34-3-3-3zm-4 22h-4v-1h4v1zm5.25-3H4.75V3h14.5v16z\",\"tablet_mac\":\"M18.5 0h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z\",\"toys\":\"M12 12c0-3 2.5-5.5 5.5-5.5S23 9 23 12H12zm0 0c0 3-2.5 5.5-5.5 5.5S1 15 1 12h11zm0 0c-3 0-5.5-2.5-5.5-5.5S9 1 12 1v11zm0 0c3 0 5.5 2.5 5.5 5.5S15 23 12 23V12z\",\"tv\":\"M21 3H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.1-.9-2-2-2zm0 14H3V5h18v12z\",\"videogame_asset\":\"M21 6H3c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-10 7H8v3H6v-3H3v-2h3V8h2v3h3v2zm4.5 2c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4-3c-.83 0-1.5-.67-1.5-1.5S18.67 9 19.5 9s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\",\"watch\":\"M20 12c0-2.54-1.19-4.81-3.04-6.27L16 0H8l-.95 5.73C5.19 7.19 4 9.45 4 12s1.19 4.81 3.05 6.27L8 24h8l.96-5.73A7.976 7.976 0 0 0 20 12zM6 12c0-3.31 2.69-6 6-6s6 2.69 6 6-2.69 6-6 6-6-2.69-6-6z\",\"attach_file\":\"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5a2.5 2.5 0 0 1 5 0v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5a2.5 2.5 0 0 0 5 0V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\",\"attach_money\":\"M11.8 10.9c-2.27-.59-3-1.2-3-2.15 0-1.09 1.01-1.85 2.7-1.85 1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-1.94.42-3.5 1.68-3.5 3.61 0 2.31 1.91 3.46 4.7 4.13 2.5.6 3 1.48 3 2.41 0 .69-.49 1.79-2.7 1.79-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c1.95-.37 3.5-1.5 3.5-3.55 0-2.84-2.43-3.81-4.7-4.4z\",\"border_all\":\"M3 3v18h18V3H3zm8 16H5v-6h6v6zm0-8H5V5h6v6zm8 8h-6v-6h6v6zm0-8h-6V5h6v6z\",\"border_bottom\":\"M9 11H7v2h2v-2zm4 4h-2v2h2v-2zM9 3H7v2h2V3zm4 8h-2v2h2v-2zM5 3H3v2h2V3zm8 4h-2v2h2V7zm4 4h-2v2h2v-2zm-4-8h-2v2h2V3zm4 0h-2v2h2V3zm2 10h2v-2h-2v2zm0 4h2v-2h-2v2zM5 7H3v2h2V7zm14-4v2h2V3h-2zm0 6h2V7h-2v2zM5 11H3v2h2v-2zM3 21h18v-2H3v2zm2-6H3v2h2v-2z\",\"border_clear\":\"M7 5h2V3H7v2zm0 8h2v-2H7v2zm0 8h2v-2H7v2zm4-4h2v-2h-2v2zm0 4h2v-2h-2v2zm-8 0h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2v-2H3v2zm0-4h2V7H3v2zm0-4h2V3H3v2zm8 8h2v-2h-2v2zm8 4h2v-2h-2v2zm0-4h2v-2h-2v2zm0 8h2v-2h-2v2zm0-12h2V7h-2v2zm-8 0h2V7h-2v2zm8-6v2h2V3h-2zm-8 2h2V3h-2v2zm4 16h2v-2h-2v2zm0-8h2v-2h-2v2zm0-8h2V3h-2v2z\",\"border_color\":\"M0 20h24v4H0z\",\"border_horizontal\":\"M3 21h2v-2H3v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zm4 4h2v-2H7v2zM5 3H3v2h2V3zm4 0H7v2h2V3zm8 0h-2v2h2V3zm-4 4h-2v2h2V7zm0-4h-2v2h2V3zm6 14h2v-2h-2v2zm-8 4h2v-2h-2v2zm-8-8h18v-2H3v2zM19 3v2h2V3h-2zm0 6h2V7h-2v2zm-8 8h2v-2h-2v2zm4 4h2v-2h-2v2zm4 0h2v-2h-2v2z\",\"border_inner\":\"M3 21h2v-2H3v2zm4 0h2v-2H7v2zM5 7H3v2h2V7zM3 17h2v-2H3v2zM9 3H7v2h2V3zM5 3H3v2h2V3zm12 0h-2v2h2V3zm2 6h2V7h-2v2zm0-6v2h2V3h-2zm-4 18h2v-2h-2v2zM13 3h-2v8H3v2h8v8h2v-8h8v-2h-8V3zm6 18h2v-2h-2v2zm0-4h2v-2h-2v2z\",\"border_left\":\"M11 21h2v-2h-2v2zm0-4h2v-2h-2v2zm0-12h2V3h-2v2zm0 4h2V7h-2v2zm0 4h2v-2h-2v2zm-4 8h2v-2H7v2zM7 5h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2V3H3v18zM19 9h2V7h-2v2zm-4 12h2v-2h-2v2zm4-4h2v-2h-2v2zm0-14v2h2V3h-2zm0 10h2v-2h-2v2zm0 8h2v-2h-2v2zm-4-8h2v-2h-2v2zm0-8h2V3h-2v2z\",\"border_outer\":\"M13 7h-2v2h2V7zm0 4h-2v2h2v-2zm4 0h-2v2h2v-2zM3 3v18h18V3H3zm16 16H5V5h14v14zm-6-4h-2v2h2v-2zm-4-4H7v2h2v-2z\",\"border_right\":\"M7 21h2v-2H7v2zM3 5h2V3H3v2zm4 0h2V3H7v2zm0 8h2v-2H7v2zm-4 8h2v-2H3v2zm8 0h2v-2h-2v2zm-8-8h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm8 8h2v-2h-2v2zm4-4h2v-2h-2v2zm4-10v18h2V3h-2zm-4 18h2v-2h-2v2zm0-16h2V3h-2v2zm-4 8h2v-2h-2v2zm0-8h2V3h-2v2zm0 4h2V7h-2v2z\",\"border_style\":\"M15 21h2v-2h-2v2zm4 0h2v-2h-2v2zM7 21h2v-2H7v2zm4 0h2v-2h-2v2zm8-4h2v-2h-2v2zm0-4h2v-2h-2v2zM3 3v18h2V5h16V3H3zm16 6h2V7h-2v2z\",\"border_top\":\"M7 21h2v-2H7v2zm0-8h2v-2H7v2zm4 0h2v-2h-2v2zm0 8h2v-2h-2v2zm-8-4h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2v-2H3v2zm0-4h2V7H3v2zm8 8h2v-2h-2v2zm8-8h2V7h-2v2zm0 4h2v-2h-2v2zM3 3v2h18V3H3zm16 14h2v-2h-2v2zm-4 4h2v-2h-2v2zM11 9h2V7h-2v2zm8 12h2v-2h-2v2zm-4-8h2v-2h-2v2z\",\"border_vertical\":\"M3 9h2V7H3v2zm0-4h2V3H3v2zm4 16h2v-2H7v2zm0-8h2v-2H7v2zm-4 0h2v-2H3v2zm0 8h2v-2H3v2zm0-4h2v-2H3v2zM7 5h2V3H7v2zm12 12h2v-2h-2v2zm-8 4h2V3h-2v18zm8 0h2v-2h-2v2zm0-8h2v-2h-2v2zm0-10v2h2V3h-2zm0 6h2V7h-2v2zm-4-4h2V3h-2v2zm0 16h2v-2h-2v2zm0-8h2v-2h-2v2z\",\"drag_handle\":\"M20 9H4v2h16V9zM4 15h16v-2H4v2z\",\"format_align_center\":\"M7 15v2h10v-2H7zm-4 6h18v-2H3v2zm0-8h18v-2H3v2zm4-6v2h10V7H7zM3 3v2h18V3H3z\",\"format_align_justify\":\"M3 21h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18v-2H3v2zm0-4h18V7H3v2zm0-6v2h18V3H3z\",\"format_align_left\":\"M15 15H3v2h12v-2zm0-8H3v2h12V7zM3 13h18v-2H3v2zm0 8h18v-2H3v2zM3 3v2h18V3H3z\",\"format_align_right\":\"M3 21h18v-2H3v2zm6-4h12v-2H9v2zm-6-4h18v-2H3v2zm6-4h12V7H9v2zM3 3v2h18V3H3z\",\"format_bold\":\"M15.6 10.79c.97-.67 1.65-1.77 1.65-2.79 0-2.26-1.75-4-4-4H7v14h7.04c2.09 0 3.71-1.7 3.71-3.79 0-1.52-.86-2.82-2.15-3.42zM10 6.5h3c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-3v-3zm3.5 9H10v-3h3.5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5z\",\"format_clear\":\"M3.27 5L2 6.27l6.97 6.97L6.5 19h3l1.57-3.66L16.73 21 18 19.73 3.55 5.27 3.27 5zM6 5v.18L8.82 8h2.4l-.72 1.68 2.1 2.1L14.21 8H20V5H6z\",\"format_color_fill\":\"M0 20h24v4H0z\",\"format_color_reset\":\"M18 14c0-4-6-10.8-6-10.8s-1.33 1.51-2.73 3.52l8.59 8.59c.09-.42.14-.86.14-1.31zm-.88 3.12L12.5 12.5 5.27 5.27 4 6.55l3.32 3.32C6.55 11.32 6 12.79 6 14c0 3.31 2.69 6 6 6 1.52 0 2.9-.57 3.96-1.5l2.63 2.63 1.27-1.27-2.74-2.74z\",\"format_color_text\":\"M11 3L5.5 17h2.25l1.12-3h6.25l1.12 3h2.25L13 3h-2zm-1.38 9L12 5.67 14.38 12H9.62z\",\"format_indent_decrease\":\"M11 17h10v-2H11v2zm-8-5l4 4V8l-4 4zm0 9h18v-2H3v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\",\"format_indent_increase\":\"M3 21h18v-2H3v2zM3 8v8l4-4-4-4zm8 9h10v-2H11v2zM3 3v2h18V3H3zm8 6h10V7H11v2zm0 4h10v-2H11v2z\",\"format_italic\":\"M10 4v3h2.21l-3.42 8H6v3h8v-3h-2.21l3.42-8H18V4z\",\"format_line_spacing\":\"M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z\",\"format_list_bulleted\":\"M4 10.5c-.83 0-1.5.67-1.5 1.5s.67 1.5 1.5 1.5 1.5-.67 1.5-1.5-.67-1.5-1.5-1.5zm0-6c-.83 0-1.5.67-1.5 1.5S3.17 7.5 4 7.5 5.5 6.83 5.5 6 4.83 4.5 4 4.5zm0 12c-.83 0-1.5.68-1.5 1.5s.68 1.5 1.5 1.5 1.5-.68 1.5-1.5-.67-1.5-1.5-1.5zM7 19h14v-2H7v2zm0-6h14v-2H7v2zm0-8v2h14V5H7z\",\"format_list_numbered\":\"M2 17h2v.5H3v1h1v.5H2v1h3v-4H2v1zm1-9h1V4H2v1h1v3zm-1 3h1.8L2 13.1v.9h3v-1H3.2L5 10.9V10H2v1zm5-6v2h14V5H7zm0 14h14v-2H7v2zm0-6h14v-2H7v2z\",\"format_paint\":\"M18 4V3c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h12c.55 0 1-.45 1-1V6h1v4H9v11c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-9h8V4h-3z\",\"format_quote\":\"M6 17h3l2-4V7H5v6h3zm8 0h3l2-4V7h-6v6h3z\",\"format_shapes\":\"M23 7V1h-6v2H7V1H1v6h2v10H1v6h6v-2h10v2h6v-6h-2V7h2zM3 3h2v2H3V3zm2 18H3v-2h2v2zm12-2H7v-2H5V7h2V5h10v2h2v10h-2v2zm4 2h-2v-2h2v2zM19 5V3h2v2h-2zm-5.27 9h-3.49l-.73 2H7.89l3.4-9h1.4l3.41 9h-1.63l-.74-2zm-3.04-1.26h2.61L12 8.91l-1.31 3.83z\",\"format_size\":\"M9 4v3h5v12h3V7h5V4H9zm-6 8h3v7h3v-7h3V9H3v3z\",\"format_strikethrough\":\"M10 19h4v-3h-4v3zM5 4v3h5v3h4V7h5V4H5zM3 14h18v-2H3v2z\",\"format_textdirection_l_to_r\":\"M9 10v5h2V4h2v11h2V4h2V2H9C6.79 2 5 3.79 5 6s1.79 4 4 4zm12 8l-4-4v3H5v2h12v3l4-4z\",\"format_textdirection_r_to_l\":\"M10 10v5h2V4h2v11h2V4h2V2h-8C7.79 2 6 3.79 6 6s1.79 4 4 4zm-2 7v-3l-4 4 4 4v-3h12v-2H8z\",\"format_underlined\":\"M12 17c3.31 0 6-2.69 6-6V3h-2.5v8c0 1.93-1.57 3.5-3.5 3.5S8.5 12.93 8.5 11V3H6v8c0 3.31 2.69 6 6 6zm-7 2v2h14v-2H5z\",\"functions\":\"M18 4H6v2l6.5 6L6 18v2h12v-3h-7l5-5-5-5h7z\",\"highlight\":\"M6 14l3 3v5h6v-5l3-3V9H6zm5-12h2v3h-2zM3.5 5.875L4.914 4.46l2.12 2.122L5.62 7.997zm13.46.71l2.123-2.12 1.414 1.414L18.375 8z\",\"insert_chart\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\",\"insert_comment\":\"M20 2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4V4c0-1.1-.9-2-2-2zm-2 12H6v-2h12v2zm0-3H6V9h12v2zm0-3H6V6h12v2z\",\"insert_drive_file\":\"M6 2c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6H6zm7 7V3.5L18.5 9H13z\",\"insert_emoticon\":\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm3.5-9c.83 0 1.5-.67 1.5-1.5S16.33 8 15.5 8 14 8.67 14 9.5s.67 1.5 1.5 1.5zm-7 0c.83 0 1.5-.67 1.5-1.5S9.33 8 8.5 8 7 8.67 7 9.5 7.67 11 8.5 11zm3.5 6.5c2.33 0 4.31-1.46 5.11-3.5H6.89c.8 2.04 2.78 3.5 5.11 3.5z\",\"insert_invitation\":\"M17 12h-5v5h5v-5zM16 1v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-1V1h-2zm3 18H5V8h14v11z\",\"insert_link\":\"M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z\",\"insert_photo\":\"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z\",\"linear_scale\":\"M19.5 9.5c-1.03 0-1.9.62-2.29 1.5h-2.92c-.39-.88-1.26-1.5-2.29-1.5s-1.9.62-2.29 1.5H6.79c-.39-.88-1.26-1.5-2.29-1.5a2.5 2.5 0 0 0 0 5c1.03 0 1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5s1.9-.62 2.29-1.5h2.92c.39.88 1.26 1.5 2.29 1.5a2.5 2.5 0 0 0 0-5z\",\"merge_type\":\"M17 20.41L18.41 19 15 15.59 13.59 17 17 20.41zM7.5 8H11v5.59L5.59 19 7 20.41l6-6V8h3.5L12 3.5 7.5 8z\",\"mode_comment\":\"M21.99 4c0-1.1-.89-2-1.99-2H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h14l4 4-.01-18z\",\"mode_edit\":\"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a.996.996 0 0 0 0-1.41l-2.34-2.34a.996.996 0 0 0-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z\",\"monetization_on\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1.41 16.09V20h-2.67v-1.93c-1.71-.36-3.16-1.46-3.27-3.4h1.96c.1 1.05.82 1.87 2.65 1.87 1.96 0 2.4-.98 2.4-1.59 0-.83-.44-1.61-2.67-2.14-2.48-.6-4.18-1.62-4.18-3.67 0-1.72 1.39-2.84 3.11-3.21V4h2.67v1.95c1.86.45 2.79 1.86 2.85 3.39H14.3c-.05-1.11-.64-1.87-2.22-1.87-1.5 0-2.4.68-2.4 1.64 0 .84.65 1.39 2.67 1.91s4.18 1.39 4.18 3.91c-.01 1.83-1.38 2.83-3.12 3.16z\",\"money_off\":\"M12.5 6.9c1.78 0 2.44.85 2.5 2.1h2.21c-.07-1.72-1.12-3.3-3.21-3.81V3h-3v2.16c-.53.12-1.03.3-1.48.54l1.47 1.47c.41-.17.91-.27 1.51-.27zM5.33 4.06L4.06 5.33 7.5 8.77c0 2.08 1.56 3.21 3.91 3.91l3.51 3.51c-.34.48-1.05.91-2.42.91-2.06 0-2.87-.92-2.98-2.1h-2.2c.12 2.19 1.76 3.42 3.68 3.83V21h3v-2.15c.96-.18 1.82-.55 2.45-1.12l2.22 2.22 1.27-1.27L5.33 4.06z\",\"multiline_chart\":\"M22 6.92l-1.41-1.41-2.85 3.21C15.68 6.4 12.83 5 9.61 5 6.72 5 4.07 6.16 2 8l1.42 1.42C5.12 7.93 7.27 7 9.61 7c2.74 0 5.09 1.26 6.77 3.24l-2.88 3.24-4-4L2 16.99l1.5 1.5 6-6.01 4 4 4.05-4.55c.75 1.35 1.25 2.9 1.44 4.55H21c-.22-2.3-.95-4.39-2.04-6.14L22 6.92z\",\"pie_chart\":\"M11 2v20c-5.07-.5-9-4.79-9-10s3.93-9.5 9-10zm2.03 0v8.99H22c-.47-4.74-4.24-8.52-8.97-8.99zm0 11.01V22c4.74-.47 8.5-4.25 8.97-8.99h-8.97z\",\"pie_chart_outlined\":\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm1 2.07c3.61.45 6.48 3.33 6.93 6.93H13V4.07zM4 12c0-4.06 3.07-7.44 7-7.93v15.87c-3.93-.5-7-3.88-7-7.94zm9 7.93V13h6.93A8.002 8.002 0 0 1 13 19.93z\",\"publish\":\"M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z\",\"short_text\":\"M4 9h16v2H4zm0 4h10v2H4z\",\"show_chart\":\"M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z\",\"space_bar\":\"M18 9v4H6V9H4v6h16V9z\",\"strikethrough_s\":\"M7.24 8.75c-.26-.48-.39-1.03-.39-1.67 0-.61.13-1.16.4-1.67.26-.5.63-.93 1.11-1.29a5.73 5.73 0 0 1 1.7-.83c.66-.19 1.39-.29 2.18-.29.81 0 1.54.11 2.21.34.66.22 1.23.54 1.69.94.47.4.83.88 1.08 1.43.25.55.38 1.15.38 1.81h-3.01c0-.31-.05-.59-.15-.85-.09-.27-.24-.49-.44-.68-.2-.19-.45-.33-.75-.44-.3-.1-.66-.16-1.06-.16-.39 0-.74.04-1.03.13-.29.09-.53.21-.72.36-.19.16-.34.34-.44.55-.1.21-.15.43-.15.66 0 .48.25.88.74 1.21.38.25.77.48 1.41.7H7.39c-.05-.08-.11-.17-.15-.25zM21 12v-2H3v2h9.62c.18.07.4.14.55.2.37.17.66.34.87.51.21.17.35.36.43.57.07.2.11.43.11.69 0 .23-.05.45-.14.66-.09.2-.23.38-.42.53-.19.15-.42.26-.71.35-.29.08-.63.13-1.01.13-.43 0-.83-.04-1.18-.13s-.66-.23-.91-.42a1.92 1.92 0 0 1-.59-.75c-.14-.31-.25-.76-.25-1.21H6.4c0 .55.08 1.13.24 1.58.16.45.37.85.65 1.21.28.35.6.66.98.92.37.26.78.48 1.22.65.44.17.9.3 1.38.39.48.08.96.13 1.44.13.8 0 1.53-.09 2.18-.28s1.21-.45 1.67-.79c.46-.34.82-.77 1.07-1.27s.38-1.07.38-1.71c0-.6-.1-1.14-.31-1.61-.05-.11-.11-.23-.17-.33H21z\",\"text_fields\":\"M2.5 4v3h5v12h3V7h5V4h-13zm19 5h-9v3h3v7h3v-7h3V9z\",\"title\":\"M5 4v3h5.5v12h3V7H19V4z\",\"vertical_align_bottom\":\"M16 13h-3V3h-2v10H8l4 4 4-4zM4 19v2h16v-2H4z\",\"vertical_align_center\":\"M8 19h3v4h2v-4h3l-4-4-4 4zm8-14h-3V1h-2v4H8l4 4 4-4zM4 11v2h16v-2H4z\",\"vertical_align_top\":\"M8 11h3v10h2V11h3l-4-4-4 4zM4 3v2h16V3H4z\",\"wrap_text\":\"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3 3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z\",\"attachment\":\"M2 12.5C2 9.46 4.46 7 7.5 7H18c2.21 0 4 1.79 4 4s-1.79 4-4 4H9.5a2.5 2.5 0 0 1 0-5H17v2H9.41c-.55 0-.55 1 0 1H18c1.1 0 2-.9 2-2s-.9-2-2-2H7.5C5.57 9 4 10.57 4 12.5S5.57 16 7.5 16H17v2H7.5C4.46 18 2 15.54 2 12.5z\",\"cloud\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z\",\"cloud_circle\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm4.5 14H8c-1.66 0-3-1.34-3-3s1.34-3 3-3l.14.01A3.98 3.98 0 0 1 12 7a4 4 0 0 1 4 4h.5a2.5 2.5 0 0 1 0 5z\",\"cloud_done\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM10 17l-3.5-3.5 1.41-1.41L10 14.17 15.18 9l1.41 1.41L10 17z\",\"cloud_download\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z\",\"cloud_off\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4c-1.48 0-2.85.43-4.01 1.17l1.46 1.46a5.497 5.497 0 0 1 8.05 4.87v.5H19c1.66 0 3 1.34 3 3 0 1.13-.64 2.11-1.56 2.62l1.45 1.45C23.16 18.16 24 16.68 24 15c0-2.64-2.05-4.78-4.65-4.96zM3 5.27l2.75 2.74C2.56 8.15 0 10.77 0 14c0 3.31 2.69 6 6 6h11.73l2 2L21 20.73 4.27 4 3 5.27zM7.73 10l8 8H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h1.73z\",\"cloud_queue\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM19 18H6c-2.21 0-4-1.79-4-4s1.79-4 4-4h.71A5.5 5.5 0 0 1 12 6c3.04 0 5.5 2.46 5.5 5.5v.5H19c1.66 0 3 1.34 3 3s-1.34 3-3 3z\",\"cloud_upload\":\"M19.35 10.04A7.49 7.49 0 0 0 12 4C9.11 4 6.6 5.64 5.35 8.04A5.994 5.994 0 0 0 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z\",\"create_new_folder\":\"M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z\",\"file_download\":\"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\",\"file_upload\":\"M9 16h6v-6h4l-7-7-7 7h4zm-4 2h14v2H5z\",\"folder\":\"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z\",\"folder_open\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\",\"folder_shared\":\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-5 3c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2zm4 8h-8v-1c0-1.33 2.67-2 4-2s4 .67 4 2v1z\",\"add_alert\":\"M10.01 21.01c0 1.1.89 1.99 1.99 1.99s1.99-.89 1.99-1.99h-3.98zm8.87-4.19V11c0-3.25-2.25-5.97-5.29-6.69v-.72C13.59 2.71 12.88 2 12 2s-1.59.71-1.59 1.59v.72A6.873 6.873 0 0 0 5.12 11v5.82L3 18.94V20h18v-1.06l-2.12-2.12zM16 13.01h-3v3h-2v-3H8V11h3V8h2v3h3v2.01z\",\"error\":\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\",\"error_outline\":\"M11 15h2v2h-2zm0-8h2v6h-2zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\",\"warning\":\"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\",\"ac_unit\":\"M22 11h-4.17l3.24-3.24-1.41-1.42L15 11h-2V9l4.66-4.66-1.42-1.41L13 6.17V2h-2v4.17L7.76 2.93 6.34 4.34 11 9v2H9L4.34 6.34 2.93 7.76 6.17 11H2v2h4.17l-3.24 3.24 1.41 1.42L9 13h2v2l-4.66 4.66 1.42 1.41L11 17.83V22h2v-4.17l3.24 3.24 1.42-1.41L13 15v-2h2l4.66 4.66 1.41-1.42L17.83 13H22z\",\"airport_shuttle\":\"M17 5H3a2 2 0 0 0-2 2v9h2c0 1.65 1.34 3 3 3s3-1.35 3-3h5.5c0 1.65 1.34 3 3 3s3-1.35 3-3H23v-5l-6-6zM3 11V7h4v4H3zm3 6.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7-6.5H9V7h4v4zm4.5 6.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zM15 11V7h1l4 4h-5z\",\"all_inclusive\":\"M18.6 6.62c-1.44 0-2.8.56-3.77 1.53L12 10.66 10.48 12h.01L7.8 14.39c-.64.64-1.49.99-2.4.99-1.87 0-3.39-1.51-3.39-3.38S3.53 8.62 5.4 8.62c.91 0 1.76.35 2.44 1.03l1.13 1 1.51-1.34L9.22 8.2A5.37 5.37 0 0 0 5.4 6.62C2.42 6.62 0 9.04 0 12s2.42 5.38 5.4 5.38c1.44 0 2.8-.56 3.77-1.53l2.83-2.5.01.01L13.52 12h-.01l2.69-2.39c.64-.64 1.49-.99 2.4-.99 1.87 0 3.39 1.51 3.39 3.38s-1.52 3.38-3.39 3.38c-.9 0-1.76-.35-2.44-1.03l-1.14-1.01-1.51 1.34 1.27 1.12a5.386 5.386 0 0 0 3.82 1.57c2.98 0 5.4-2.41 5.4-5.38s-2.42-5.37-5.4-5.37z\",\"beach_access\":\"M13.127 14.56l1.43-1.43 6.44 6.443L19.57 21zm4.293-5.73l2.86-2.86c-3.95-3.95-10.35-3.96-14.3-.02 3.93-1.3 8.31-.25 11.44 2.88zM5.95 5.98c-3.94 3.95-3.93 10.35.02 14.3l2.86-2.86C5.7 14.29 4.65 9.91 5.95 5.98zm.02-.02l-.01.01c-.38 3.01 1.17 6.88 4.3 10.02l5.73-5.73c-3.13-3.13-7.01-4.68-10.02-4.3z\",\"business_center\":\"M10 16v-1H3.01L3 19c0 1.11.89 2 2 2h14c1.11 0 2-.89 2-2v-4h-7v1h-4zm10-9h-4.01V5l-2-2h-4l-2 2v2H4c-1.1 0-2 .9-2 2v3c0 1.11.89 2 2 2h6v-2h4v2h6c1.1 0 2-.9 2-2V9c0-1.1-.9-2-2-2zm-6 0h-4V5h4v2z\",\"casino\":\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM7.5 18c-.83 0-1.5-.67-1.5-1.5S6.67 15 7.5 15s1.5.67 1.5 1.5S8.33 18 7.5 18zm0-9C6.67 9 6 8.33 6 7.5S6.67 6 7.5 6 9 6.67 9 7.5 8.33 9 7.5 9zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5 4.5c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm0-9c-.83 0-1.5-.67-1.5-1.5S15.67 6 16.5 6s1.5.67 1.5 1.5S17.33 9 16.5 9z\",\"child_care\":\"M22.94 12.66c.04-.21.06-.43.06-.66s-.02-.45-.06-.66a4.008 4.008 0 0 0-2.81-3.17 9.114 9.114 0 0 0-2.19-2.91C16.36 3.85 14.28 3 12 3s-4.36.85-5.94 2.26c-.92.81-1.67 1.8-2.19 2.91a3.994 3.994 0 0 0-2.81 3.17c-.04.21-.06.43-.06.66s.02.45.06.66a4.008 4.008 0 0 0 2.81 3.17 8.977 8.977 0 0 0 2.17 2.89C7.62 20.14 9.71 21 12 21s4.38-.86 5.97-2.28c.9-.8 1.65-1.79 2.17-2.89a3.998 3.998 0 0 0 2.8-3.17zM19 14c-.1 0-.19-.02-.29-.03-.2.67-.49 1.29-.86 1.86C16.6 17.74 14.45 19 12 19s-4.6-1.26-5.85-3.17c-.37-.57-.66-1.19-.86-1.86-.1.01-.19.03-.29.03-1.1 0-2-.9-2-2s.9-2 2-2c.1 0 .19.02.29.03.2-.67.49-1.29.86-1.86C7.4 6.26 9.55 5 12 5s4.6 1.26 5.85 3.17c.37.57.66 1.19.86 1.86.1-.01.19-.03.29-.03 1.1 0 2 .9 2 2s-.9 2-2 2zM7.5 14c.76 1.77 2.49 3 4.5 3s3.74-1.23 4.5-3h-9z\",\"child_friendly\":\"M13 2v8h8c0-4.42-3.58-8-8-8zm6.32 13.89A7.948 7.948 0 0 0 21 11H6.44l-.95-2H2v2h2.22s1.89 4.07 2.12 4.42A3.49 3.49 0 0 0 4.5 18.5C4.5 20.43 6.07 22 8 22c1.76 0 3.22-1.3 3.46-3h2.08c.24 1.7 1.7 3 3.46 3 1.93 0 3.5-1.57 3.5-3.5 0-1.04-.46-1.97-1.18-2.61zM8 20c-.83 0-1.5-.67-1.5-1.5S7.17 17 8 17s1.5.67 1.5 1.5S8.83 20 8 20zm9 0c-.83 0-1.5-.67-1.5-1.5S16.17 17 17 17s1.5.67 1.5 1.5S17.83 20 17 20z\",\"fitness_center\":\"M20.57 14.86L22 13.43 20.57 12 17 15.57 8.43 7 12 3.43 10.57 2 9.14 3.43 7.71 2 5.57 4.14 4.14 2.71 2.71 4.14l1.43 1.43L2 7.71l1.43 1.43L2 10.57 3.43 12 7 8.43 15.57 17 12 20.57 13.43 22l1.43-1.43L16.29 22l2.14-2.14 1.43 1.43 1.43-1.43-1.43-1.43L22 16.29z\",\"free_breakfast\":\"M20 3H4v10a4 4 0 0 0 4 4h6a4 4 0 0 0 4-4v-3h2a2 2 0 0 0 2-2V5c0-1.11-.89-2-2-2zm0 5h-2V5h2v3zM4 19h16v2H4z\",\"golf_course\":\"M17 5.92L9 2v18H7v-1.73c-1.79.35-3 .99-3 1.73 0 1.1 2.69 2 6 2s6-.9 6-2c0-.99-2.16-1.81-5-1.97V8.98l6-3.06z\",\"hot_tub\":\"M11.15 12c-.31-.22-.59-.46-.82-.72l-1.4-1.55c-.19-.21-.43-.38-.69-.5-.29-.14-.62-.23-.96-.23h-.03C6.01 9 5 10.01 5 11.25V12H2v8c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2v-8H11.15zM7 20H5v-6h2v6zm4 0H9v-6h2v6zm4 0h-2v-6h2v6zm4 0h-2v-6h2v6zm-.35-14.14l-.07-.07c-.57-.62-.82-1.41-.67-2.2L18 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71zm-4 0l-.07-.07c-.57-.62-.82-1.41-.67-2.2L14 3h-1.89l-.06.43c-.2 1.36.27 2.71 1.3 3.72l.07.06c.57.62.82 1.41.67 2.2l-.11.59h1.91l.06-.43c.21-1.36-.27-2.71-1.3-3.71z\",\"kitchen\":\"M18 2.01L6 2a2 2 0 0 0-2 2v16c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V4c0-1.11-.9-1.99-2-1.99zM18 20H6v-9.02h12V20zm0-11H6V4h12v5zM8 5h2v3H8zm0 7h2v5H8z\",\"room_service\":\"M2 17h20v2H2zm11.84-9.21A2.006 2.006 0 0 0 12 5a2.006 2.006 0 0 0-1.84 2.79C6.25 8.6 3.27 11.93 3 16h18c-.27-4.07-3.25-7.4-7.16-8.21z\",\"smoke_free\":\"M2 6l6.99 7H2v3h9.99l7 7 1.26-1.25-17-17zm18.5 7H22v3h-1.5zM18 13h1.5v3H18zm.85-8.12c.62-.61 1-1.45 1-2.38h-1.5c0 1.02-.83 1.85-1.85 1.85v1.5c2.24 0 4 1.83 4 4.07V12H22V9.92c0-2.23-1.28-4.15-3.15-5.04zM14.5 8.7h1.53c1.05 0 1.97.74 1.97 2.05V12h1.5v-1.59c0-1.8-1.6-3.16-3.47-3.16H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75V2a3.35 3.35 0 0 0 0 6.7zm2.5 7.23V13h-2.93z\",\"smoking_rooms\":\"M2 16h15v3H2zm18.5 0H22v3h-1.5zM18 16h1.5v3H18zm.85-8.27c.62-.61 1-1.45 1-2.38C19.85 3.5 18.35 2 16.5 2v1.5c1.02 0 1.85.83 1.85 1.85S17.52 7.2 16.5 7.2v1.5c2.24 0 4 1.83 4 4.07V15H22v-2.24c0-2.22-1.28-4.14-3.15-5.03zm-2.82 2.47H14.5c-1.02 0-1.85-.98-1.85-2s.83-1.75 1.85-1.75v-1.5a3.35 3.35 0 0 0 0 6.7h1.53c1.05 0 1.97.74 1.97 2.05V15h1.5v-1.64c0-1.81-1.6-3.16-3.47-3.16z\",\"spa\":\"M15.49 9.63c-.18-2.79-1.31-5.51-3.43-7.63a12.188 12.188 0 0 0-3.55 7.63c1.28.68 2.46 1.56 3.49 2.63 1.03-1.06 2.21-1.94 3.49-2.63zm-6.5 2.65c-.14-.1-.3-.19-.45-.29.15.11.31.19.45.29zm6.42-.25c-.13.09-.27.16-.4.26.13-.1.27-.17.4-.26zM12 15.45C9.85 12.17 6.18 10 2 10c0 5.32 3.36 9.82 8.03 11.49.63.23 1.29.4 1.97.51.68-.12 1.33-.29 1.97-.51C18.64 19.82 22 15.32 22 10c-4.18 0-7.85 2.17-10 5.45z\"};\n"
  },
  {
    "path": "experimental/wired-mat-icon/src/iconset/index.ts",
    "content": "/**\n * key is the name of the icon\n * value is the path for the svg (d attribute on path svg element)\n */\nexport type SvgIconSet = {\n    [key: string]: string\n};\n\n/**\n * Returns a utility function to browse an iconset\n * @param ICON_SET the iconset to be used\n */\nexport const iconsetLoader = (ICON_SET: SvgIconSet) => (iconName?: string): string => {\n    if (iconName) {\n        return ICON_SET[iconName];\n    }\n    return '';\n }\n"
  },
  {
    "path": "experimental/wired-mat-icon/src/wired-mat-icon.ts",
    "content": "import { customElement } from 'lit-element';\nimport { WiredMatIcon } from './WiredMatIcon';\n\nwindow.customElements.get('wired-mat-icon') || customElement('wired-mat-icon')(WiredMatIcon);\n\nexport { WiredMatIcon };\n"
  },
  {
    "path": "experimental/wired-mat-icon/tsconfig.json",
    "content": "{\n  \"extends\": \"../../tsconfig.json\",\n  \"compilerOptions\": {\n    \"outDir\": \"./lib\"\n  },\n  \"include\": [\n    \"./src\"\n  ]\n}\n"
  },
  {
    "path": "package.json",
    "content": "{\n  \"name\": \"wired-elements\",\n  \"version\": \"3.0.0-rc.7\",\n  \"description\": \"Collection of hand-drawn sketchy web components\",\n  \"type\": \"module\",\n  \"main\": \"lib/wired-elements.js\",\n  \"module\": \"lib/wired-elements.js\",\n  \"types\": \"lib/wired-elements.d.ts\",\n  \"scripts\": {\n    \"build\": \"rm -rf lib && tsc\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"git+https://github.com/wiredjs/wired-elements.git\"\n  },\n  \"keywords\": [\n    \"webcomponent\",\n    \"web component\",\n    \"rough\",\n    \"sketchy\",\n    \"hand-drawn\",\n    \"hand drawn\",\n    \"wireframe\"\n  ],\n  \"author\": \"Preet Shihn <preetshihn@gmail.com> (https://twitter.com/preetster)\",\n  \"license\": \"MIT\",\n  \"bugs\": {\n    \"url\": \"https://github.com/wiredjs/wired-elements/issues\"\n  },\n  \"homepage\": \"https://github.com/wiredjs/wired-elements#readme\",\n  \"devDependencies\": {\n    \"tslint\": \"^6.1.3\",\n    \"typescript\": \"^4.2.4\"\n  },\n  \"dependencies\": {\n    \"lit\": \"^2.0.0-rc.1\",\n    \"roughjs\": \"^4.3.1\"\n  }\n}"
  },
  {
    "path": "src/wired-base.ts",
    "content": "import { LitElement, css, PropertyValues } from 'lit';\nimport { query } from 'lit/decorators.js';\n\nexport type Point = [number, number];\n\nexport const BaseCSS = css`\n:host {\n  opacity: 0;\n}\n:host(.wired-rendered) {\n  opacity: 1;\n}\n#overlay {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  pointer-events: none;\n}\nsvg {\n  display: block;\n}\npath {\n  stroke: currentColor;\n  stroke-width: 0.7;\n  fill: transparent;\n}\n.hidden {\n  display: none !important;\n}\n`;\n\nexport abstract class WiredBase extends LitElement {\n  @query('svg') protected svg?: SVGSVGElement;\n\n  protected lastSize: Point = [0, 0];\n  protected seed = Math.floor(Math.random() * 2 ** 31);\n\n  updated(_changed?: PropertyValues) {\n    this.wiredRender();\n  }\n\n  wiredRender(force = false) {\n    if (this.svg) {\n      const size = this.canvasSize();\n      if ((!force) && (size[0] === this.lastSize[0]) && (size[1] === this.lastSize[1])) {\n        return;\n      }\n      while (this.svg.hasChildNodes()) {\n        this.svg.removeChild(this.svg.lastChild!);\n      }\n      this.svg.setAttribute('width', `${size[0]}`);\n      this.svg.setAttribute('height', `${size[1]}`);\n      this.draw(this.svg, size);\n      this.lastSize = size;\n      this.classList.add('wired-rendered');\n    }\n  }\n\n  fire(name: string, detail?: any) {\n    fireEvent(this, name, detail);\n  }\n\n  protected abstract canvasSize(): Point;\n  protected abstract draw(svg: SVGSVGElement, size: Point): void;\n}\n\nexport function randomSeed(): number {\n  return Math.floor(Math.random() * 2 ** 31);\n}\n\nexport function fireEvent(e: HTMLElement, name: string, detail?: any) {\n  e.dispatchEvent(new CustomEvent(name, {\n    composed: true,\n    bubbles: true,\n    detail\n  }));\n}"
  },
  {
    "path": "src/wired-button.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, line } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-button')\nexport class WiredButton extends WiredBase {\n  @property({ type: Number }) elevation = 1;\n  @property({ type: Boolean, reflect: true }) disabled = false;\n\n  @query('button') private button?: HTMLButtonElement;\n  private ro?: ResizeObserver;\n  private roAttached = false;\n\n  constructor() {\n    super();\n    if ((window as any).ResizeObserver) {\n      this.ro = new (window as any).ResizeObserver(() => {\n        if (this.svg) {\n          this.wiredRender(true);\n        }\n      });\n    }\n  }\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          font-size: 14px;\n        }\n        path {\n          transition: transform 0.05s ease;\n        }\n        button {\n          position: relative;\n          user-select: none;\n          border: none;\n          background: none;\n          font-family: inherit;\n          font-size: inherit;\n          cursor: pointer;\n          letter-spacing: 1.25px;\n          text-transform: uppercase;\n          text-align: center;\n          padding: 10px;\n          color: inherit;\n          outline: none;\n        }\n        button[disabled] {\n          opacity: 0.6 !important;\n          background: rgba(0, 0, 0, 0.07);\n          cursor: default;\n          pointer-events: none;\n        }\n        button:active path {\n          transform: scale(0.97) translate(1.5%, 1.5%);\n        }\n        button:focus path {\n          stroke-width: 1.5;\n        }\n        button::-moz-focus-inner {\n          border: 0;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <button ?disabled=\"${this.disabled}\">\n      <slot @slotchange=\"${this.wiredRender}\"></slot>\n      <div id=\"overlay\">\n        <svg></svg>\n      </div>\n    </button>\n    `;\n  }\n\n  focus() {\n    if (this.button) {\n      this.button.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  protected canvasSize(): Point {\n    if (this.button) {\n      const size = this.button.getBoundingClientRect();\n      const elev = Math.min(Math.max(1, this.elevation), 5);\n      const w = size.width + ((elev - 1) * 2);\n      const h = size.height + ((elev - 1) * 2);\n      return [w, h];\n    }\n    return this.lastSize;\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const s = {\n      width: size[0] - ((elev - 1) * 2),\n      height: size[1] - ((elev - 1) * 2)\n    };\n    rectangle(svg, 0, 0, s.width, s.height, this.seed);\n    for (let i = 1; i < elev; i++) {\n      (line(svg, (i * 2), s.height + (i * 2), s.width + (i * 2), s.height + (i * 2), this.seed)).style.opacity = `${(75 - (i * 10)) / 100}`;\n      (line(svg, s.width + (i * 2), s.height + (i * 2), s.width + (i * 2), i * 2, this.seed)).style.opacity = `${(75 - (i * 10)) / 100}`;\n      (line(svg, (i * 2), s.height + (i * 2), s.width + (i * 2), s.height + (i * 2), this.seed)).style.opacity = `${(75 - (i * 10)) / 100}`;\n      (line(svg, s.width + (i * 2), s.height + (i * 2), s.width + (i * 2), i * 2, this.seed)).style.opacity = `${(75 - (i * 10)) / 100}`;\n    }\n  }\n\n  updated() {\n    super.updated();\n    if (!this.roAttached) {\n      this.attachResizeListener();\n    }\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (this.button && this.ro) {\n      this.ro.observe(this.button);\n      this.roAttached = true;\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.button && this.ro) {\n      this.ro.unobserve(this.button);\n    }\n    this.roAttached = false;\n  }\n}"
  },
  {
    "path": "src/wired-calendar.ts",
    "content": "import { rectangle, line, ellipse } from './wired-lib';\nimport { randomSeed, fireEvent } from './wired-base';\nimport { css, TemplateResult, html, LitElement, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\ninterface AreaSize {\n  width: number;\n  height: number;\n}\n\ninterface CalendarCell {\n  value: string;\n  text: string;\n  selected: boolean;\n  dimmed: boolean;\n  disabled?: boolean;\n}\n\n// GLOBAL CONSTANTS\nconst SECOND = 1000;\nconst MINUTE = SECOND * 60;\nconst HOUR = MINUTE * 60;\nconst DAY = HOUR * 24;\n\nconst TABLE_PADDING = 8; // pixels\n\n@customElement('wired-calendar')\nexport class WiredCalendar extends LitElement {\n  @property({ type: Number }) elevation = 3;\n  @property({ type: String }) selected?: string; // pre-selected date\n  @property({ type: String }) firstdate?: string; // date range lower limit\n  @property({ type: String }) lastdate?: string; // date range higher limit\n  @property({ type: String }) locale?: string; // BCP 47 language tag like `es-MX`\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @property({ type: Boolean, reflect: true }) initials = false; // days of week\n  @property({ type: Object }) value?: { date: Date, text: string };\n  @property({ type: Function }) format: Function = (d: Date) => this.months_short[d.getMonth()] + ' ' + d.getDate() + ', ' + d.getFullYear();\n\n  // Initial calendar headers (will be replaced if different locale than `en` or `en-US`)\n  private weekdays_short: string[] = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n  private months: string[] = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\n\n  // Fix month shorts for internal value comparations (not changed by locale)\n  private months_short: string[] = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\n  private resizeHandler?: EventListenerOrEventListenerObject;\n\n  private firstOfMonthDate: Date = new Date(); // Only month and year relevant\n  private fDate: Date | undefined = undefined; // Date obj for firstdate string\n  private lDate: Date | undefined = undefined; // Date obj for lastdate string\n\n  private calendarRefSize: AreaSize = { width: 0, height: 0 };\n  private tblColWidth: number = 0;\n  private tblRowHeight: number = 0;\n  private tblHeadHeight: number = 0;\n\n  private monthYear: string = '';\n  private weeks: CalendarCell[][] = [[]];\n\n  private seed = randomSeed();\n\n  connectedCallback() {\n    super.connectedCallback();\n    if (!this.resizeHandler) {\n      this.resizeHandler = this.debounce(this.resized.bind(this), 200, false, this);\n      window.addEventListener('resize', this.resizeHandler, { passive: true });\n    }\n\n    // Initial setup (now that `wired-calendar` element is ready in DOM)\n    this.localizeCalendarHeaders();\n    this.setInitialConditions();\n    this.computeCalendar();\n    this.refreshSelection();\n\n    setTimeout(() => this.updated());\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    if (this.resizeHandler) {\n      window.removeEventListener('resize', this.resizeHandler);\n      delete this.resizeHandler;\n    }\n  }\n\n  static get styles() {\n    return css`\n    :host {\n      display: inline-block;\n      font-family: inherit;\n      position: relative;\n      outline: none;\n      opacity: 0;\n    }\n\n    :host(.wired-disabled) {\n      opacity: 0.5 !important;\n      cursor: default;\n      pointer-events: none;\n      background: rgba(0, 0, 0, 0.02);\n    }\n\n    :host(.wired-rendered) {\n      opacity: 1;\n    }\n\n    :host(:focus) path {\n      stroke-width: 1.5;\n    }\n\n    .overlay {\n      position: absolute;\n      top: 0;\n      left: 0;\n      right: 0;\n      bottom: 0;\n      pointer-events: none;\n    }\n\n    svg {\n      display: block;\n    }\n\n    .calendar path {\n      stroke: var(--wired-calendar-color, black);\n      stroke-width: 0.7;\n      fill: transparent;\n    }\n\n    .selected path {\n      stroke: var(--wired-calendar-selected-color, red);\n      stroke-width: 2.5;\n      fill: transparent;\n      transition: transform 0.05s ease;\n    }\n\n    table {\n      position: relative;\n      background: var(--wired-calendar-bg, white);\n      border-collapse: collapse;\n      font-size: inherit;\n      text-transform: capitalize;\n      line-height: unset;\n      cursor: default;\n      overflow: hidden;\n    }\n\n    table:focus {\n      outline: none !important;\n    }\n\n    td,\n    th {\n      border-radius: 4px;\n      text-align: center;\n    }\n\n    td.disabled {\n      color: var(--wired-calendar-disabled-color, lightgray);\n      cursor: not-allowed;\n    }\n\n    td.dimmed {\n      color: var(--wired-calendar-dimmed-color, gray);\n    }\n\n    td.selected {\n      position: absolute;\n    }\n\n    td:not(.disabled):not(.selected):hover {\n      background-color: #d0d0d0;\n      cursor: pointer;\n    }\n\n    .pointer {\n      cursor: pointer;\n    }\n\n    `;\n  }\n\n  render(): TemplateResult {\n    /*\n    * Template to render a one month calendar\n    *\n    * The template consists of one `table` and one overlay `div`.\n    * The `table` consiste of two header rows plus one row for each week of the month.\n    * The underlaying data is an array of weeks. Each week consist of an array of days.\n    * The days are objects with `CalendarCell` interface. Each one is rendered ...\n    * ... according with the boolean conditions `disabled` and `selected`.\n    * Particulary, a `selected` day is rendered with its own extra overlay ...\n    * ... (and svg tag) to draw over it.\n    */\n    return html`\n    <table style=\"width:${this.calendarRefSize.width}px;height:${this.calendarRefSize.height}px;border:${TABLE_PADDING}px solid transparent\"\n            @mousedown=\"${this.onItemClick}\"\n            @touchstart=\"${this.onItemClick}\">\n      ${ /* 1st header row with calendar title and prev/next controls */ ''}\n      <tr class=\"top-header\" style=\"height:${this.tblHeadHeight}px;\">\n        <th id=\"prevCal\" class=\"pointer\" @click=\"${this.onPrevClick}\">&lt;&lt;</th>\n        <th colSpan=\"5\">${this.monthYear}</th>\n        <th id=\"nextCal\" class=\"pointer\" @click=\"${this.onNextClick}\">&gt;&gt;</th>\n      </tr>\n      ${ /* 2nd header row with the seven weekdays names (short or initials) */ ''}\n      <tr class=\"header\" style=\"height:${this.tblHeadHeight}px;\">\n        ${this.weekdays_short\n        .map((d) =>\n          html`<th style=\"width: ${this.tblColWidth};\">${this.initials ? d[0] : d}</th>\n            `\n        )\n      }\n      </tr>\n      ${ /* Loop thru weeks building one row `<tr>` for each week */ ''}\n      ${this.weeks\n        .map((weekDays: CalendarCell[]) =>\n          html`<tr style=\"height:${this.tblRowHeight}px;\">\n              ${ /* Loop thru weeekdays in each week building one data cell `<td>` for each day */ ''}\n              ${weekDays\n              .map((d: CalendarCell) =>\n\n                // This blank space left on purpose for clarity\n\n                html`${d.selected ?\n                  // Render \"selected\" cell\n                  html`\n                            <td class=\"selected\" value=\"${d.value}\">\n                            <div style=\"width: ${this.tblColWidth}px; line-height:${this.tblRowHeight}px;\">${d.text}</div>\n                            <div class=\"overlay\">\n                              <svg id=\"svgTD\" class=\"selected\"></svg>\n                            </div></td>\n                        ` :\n                  // Render \"not selected\" cell\n                  html`\n                            <td .className=\"${d.disabled ? 'disabled' : (d.dimmed ? 'dimmed' : '')}\"\n                                value=\"${d.disabled ? '' : d.value}\">${d.text}</td>\n                        `}\n                    `\n\n                // This blank space left on purpose for clarity\n\n              )\n            }${ /* End `weekDays` map loop */ ''}\n            </tr>`\n        )\n      }${ /* End `weeks` map loop */ ''}\n    </table>\n    <div class=\"overlay\">\n      <svg id=\"svg\" class=\"calendar\"></svg>\n    </div>\n    `;\n  }\n\n  firstUpdated() {\n    this.setAttribute('role', 'dialog');\n  }\n\n  updated(changed?: PropertyValues) {\n    if (changed && changed instanceof Map) {\n      if (changed.has('disabled')) this.refreshDisabledState();\n      if (changed.has('selected')) this.refreshSelection();\n    }\n\n    // Redraw calendar sketchy bounding box\n    const svg = (this.shadowRoot!.getElementById('svg') as any) as SVGSVGElement;\n    while (svg.hasChildNodes()) {\n      svg.removeChild(svg.lastChild!);\n    }\n    const s: AreaSize = this.getCalendarSize();\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const w = s.width + ((elev - 1) * 2);\n    const h = s.height + ((elev - 1) * 2);\n    svg.setAttribute('width', `${w}`);\n    svg.setAttribute('height', `${h}`);\n    rectangle(svg, 2, 2, s.width - 4, s.height - 4, this.seed);\n    for (let i = 1; i < elev; i++) {\n      (line(svg, (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), s.height - 4 + (i * 2), this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, s.width - 4 + (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), i * 2, this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), s.height - 4 + (i * 2), this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, s.width - 4 + (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), i * 2, this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n    }\n\n    // Redraw sketchy red circle `selected` cell\n    const svgTD = (this.shadowRoot!.getElementById('svgTD') as any) as SVGSVGElement;\n    if (svgTD) {\n      while (svgTD.hasChildNodes()) {\n        svgTD.removeChild(svgTD.lastChild!);\n      }\n      const iw = Math.max(this.tblColWidth * 1.0, 20);\n      const ih = Math.max(this.tblRowHeight * 0.9, 18);\n      const c = ellipse(svgTD, this.tblColWidth / 2, this.tblRowHeight / 2, iw, ih, this.seed);\n      svgTD.appendChild(c);\n    }\n\n    this.classList.add('wired-rendered');\n  }\n\n  setSelectedDate(formatedDate: string): void {\n    // TODO: Validate `formatedDate`\n    this.selected = formatedDate;\n    if (this.selected) {\n      const d = new Date(this.selected);\n      this.firstOfMonthDate = new Date(d.getFullYear(), d.getMonth(), 1);\n      this.computeCalendar();\n      this.requestUpdate();\n      this.fireSelected();\n    }\n  }\n\n  /* private methods */\n\n  /*\n  * Change calendar headers according to locale parameter or browser locale\n  * Notes:\n  *   This only change the rendered text in the calendar\n  *   All the internal parsing of string dates do not use locale\n  */\n  private localizeCalendarHeaders() {\n    // Find locale preference when parameter not set\n    if (!this.locale) {\n      // Guess from different browser possibilities\n      const n: any = navigator;\n      if (n.hasOwnProperty('systemLanguage')) this.locale = n['systemLanguage'];\n      else if (n.hasOwnProperty('browserLanguage')) this.locale = n['browserLanguage'];\n      else this.locale = (navigator.languages || ['en'])[0];\n    }\n\n    // Replace localized calendar texts when not `en-US` or not `en`\n    const l = (this.locale || '').toLowerCase();\n    if (l !== 'en-us' && l !== 'en') {\n      const d = new Date();\n\n      // Compute weekday header texts (like \"Sun\", \"Mon\", \"Tue\", ...)\n      const weekDayOffset = d.getUTCDay();\n      const daySunday = new Date(d.getTime() - DAY * weekDayOffset);\n      for (let i = 0; i < 7; i++) {\n        const weekdayDate = new Date(daySunday);\n        weekdayDate.setDate(daySunday.getDate() + i);\n        this.weekdays_short[i] = weekdayDate.toLocaleString(this.locale, { weekday: 'short' });\n      }\n\n      // Compute month header texts (like \"January\", \"February\", ...)\n      d.setDate(1); // Set to first of the month to avoid cases like \"February 30\"\n      for (let m = 0; m < 12; m++) {\n        d.setMonth(m);\n        this.months[m] = d.toLocaleString(this.locale, { month: 'long' });\n        // Beware: month shorts are used in `en-US` internally. Do not change.\n        // this.months_short[m] = d.toLocaleString(this.locale, {month: 'short'});\n      }\n    }\n  }\n\n  private setInitialConditions() {\n    // Initialize calendar element size\n    this.calendarRefSize = this.getCalendarSize();\n\n    // Define an initial reference date either from a paramenter or new today date\n    let d: Date;\n    // TODO: Validate `this.selected`\n    if (this.selected) {\n      // TODO: Validate `this.selected`\n      d = new Date(this.selected);\n      this.value = { date: new Date(this.selected), text: this.selected };\n    } else {\n      d = new Date();\n    }\n    // Define a reference date used to build one month calendar\n    this.firstOfMonthDate = new Date(d.getFullYear(), d.getMonth(), 1);\n\n    // Convert string paramenters (when present) to Date objects\n    // TODO: Validate `this.firstdate`\n    if (this.firstdate) this.fDate = new Date(this.firstdate);\n    // TODO: Validate `this.lastdate`\n    if (this.lastdate) this.lDate = new Date(this.lastdate);\n  }\n\n  private refreshSelection() {\n    // Loop thru all weeks and thru all day in each week\n    this.weeks.forEach((week: CalendarCell[]) =>\n      week.forEach((day: CalendarCell) => {\n        // Set calendar day `selected` according to user's `this.selected`\n        day.selected = this.selected && (day.value === this.selected) || false;\n      })\n    );\n    this.requestUpdate();\n  }\n\n  private resized(): void {\n    // Reinitialize calendar element size\n    this.calendarRefSize = this.getCalendarSize();\n    this.computeCalendar();\n    this.refreshSelection();\n  }\n\n  private getCalendarSize(): AreaSize {\n    const limits = this.getBoundingClientRect();\n    return {\n      width: limits.width > 180 ? limits.width : 320,\n      height: limits.height > 180 ? limits.height : 320\n    };\n  }\n\n  private computeCellsizes(size: AreaSize, rows: number): void {\n    const numerOfHeaderRows = 2;\n    const headerRealStateProportion = 0.25; // 1 equals 100%\n    const borderSpacing = 2; // See browser's table {border-spacing: 2px;}\n    this.tblColWidth = (size.width / 7) - borderSpacing; // A week has 7 days\n    this.tblHeadHeight =\n      (size.height * headerRealStateProportion / numerOfHeaderRows) - borderSpacing;\n    this.tblRowHeight =\n      (size.height * (1 - headerRealStateProportion) / rows) - borderSpacing;\n  }\n\n  private refreshDisabledState() {\n    if (this.disabled) {\n      this.classList.add('wired-disabled');\n    } else {\n      this.classList.remove('wired-disabled');\n    }\n    this.tabIndex = this.disabled ? -1 : +(this.getAttribute('tabindex') || 0);\n  }\n\n  private onItemClick(event: CustomEvent) {\n    event.stopPropagation();\n    const sel = event.target as HTMLElement;\n    // Attribute 'value' empty means: is a disabled date (should not be 'selected')\n    if (sel && sel.hasAttribute('value') && sel.getAttribute('value') !== '') {\n      this.selected = sel.getAttribute('value') || undefined;\n      this.refreshSelection();\n      this.fireSelected();\n    }\n  }\n\n  private fireSelected() {\n    if (this.selected) {\n      this.value = { date: new Date(this.selected), text: this.selected };\n      fireEvent(this, 'selected', { selected: this.selected });\n    }\n  }\n\n  private computeCalendar(): void {\n    // Compute month and year for table header\n    this.monthYear = this.months[this.firstOfMonthDate.getMonth()] + ' ' + this.firstOfMonthDate.getFullYear();\n\n    // Compute all month dates (one per day, 7 days per week, all weeks of the month)\n    const first_day_in_month = new Date(this.firstOfMonthDate.getFullYear(), this.firstOfMonthDate.getMonth(), 1);\n    // Initialize offset (negative because calendar commonly starts few days before the first of the month)\n    let dayInMonthOffset = 0 - first_day_in_month.getDay();\n    const amountOfWeeks = Math.ceil((new Date(this.firstOfMonthDate.getFullYear(), this.firstOfMonthDate.getMonth() + 1, 0).getDate() - dayInMonthOffset) / 7);\n    this.weeks = []; // Clear previous weeks\n    for (let weekIndex = 0; weekIndex < amountOfWeeks; weekIndex++) {\n      this.weeks[weekIndex] = [];\n      for (let dayOfWeekIndex = 0; dayOfWeekIndex < 7; dayOfWeekIndex++) {\n        // Compute day date (using an incrementing offset)\n        const day = new Date(first_day_in_month.getTime() + DAY * dayInMonthOffset);\n\n        const formatedDate: string = this.format(day);\n\n        this.weeks[weekIndex][dayOfWeekIndex] = {\n          value: formatedDate,\n          text: day.getDate().toString(),\n          selected: formatedDate === this.selected,\n          dimmed: day.getMonth() !== first_day_in_month.getMonth(),\n          disabled: this.isDateOutOfRange(day)\n        };\n        // Increment offset (advance one day in calendar)\n        dayInMonthOffset++;\n      }\n    }\n\n    // Compute row and column sizes\n    this.computeCellsizes(this.calendarRefSize, amountOfWeeks);\n  }\n\n  private onPrevClick(): void {\n    // Is there a preious month limit due to `firstdate`?\n    if (this.fDate === undefined ||\n      new Date(this.fDate.getFullYear(), this.fDate.getMonth() - 1, 1).getMonth() !==\n      new Date(this.firstOfMonthDate.getFullYear(), this.firstOfMonthDate.getMonth() - 1, 1).getMonth()) {\n      // No limit found, so update `firstOfMonthDate` to first of the previous month\n      this.firstOfMonthDate = new Date(this.firstOfMonthDate.getFullYear(), this.firstOfMonthDate.getMonth() - 1, 1);\n      this.computeCalendar();\n      this.refreshSelection();\n    }\n  }\n\n  private onNextClick(): void {\n    // Is there a next month limit due to `lastdate`?\n    if (this.lDate === undefined ||\n      new Date(this.lDate.getFullYear(), this.lDate.getMonth() + 1, 1).getMonth() !==\n      new Date(this.firstOfMonthDate.getFullYear(), this.firstOfMonthDate.getMonth() + 1, 1).getMonth()) {\n      // No limit found, so update `firstOfMonthDate` to first of the next month\n      this.firstOfMonthDate = new Date(this.firstOfMonthDate.getFullYear(), this.firstOfMonthDate.getMonth() + 1, 1);\n      this.computeCalendar();\n      this.refreshSelection();\n    }\n  }\n\n  private isDateOutOfRange(day: Date): boolean {\n    if (this.fDate && this.lDate) {\n      return day < this.fDate || this.lDate < day;\n    } else if (this.fDate) {\n      return day < this.fDate;\n    } else if (this.lDate) {\n      return this.lDate < day;\n    }\n    return false;\n  }\n\n  /* Util */\n\n  private debounce(func: Function, wait: number, immediate: boolean, context: HTMLElement): EventListenerOrEventListenerObject {\n    let timeout = 0;\n    return () => {\n      const args = arguments;\n      const later = () => {\n        timeout = 0;\n        if (!immediate) {\n          func.apply(context, args);\n        }\n      };\n      const callNow = immediate && !timeout;\n      clearTimeout(timeout);\n      timeout = window.setTimeout(later, wait);\n      if (callNow) {\n        func.apply(context, args);\n      }\n    };\n  }\n\n}\n"
  },
  {
    "path": "src/wired-card.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, line, hachureFill, } from './wired-lib';\nimport { css, TemplateResult, html, PropertyValues } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('wired-card')\nexport class WiredCard extends WiredBase {\n  @property({ type: Number }) elevation = 1;\n  @property({ type: String }) fill?: string;\n  private resizeObserver?: ResizeObserver;\n  private windowResizeHandler?: EventListenerOrEventListenerObject;\n  private roAttached = false;\n\n  constructor() {\n    super();\n    if ((window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() => {\n        if (this.svg) {\n          this.wiredRender();\n        }\n      });\n    }\n  }\n\n  static get styles() {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          padding: 10px;\n        }\n        path.cardFill {\n          stroke-width: 3.5;\n          stroke: var(--wired-card-background-fill);\n        }\n        path {\n          stroke: var(--wired-card-background-fill, currentColor);\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div id=\"overlay\"><svg></svg></div>\n    <div style=\"position: relative;\">\n      <slot @slotchange=\"${this.wiredRender}\"></slot>\n    </div>\n    `;\n  }\n\n  updated(changed: PropertyValues) {\n    const force = changed.has('fill');\n    this.wiredRender(force);\n    this.attachResizeListener();\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (!this.roAttached) {\n      if (this.resizeObserver) {\n        this.resizeObserver.observe(this);\n      } else if (!this.windowResizeHandler) {\n        this.windowResizeHandler = () => this.wiredRender();\n        window.addEventListener('resize', this.windowResizeHandler, { passive: true });\n      }\n      this.roAttached = true;\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.resizeObserver) {\n      this.resizeObserver.unobserve(this);\n    }\n    if (this.windowResizeHandler) {\n      window.removeEventListener('resize', this.windowResizeHandler);\n    }\n    this.roAttached = false;\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const w = s.width + ((elev - 1) * 2);\n    const h = s.height + ((elev - 1) * 2);\n    return [w, h];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const s = {\n      width: size[0] - ((elev - 1) * 2),\n      height: size[1] - ((elev - 1) * 2)\n    };\n    if (this.fill && this.fill.trim()) {\n      const fillNode = hachureFill([\n        [2, 2],\n        [s.width - 4, 2],\n        [s.width - 2, s.height - 4],\n        [2, s.height - 4]\n      ], this.seed);\n      fillNode.classList.add('cardFill');\n      svg.style.setProperty('--wired-card-background-fill', this.fill.trim());\n      svg.appendChild(fillNode);\n    }\n    rectangle(svg, 2, 2, s.width - 4, s.height - 4, this.seed);\n    for (let i = 1; i < elev; i++) {\n      (line(svg, (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), s.height - 4 + (i * 2), this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, s.width - 4 + (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), i * 2, this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), s.height - 4 + (i * 2), this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, s.width - 4 + (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), i * 2, this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n    }\n  }\n}"
  },
  {
    "path": "src/wired-checkbox.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, line, svgNode } from './wired-lib';\nimport { css, TemplateResult, html } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\n\n@customElement('wired-checkbox')\nexport class WiredCheckbox extends WiredBase {\n  @property({ type: Boolean }) checked = false;\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @state() private focused = false;\n\n  @query('input') private input?: HTMLInputElement;\n\n  private svgCheck?: SVGElement;\n\n  static get styles() {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        font-family: inherit;\n      }\n      :host([disabled]) {\n        opacity: 0.6 !important;\n        cursor: default;\n        pointer-events: none;\n      }\n      :host([disabled]) svg {\n        background: rgba(0, 0, 0, 0.07);\n      }\n\n      #container {\n        display: flex;\n        flex-direction: row;\n        position: relative;\n        user-select: none;\n        min-height: 24px;\n        cursor: pointer;\n      }\n      span {\n        margin-left: 1.5ex;\n        line-height: 24px;\n      }\n      input {\n        opacity: 0;\n      }\n      path {\n        stroke: var(--wired-checkbox-icon-color, currentColor);\n        stroke-width: var(--wired-checkbox-default-swidth, 0.7);\n      }\n      g path {\n        stroke-width: 2.5;\n      }\n      #container.focused {\n        --wired-checkbox-default-swidth: 1.5;\n      }\n      `\n    ];\n  }\n\n  focus() {\n    if (this.input) {\n      this.input.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.refreshCheckVisibility();\n  }\n\n  render(): TemplateResult {\n    return html`\n    <label id=\"container\" class=\"${this.focused ? 'focused' : ''}\">\n      <input type=\"checkbox\" .checked=\"${this.checked}\" ?disabled=\"${this.disabled}\" \n        @change=\"${this.onChange}\"\n        @focus=\"${() => this.focused = true}\"\n        @blur=\"${() => this.focused = false}\">\n      <span><slot></slot></span>\n      <div id=\"overlay\"><svg></svg></div>\n    </label>\n    `;\n  }\n\n  private onChange() {\n    this.checked = this.input!.checked;\n    this.refreshCheckVisibility();\n    this.fire('change', { checked: this.checked });\n  }\n\n  protected canvasSize(): Point {\n    return [24, 24];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 0, 0, size[0], size[1], this.seed);\n    this.svgCheck = svgNode('g');\n    svg.appendChild(this.svgCheck);\n    line(this.svgCheck, size[0] * 0.3, size[1] * 0.4, size[0] * 0.5, size[1] * 0.7, this.seed);\n    line(this.svgCheck, size[0] * 0.5, size[1] * 0.7, size[0] + 5, -5, this.seed);\n  }\n\n  private refreshCheckVisibility() {\n    if (this.svgCheck) {\n      this.svgCheck.style.display = this.checked ? '' : 'none';\n    }\n  }\n}"
  },
  {
    "path": "src/wired-combo.ts",
    "content": "import { css, TemplateResult, html, PropertyValues, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { rectangle, polygon } from './wired-lib';\nimport { randomSeed, fireEvent } from './wired-base';\n\nimport './wired-card';\nimport './wired-item';\n\ninterface WiredComboItem extends HTMLElement {\n  value: string;\n  selected: boolean;\n}\n\ninterface ComboValue {\n  value: string;\n  text: string;\n}\n\n@customElement('wired-combo')\nexport class WiredCombo extends LitElement {\n  @property({ type: Object }) value?: ComboValue;\n  @property({ type: String, reflect: true }) selected?: string;\n  @property({ type: Boolean, reflect: true }) disabled = false;\n\n  @query('svg') private svg?: SVGSVGElement;\n  @query('#card') private card?: HTMLDivElement;\n\n  private seed = randomSeed();\n  private cardShowing = false;\n  private itemNodes: WiredComboItem[] = [];\n  private lastSelectedItem?: WiredComboItem;\n\n  static get styles() {\n    return css`\n      :host {\n        display: inline-block;\n        font-family: inherit;\n        position: relative;\n        outline: none;\n        opacity: 0;\n      }\n    \n      :host(.wired-disabled) {\n        opacity: 0.5 !important;\n        cursor: default;\n        pointer-events: none;\n        background: rgba(0, 0, 0, 0.02);\n      }\n      \n      :host(.wired-rendered) {\n        opacity: 1;\n      }\n  \n      :host(:focus) path {\n        stroke-width: 1.5;\n      }\n    \n      #container {\n        white-space: nowrap;\n        position: relative;\n      }\n    \n      .inline {\n        display: inline-block;\n        vertical-align: top\n      }\n    \n      #textPanel {\n        min-width: 90px;\n        min-height: 18px;\n        padding: 8px;\n      }\n    \n      #dropPanel {\n        width: 34px;\n        cursor: pointer;\n      }\n    \n      .overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        pointer-events: none;\n      }\n    \n      svg {\n        display: block;\n      }\n    \n      path {\n        stroke: currentColor;\n        stroke-width: 0.7;\n        fill: transparent;\n      }\n    \n      #card {\n        display: block;\n        position: absolute;\n        background: var(--wired-combo-popup-bg, white);\n        z-index: 1;\n        box-shadow: 1px 5px 15px -6px rgba(0, 0, 0, 0.8);\n        padding: 8px;\n      }\n  \n      ::slotted(wired-item) {\n        display: block;\n      }\n    `;\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div id=\"container\" @click=\"${this.onCombo}\">\n      <div id=\"textPanel\" class=\"inline\">\n        <span>${this.value && this.value.text}</span>\n      </div>\n      <div id=\"dropPanel\" class=\"inline\"></div>\n      <div class=\"overlay\">\n        <svg></svg>\n      </div>\n    </div>\n    <wired-card id=\"card\" tabindex=\"-1\" role=\"listbox\" @mousedown=\"${this.onItemClick}\" @touchstart=\"${this.onItemClick}\" style=\"display: none;\">\n      <slot id=\"slot\"></slot>\n    </wired-card>\n    `;\n  }\n\n  private refreshDisabledState() {\n    if (this.disabled) {\n      this.classList.add('wired-disabled');\n    } else {\n      this.classList.remove('wired-disabled');\n    }\n    this.tabIndex = this.disabled ? -1 : +(this.getAttribute('tabindex') || 0);\n  }\n\n  firstUpdated() {\n    this.setAttribute('role', 'combobox');\n    this.setAttribute('aria-haspopup', 'listbox');\n    this.refreshSelection();\n\n    this.addEventListener('blur', () => {\n      if (this.cardShowing) {\n        this.setCardShowing(false);\n      }\n    });\n    this.addEventListener('keydown', (event) => {\n      switch (event.keyCode) {\n        case 37:\n        case 38:\n          event.preventDefault();\n          this.selectPrevious();\n          break;\n        case 39:\n        case 40:\n          event.preventDefault();\n          this.selectNext();\n          break;\n        case 27:\n          event.preventDefault();\n          if (this.cardShowing) {\n            this.setCardShowing(false);\n          }\n          break;\n        case 13:\n          event.preventDefault();\n          this.setCardShowing(!this.cardShowing);\n          break;\n        case 32:\n          event.preventDefault();\n          if (!this.cardShowing) {\n            this.setCardShowing(true);\n          }\n          break;\n      }\n    });\n  }\n\n  updated(changed: PropertyValues) {\n    if (changed.has('disabled')) {\n      this.refreshDisabledState();\n    }\n    const svg = this.svg!;\n    while (svg.hasChildNodes()) {\n      svg.removeChild(svg.lastChild!);\n    }\n    const s = this.shadowRoot!.getElementById('container')!.getBoundingClientRect();\n    svg.setAttribute('width', `${s.width}`);\n    svg.setAttribute('height', `${s.height}`);\n    const textBounds = this.shadowRoot!.getElementById('textPanel')!.getBoundingClientRect();\n    this.shadowRoot!.getElementById('dropPanel')!.style.minHeight = textBounds.height + 'px';\n    rectangle(svg, 0, 0, textBounds.width, textBounds.height, this.seed);\n    const dropx = textBounds.width - 4;\n    rectangle(svg, dropx, 0, 34, textBounds.height, this.seed);\n    const dropOffset = Math.max(0, Math.abs((textBounds.height - 24) / 2));\n    const poly = polygon(svg, [\n      [dropx + 8, 5 + dropOffset],\n      [dropx + 26, 5 + dropOffset],\n      [dropx + 17, dropOffset + Math.min(textBounds.height, 18)]\n    ], this.seed);\n    poly.style.fill = 'currentColor';\n    poly.style.pointerEvents = this.disabled ? 'none' : 'auto';\n    poly.style.cursor = 'pointer';\n    this.classList.add('wired-rendered');\n\n    // aria\n    this.setAttribute('aria-expanded', `${this.cardShowing}`);\n    if (!this.itemNodes.length) {\n      this.itemNodes = [];\n      const nodes = (this.shadowRoot!.getElementById('slot') as HTMLSlotElement).assignedNodes();\n      if (nodes && nodes.length) {\n        for (let i = 0; i < nodes.length; i++) {\n          const element = nodes[i] as WiredComboItem;\n          if (element.tagName === 'WIRED-ITEM') {\n            element.setAttribute('role', 'option');\n            this.itemNodes.push(element);\n          }\n        }\n      }\n    }\n  }\n\n  private refreshSelection() {\n    if (this.lastSelectedItem) {\n      this.lastSelectedItem.selected = false;\n      this.lastSelectedItem.removeAttribute('aria-selected');\n    }\n    const slot = this.shadowRoot!.getElementById('slot') as HTMLSlotElement;\n    const nodes = slot.assignedNodes();\n    if (nodes) {\n      let selectedItem: WiredComboItem | null = null;\n      for (let i = 0; i < nodes.length; i++) {\n        const element = nodes[i] as WiredComboItem;\n        if (element.tagName === 'WIRED-ITEM') {\n          const value = element.value || element.getAttribute('value') || '';\n          if (this.selected && (value === this.selected)) {\n            selectedItem = element;\n            break;\n          }\n        }\n      }\n      this.lastSelectedItem = selectedItem || undefined;\n      if (this.lastSelectedItem) {\n        this.lastSelectedItem.selected = true;\n        this.lastSelectedItem.setAttribute('aria-selected', 'true');\n      }\n      if (selectedItem) {\n        this.value = {\n          value: selectedItem.value || '',\n          text: selectedItem.textContent || ''\n        };\n      } else {\n        this.value = undefined;\n      }\n    }\n  }\n\n  private setCardShowing(showing: boolean) {\n    if (this.card) {\n      this.cardShowing = showing;\n      this.card.style.display = showing ? '' : 'none';\n      if (showing) {\n        setTimeout(() => {\n          // TODO: relayout card?\n          const nodes = (this.shadowRoot!.getElementById('slot') as HTMLSlotElement).assignedNodes().filter((d) => {\n            return d.nodeType === Node.ELEMENT_NODE;\n          });\n          nodes.forEach((n) => {\n            const e = n as LitElement;\n            if (e.requestUpdate) {\n              e.requestUpdate();\n            }\n          });\n        }, 10);\n      }\n      this.setAttribute('aria-expanded', `${this.cardShowing}`);\n    }\n  }\n\n  private onItemClick(event: CustomEvent) {\n    event.stopPropagation();\n    this.selected = (event.target as WiredComboItem).value;\n    this.refreshSelection();\n    this.fireSelected();\n    setTimeout(() => {\n      this.setCardShowing(false);\n    });\n  }\n\n  private fireSelected() {\n    fireEvent(this, 'selected', { selected: this.selected });\n  }\n\n  private selectPrevious() {\n    const list = this.itemNodes;\n    if (list.length) {\n      let index = -1;\n      for (let i = 0; i < list.length; i++) {\n        if (list[i] === this.lastSelectedItem) {\n          index = i;\n          break;\n        }\n      }\n      if (index < 0) {\n        index = 0;\n      } else if (index === 0) {\n        index = list.length - 1;\n      } else {\n        index--;\n      }\n      this.selected = list[index].value || '';\n      this.refreshSelection();\n      this.fireSelected();\n    }\n  }\n\n  private selectNext() {\n    const list = this.itemNodes;\n    if (list.length) {\n      let index = -1;\n      for (let i = 0; i < list.length; i++) {\n        if (list[i] === this.lastSelectedItem) {\n          index = i;\n          break;\n        }\n      }\n      if (index < 0) {\n        index = 0;\n      } else if (index >= (list.length - 1)) {\n        index = 0;\n      } else {\n        index++;\n      }\n      this.selected = list[index].value || '';\n      this.refreshSelection();\n      this.fireSelected();\n    }\n  }\n\n  private onCombo(event: Event) {\n    event.stopPropagation();\n    this.setCardShowing(!this.cardShowing);\n  }\n\n}"
  },
  {
    "path": "src/wired-dialog.ts",
    "content": "import { css, TemplateResult, html, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { WiredCard } from './wired-card';\n\n@customElement('wired-dialog')\nexport class WiredDialog extends LitElement {\n  @property({ type: Number }) elevation = 5;\n  @property({ type: Boolean, reflect: true }) open = false;\n\n  @query('wired-card') private card?: WiredCard;\n\n  static get styles() {\n    return css`\n      #container {\n        position: fixed;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        pointer-events: none;\n        z-index: var(--wired-dialog-z-index, 100);\n      }\n      #container::before {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        background: rgba(0,0,0,0.4);\n        opacity: 0;\n        transition: opacity 0.5s ease;\n      }\n      #overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        opacity: 0;\n        transform: translateY(150px);\n        transition: transform 0.5s ease, opacity 0.5s ease;\n      }\n      .layout.vertical {\n        display: -ms-flexbox;\n        display: -webkit-flex;\n        display: flex;\n        -ms-flex-direction: column;\n        -webkit-flex-direction: column;\n        flex-direction: column;\n      }\n      .flex {\n        -ms-flex: 1 1 0.000000001px;\n        -webkit-flex: 1;\n        flex: 1;\n        -webkit-flex-basis: 0.000000001px;\n        flex-basis: 0.000000001px;\n      }\n      wired-card {\n        display: inline-block;\n        background: white;\n        text-align: left;\n      }\n\n      :host([open]) #container {\n        pointer-events: auto;\n      }\n      :host([open]) #container::before {\n        opacity: 1;\n      }\n      :host([open]) #overlay {\n        opacity: 1;\n        transform: none;\n      }\n    `;\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div id=\"container\">\n      <div id=\"overlay\" class=\"vertical layout\">\n        <div class=\"flex\"></div>\n        <div style=\"text-align: center; padding: 5px;\">\n          <wired-card .elevation=\"${this.elevation}\"><slot></slot></wired-card>\n        </div>\n        <div class=\"flex\"></div>\n      </div>\n    </div>\n    `;\n  }\n\n  updated() {\n    if (this.card) {\n      this.card.wiredRender(true);\n    }\n  }\n}"
  },
  {
    "path": "src/wired-divider.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { line } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('wired-divider')\nexport class WiredDivider extends WiredBase {\n  @property({ type: Number }) elevation = 1;\n\n  private resizeObserver?: ResizeObserver;\n  private windowResizeHandler?: EventListenerOrEventListenerObject;\n  private roAttached = false;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: block;\n          position: relative;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`<svg></svg>`;\n  }\n\n  protected canvasSize(): Point {\n    const size = this.getBoundingClientRect();\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    return [size.width, elev * 6];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    for (let i = 0; i < elev; i++) {\n      line(svg, 0, (i * 6) + 3, size[0], (i * 6) + 3, this.seed);\n    }\n  }\n\n  updated() {\n    super.updated();\n    this.attachResizeListener();\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (!this.roAttached) {\n      if (this.resizeObserver) {\n        this.resizeObserver.observe(this);\n      } else if (!this.windowResizeHandler) {\n        this.windowResizeHandler = () => this.wiredRender();\n        window.addEventListener('resize', this.windowResizeHandler, { passive: true });\n      }\n      this.roAttached = true;\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.resizeObserver) {\n      this.resizeObserver.unobserve(this);\n    }\n    if (this.windowResizeHandler) {\n      window.removeEventListener('resize', this.windowResizeHandler);\n    }\n    this.roAttached = false;\n  }\n}"
  },
  {
    "path": "src/wired-elements.ts",
    "content": "export * from './wired-button';\nexport * from './wired-card';\nexport * from './wired-checkbox';\nexport * from './wired-combo';\nexport * from './wired-dialog';\nexport * from './wired-divider';\nexport * from './wired-fab';\nexport * from './wired-icon-button';\nexport * from './wired-image';\nexport * from './wired-input';\nexport * from './wired-item';\nexport * from './wired-link';\nexport * from './wired-listbox';\nexport * from './wired-progress';\nexport * from './wired-radio';\nexport * from './wired-radio-group';\nexport * from './wired-search-input';\nexport * from './wired-slider';\nexport * from './wired-spinner';\nexport * from './wired-tab';\nexport * from './wired-tabs';\nexport * from './wired-textarea';\nexport * from './wired-toggle';\nexport * from './wired-video';\nexport * from './wired-progress-ring';"
  },
  {
    "path": "src/wired-fab.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { hachureEllipseFill } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-fab')\nexport class WiredFab extends WiredBase {\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @query('button') private button?: HTMLButtonElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          font-size: 14px;\n          color: #fff;\n        }\n        button {\n          position: relative;\n          user-select: none;\n          border: none;\n          background: none;\n          font-family: inherit;\n          font-size: inherit;\n          cursor: pointer;\n          letter-spacing: 1.25px;\n          text-transform: uppercase;\n          text-align: center;\n          padding: 16px;\n          color: inherit;\n          outline: none;\n          border-radius: 50%;\n        }\n        button[disabled] {\n          opacity: 0.6 !important;\n          background: rgba(0, 0, 0, 0.07);\n          cursor: default;\n          pointer-events: none;\n        }\n        button::-moz-focus-inner {\n          border: 0;\n        }\n        button ::slotted(*) {\n          position: relative;\n          font-size: var(--wired-icon-size, 24px);\n          transition: transform 0.2s ease, opacity 0.2s ease;\n          opacity: 0.85;\n        }\n        path {\n          stroke: var(--wired-fab-bg-color, #018786);\n          stroke-width: 3;\n          fill: transparent;\n        }\n\n        button:focus ::slotted(*) {\n          opacity: 1;\n        }\n        button:active ::slotted(*) {\n          opacity: 1;\n          transform: scale(1.15);\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <button ?disabled=\"${this.disabled}\">\n      <div id=\"overlay\">\n        <svg></svg>\n      </div>\n      <slot @slotchange=\"${this.wiredRender}\"></slot>\n    </button>\n    `;\n  }\n\n  protected canvasSize(): Point {\n    if (this.button) {\n      const size = this.button.getBoundingClientRect();\n      return [size.width, size.height];\n    }\n    return this.lastSize;\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const min = Math.min(size[0], size[1]);\n    const g = hachureEllipseFill(min / 2, min / 2, min, min, this.seed);\n    svg.appendChild(g);\n  }\n}"
  },
  {
    "path": "src/wired-icon-button.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { ellipse } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-icon-button')\nexport class WiredIconButton extends WiredBase {\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @query('button') private button?: HTMLButtonElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          font-size: 14px;\n        }\n        path {\n          transition: transform 0.05s ease;\n        }\n        button {\n          position: relative;\n          user-select: none;\n          border: none;\n          background: none;\n          font-family: inherit;\n          font-size: inherit;\n          cursor: pointer;\n          letter-spacing: 1.25px;\n          text-transform: uppercase;\n          text-align: center;\n          padding: 10px;\n          color: inherit;\n          outline: none;\n          border-radius: 50%;\n        }\n        button[disabled] {\n          opacity: 0.6 !important;\n          background: rgba(0, 0, 0, 0.07);\n          cursor: default;\n          pointer-events: none;\n        }\n        button:active path {\n          transform: scale(0.97) translate(1.5%, 1.5%);\n        }\n        button:focus path {\n          stroke-width: 1.5;\n        }\n        button::-moz-focus-inner {\n          border: 0;\n        }\n        button ::slotted(*) {\n          position: relative;\n          font-size: var(--wired-icon-size, 24px);\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <button ?disabled=\"${this.disabled}\">\n      <slot @slotchange=\"${this.wiredRender}\"></slot>\n      <div id=\"overlay\">\n        <svg></svg>\n      </div>\n    </button>\n    `;\n  }\n\n  protected canvasSize(): Point {\n    if (this.button) {\n      const size = this.button.getBoundingClientRect();\n      return [size.width, size.height];\n    }\n    return this.lastSize;\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const min = Math.min(size[0], size[1]);\n    svg.setAttribute('width', `${min}`);\n    svg.setAttribute('height', `${min}`);\n    ellipse(svg, min / 2, min / 2, min, min, this.seed);\n  }\n}"
  },
  {
    "path": "src/wired-image.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, line } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nconst EMPTY_IMAGE = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';\n\n@customElement('wired-image')\nexport class WiredImage extends WiredBase {\n  @property({ type: Number }) elevation = 1;\n  @property({ type: String }) src: string = EMPTY_IMAGE;\n  private resizeObserver?: ResizeObserver;\n  private windowResizeHandler?: EventListenerOrEventListenerObject;\n  private roAttached = false;\n\n  constructor() {\n    super();\n    if ((window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() => {\n        if (this.svg) {\n          this.wiredRender();\n        }\n      });\n    }\n  }\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          line-height: 1;\n          padding: 3px;\n        }\n        img {\n          display: block;\n          box-sizing: border-box;\n          max-width: 100%;\n          max-height: 100%;\n        }\n        path {\n          stroke-width: 1;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <img src=\"${this.src}\">\n    <div id=\"overlay\"><svg></svg></div>\n    `;\n  }\n\n  updated() {\n    super.updated();\n    this.attachResizeListener();\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (!this.roAttached) {\n      if (this.resizeObserver && this.resizeObserver.observe) {\n        this.resizeObserver.observe(this);\n      } else if (!this.windowResizeHandler) {\n        this.windowResizeHandler = () => this.wiredRender();\n        window.addEventListener('resize', this.windowResizeHandler, { passive: true });\n      }\n      this.roAttached = true;\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.resizeObserver && this.resizeObserver.unobserve) {\n      this.resizeObserver.unobserve(this);\n    }\n    if (this.windowResizeHandler) {\n      window.removeEventListener('resize', this.windowResizeHandler);\n    }\n    this.roAttached = false;\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const w = s.width + ((elev - 1) * 2);\n    const h = s.height + ((elev - 1) * 2);\n    return [w, h];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const s = {\n      width: size[0] - ((elev - 1) * 2),\n      height: size[1] - ((elev - 1) * 2)\n    };\n    rectangle(svg, 2, 2, s.width - 4, s.height - 4, this.seed);\n    for (let i = 1; i < elev; i++) {\n      (line(svg, (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), s.height - 4 + (i * 2), this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, s.width - 4 + (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), i * 2, this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), s.height - 4 + (i * 2), this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n      (line(svg, s.width - 4 + (i * 2), s.height - 4 + (i * 2), s.width - 4 + (i * 2), i * 2, this.seed)).style.opacity = `${(85 - (i * 10)) / 100}`;\n    }\n  }\n}"
  },
  {
    "path": "src/wired-input.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-input')\nexport class WiredInput extends WiredBase {\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @property({ type: String }) placeholder = '';\n  @property({ type: String }) name?: string;\n  @property({ type: String }) min?: string;\n  @property({ type: String }) max?: string;\n  @property({ type: String }) step?: string;\n  @property({ type: String }) type = 'text';\n  @property({ type: String }) autocomplete = '';\n  @property({ type: String }) autocapitalize = '';\n  @property({ type: String }) autocorrect = '';\n  @property({ type: Boolean }) required = false;\n  @property({ type: Boolean }) autofocus = false;\n  @property({ type: Boolean }) readonly = false;\n  @property({ type: Number }) minlength?: number;\n  @property({ type: Number }) maxlength?: number;\n  @property({ type: Number }) size?: number;\n\n  @query('input') private textInput?: HTMLInputElement;\n  private pendingValue?: string;\n  private resizeObserver?: ResizeObserver;\n  private roAttached = false;\n\n  constructor() {\n    super();\n    if ((window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() => {\n        if (this.svg) {\n          this.wiredRender(true);\n        }\n      });\n    }\n  }\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          padding: 5px;\n          font-family: sans-serif;\n          width: 150px;\n          outline: none;\n        }\n        :host([disabled]) {\n          opacity: 0.6 !important;\n          cursor: default;\n          pointer-events: none;\n        }\n        :host([disabled]) svg {\n          background: rgba(0, 0, 0, 0.07);\n        }\n        input {\n          display: block;\n          width: 100%;\n          box-sizing: border-box;\n          outline: none;\n          border: none;\n          font-family: inherit;\n          font-size: inherit;\n          font-weight: inherit;\n          color: inherit;\n          padding: 6px;\n        }\n        input:focus + div path {\n          stroke-width: 1.5;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <input name=\"${this.name}\" type=\"${this.type}\" placeholder=\"${this.placeholder}\" ?disabled=\"${this.disabled}\"\n      ?required=\"${this.required}\" autocomplete=\"${this.autocomplete}\" ?autofocus=\"${this.autofocus}\" minlength=\"${this.minlength}\"\n      maxlength=\"${this.maxlength}\" min=\"${this.min}\" max=\"${this.max}\" step=\"${this.step}\" ?readonly=\"${this.readonly}\"\n      size=\"${this.size}\" autocapitalize=\"${this.autocapitalize}\" autocorrect=\"${this.autocorrect}\" \n      @change=\"${this.refire}\" @input=\"${this.refire}\">\n    <div id=\"overlay\">\n      <svg></svg>\n    </div>\n    `;\n  }\n\n  get input(): HTMLInputElement | undefined {\n    return this.textInput;\n  }\n\n  get value(): string {\n    const input = this.input;\n    return (input && input.value) || '';\n  }\n\n  set value(v: string) {\n    if (this.shadowRoot) {\n      const input = this.input;\n      if (input) {\n        input.value = v;\n        return;\n      }\n    }\n    this.pendingValue = v;\n  }\n\n  firstUpdated() {\n    this.value = this.pendingValue || this.value || this.getAttribute('value') || '';\n    delete this.pendingValue;\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 2, 2, size[0] - 2, size[1] - 2, this.seed);\n  }\n\n  private refire(event: Event) {\n    event.stopPropagation();\n    this.fire(event.type, { sourceEvent: event });\n  }\n\n  focus() {\n    if (this.textInput) {\n      this.textInput.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  updated() {\n    super.updated();\n    this.attachResizeListener();\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (!this.roAttached) {\n      if (this.textInput && this.resizeObserver) {\n        this.resizeObserver.observe(this.textInput);\n      }\n      this.roAttached = true;\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.textInput && this.resizeObserver) {\n      this.resizeObserver.unobserve(this.textInput);\n    }\n    this.roAttached = false;\n  }\n}"
  },
  {
    "path": "src/wired-item.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { hachureFill } from './wired-lib';\n\n@customElement('wired-item')\nexport class WiredItem extends WiredBase {\n  @property() value = '';\n  @property() name = '';\n  @property({ type: Boolean }) selected = false;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        font-size: 14px;\n        text-align: left;\n      }\n      button {\n        cursor: pointer;\n        outline: none;\n        overflow: hidden;\n        color: inherit;\n        user-select: none;\n        position: relative;\n        font-family: inherit;\n        text-align: inherit;\n        font-size: inherit;\n        letter-spacing: 1.25px;\n        padding: 1px 10px;\n        min-height: 36px;\n        text-transform: inherit;\n        background: none;\n        border: none;\n        transition: background-color 0.3s ease, color 0.3s ease;\n        width: 100%;\n        box-sizing: border-box;\n        white-space: nowrap;\n      }\n      button.selected {\n        color: var(--wired-item-selected-color, #fff);\n      }\n      button::before {\n        content: '';\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        background: currentColor;\n        opacity: 0;\n      }\n      button span {\n        display: inline-block;\n        transition: transform 0.2s ease;\n        position: relative;\n      }\n      button:active span {\n        transform: scale(1.02);\n      }\n      #overlay {\n        display: none;\n      }\n      button.selected #overlay {\n        display: block;\n      }\n      svg path {\n        stroke: var(--wired-item-selected-bg, #000);\n        stroke-width: 2.75;\n        fill: transparent;\n        transition: transform 0.05s ease;\n      }\n      @media (hover: hover) {\n        button:hover::before {\n          opacity: 0.05;\n        }\n      }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <button class=\"${this.selected ? 'selected' : ''}\">\n      <div id=\"overlay\"><svg></svg></div>\n      <span><slot></slot></span>\n    </button>`;\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const g = hachureFill([\n      [0, 0],\n      [size[0], 0],\n      [size[0], size[1]],\n      [0, size[1]]\n    ], this.seed);\n    svg.appendChild(g);\n  }\n}"
  },
  {
    "path": "src/wired-lib.ts",
    "content": "import { Point } from 'roughjs/bin/geometry.js';\nimport { ResolvedOptions, OpSet, Op } from 'roughjs/bin/core';\nimport {\n  line as roughLine,\n  rectangle as roughRectangle,\n  ellipse as roughEllipse,\n  polygon as roughPolygon,\n  arc as roughArc,\n  doubleLineFillOps,\n  generateEllipseParams\n} from 'roughjs/bin/renderer';\nimport { ZigZagFiller } from 'roughjs/bin/fillers/zigzag-filler';\nimport { RenderHelper } from 'roughjs/bin/fillers/filler-interface';\n\ntype Params = { [name: string]: string };\n\nconst fillHelper: RenderHelper = {\n  randOffset(x: number, _o: ResolvedOptions): number {\n    return x;\n  },\n  randOffsetWithRange(min: number, max: number, _o: ResolvedOptions): number {\n    return (min + max) / 2;\n  },\n  ellipse(x: number, y: number, width: number, height: number, o: ResolvedOptions): OpSet {\n    return roughEllipse(x, y, width, height, o);\n  },\n  doubleLineOps(x1: number, y1: number, x2: number, y2: number, o: ResolvedOptions): Op[] {\n    return doubleLineFillOps(x1, y1, x2, y2, o);\n  }\n};\n\nfunction options(seed: number): ResolvedOptions {\n  return {\n    maxRandomnessOffset: 2,\n    roughness: 1,\n    bowing: 0.85,\n    stroke: '#000',\n    strokeWidth: 1.5,\n    curveTightness: 0,\n    curveFitting: 0.95,\n    curveStepCount: 9,\n    fillStyle: 'hachure',\n    fillWeight: 3.5,\n    hachureAngle: -41,\n    hachureGap: 5,\n    dashOffset: -1,\n    dashGap: -1,\n    zigzagOffset: 0,\n    combineNestedSvgPaths: false,\n    disableMultiStroke: false,\n    disableMultiStrokeFill: false,\n    seed\n  };\n}\n\nfunction opsToPath(drawing: OpSet, joinPaths: boolean): string {\n  let path = '';\n  for (const item of drawing.ops) {\n    const data = item.data;\n    switch (item.op) {\n      case 'move':\n        if (joinPaths && path) {\n          break;\n        }\n        path += `M${data[0]} ${data[1]} `;\n        break;\n      case 'bcurveTo':\n        path += `C${data[0]} ${data[1]}, ${data[2]} ${data[3]}, ${data[4]} ${data[5]} `;\n        break;\n      case 'lineTo':\n        path += `L${data[0]} ${data[1]} `;\n        break;\n    }\n  }\n  return path.trim();\n}\n\nexport function svgNode(tagName: string, attributes?: Params): SVGElement {\n  const n = document.createElementNS('http://www.w3.org/2000/svg', tagName);\n  if (attributes) {\n    for (const p in attributes) {\n      n.setAttributeNS(null, p, attributes[p]);\n    }\n  }\n  return n;\n}\n\nfunction createPathNode(ops: OpSet, parent: SVGElement | null, joinPaths = false): SVGPathElement {\n  const path = svgNode('path', { d: opsToPath(ops, joinPaths) });\n  if (parent) {\n    parent.appendChild(path);\n  }\n  return path as SVGPathElement;\n}\n\nexport function rectangle(parent: SVGElement, x: number, y: number, width: number, height: number, seed: number): SVGElement {\n  return createPathNode(roughRectangle(x + 2, y + 2, width - 4, height - 4, options(seed)), parent);\n}\n\nexport function line(parent: SVGElement, x1: number, y1: number, x2: number, y2: number, seed: number): SVGElement {\n  return createPathNode(roughLine(x1, y1, x2, y2, options(seed)), parent);\n}\n\nexport function polygon(parent: SVGElement, vertices: Point[], seed: number): SVGElement {\n  return createPathNode(roughPolygon(vertices, options(seed)), parent, true);\n}\n\nexport function ellipse(parent: SVGElement, x: number, y: number, width: number, height: number, seed: number): SVGElement {\n  width = Math.max(width > 10 ? width - 4 : width - 1, 1);\n  height = Math.max(height > 10 ? height - 4 : height - 1, 1);\n  return createPathNode(roughEllipse(x, y, width, height, options(seed)), parent);\n}\n\nexport function arc(parent: SVGElement, x: number, y: number, width: number, height: number, start: number, stop: number, seed: number): SVGElement {\n  width = Math.max(width > 10 ? width - 4 : width - 1, 1);\n  height = Math.max(height > 10 ? height - 4 : height - 1, 1);\n  return createPathNode(roughArc(x, y, width, height, start, stop, false, false, options(seed)), parent);\n}\n\nexport function hachureFill(points: Point[], seed: number): SVGElement {\n  const hf = new ZigZagFiller(fillHelper);\n  const ops = hf.fillPolygon(points, options(seed));\n  return createPathNode(ops, null);\n}\n\nexport function hachureEllipseFill(cx: number, cy: number, width: number, height: number, seed: number): SVGElement {\n  const o = options(seed);\n  const ep = generateEllipseParams(width, height, o);\n  const vertices: Point[] = [];\n  let angle = 0;\n  while (angle <= (Math.PI * 2)) {\n    vertices.push([\n      cx + ep.rx * Math.cos(angle),\n      cy + ep.ry * Math.sin(angle)\n    ]);\n    angle += ep.increment;\n  }\n  return hachureFill(vertices, seed);\n}"
  },
  {
    "path": "src/wired-link.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { line } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-link')\nexport class WiredLink extends WiredBase {\n  @property({ type: Number }) elevation = 1;\n  @property({ type: String }) href?: string;\n  @property({ type: String }) target?: string;\n  @query('a') private anchor?: HTMLAnchorElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n        }\n        a, a:hover, a:visited {\n          color: inherit;\n          outline: none;\n          display: inline-block;\n          white-space: nowrap;\n          text-decoration: none;\n          border: none;\n        }\n        path {\n          stroke: var(--wired-link-decoration-color, blue);\n          stroke-opacity: 0.45;\n        }\n        a:focus path {\n          stroke-opacity: 1;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <a href=\"${this.href}\" target=\"${this.target || ''}\">\n      <slot></slot>\n      <div id=\"overlay\"><svg></svg></div>\n    </a>\n    `;\n  }\n\n  focus() {\n    if (this.anchor) {\n      this.anchor.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  protected canvasSize(): Point {\n    if (this.anchor) {\n      const size = this.anchor.getBoundingClientRect();\n      const elev = Math.min(Math.max(1, this.elevation), 5);\n      const w = size.width;\n      const h = size.height + ((elev - 1) * 2);\n      return [w, h];\n    }\n    return this.lastSize;\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const elev = Math.min(Math.max(1, this.elevation), 5);\n    const s = {\n      width: size[0],\n      height: size[1] - ((elev - 1) * 2)\n    };\n    for (let i = 0; i < elev; i++) {\n      line(svg, 0, s.height + (i * 2) - 2, s.width, s.height + (i * 2) - 2, this.seed);\n      line(svg, 0, s.height + (i * 2) - 2, s.width, s.height + (i * 2) - 2, this.seed);\n    }\n  }\n}"
  },
  {
    "path": "src/wired-listbox.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\ninterface WiredComboItem extends HTMLElement {\n  value: string;\n  selected: boolean;\n}\n\ninterface ListboxValue {\n  value: string;\n  text: string;\n}\n\n@customElement('wired-listbox')\nexport class WiredListbox extends WiredBase {\n  @property({ type: Object }) value?: ListboxValue;\n  @property({ type: String }) selected?: string;\n  @property({ type: Boolean }) horizontal = false;\n\n  private itemNodes: WiredComboItem[] = [];\n  private lastSelectedItem?: WiredComboItem;\n  private itemClickHandler = this.onItemClick.bind(this);\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        font-family: inherit;\n        position: relative;\n        padding: 5px;\n        outline: none;\n      }\n      :host(:focus) path {\n        stroke-width: 1.5;\n      }\n      ::slotted(wired-item) {\n        display: block;\n      }\n      :host(.wired-horizontal) ::slotted(wired-item) {\n        display: inline-block;\n      }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <slot id=\"slot\" @slotchange=\"${() => this.requestUpdate()}\"></slot>\n    <div id=\"overlay\">\n      <svg id=\"svg\"></svg>\n    </div>\n    `;\n  }\n\n  firstUpdated() {\n    this.setAttribute('role', 'listbox');\n    this.tabIndex = +((this.getAttribute('tabindex') || 0));\n    this.refreshSelection();\n    this.addEventListener('click', this.itemClickHandler);\n    this.addEventListener('keydown', (event) => {\n      switch (event.keyCode) {\n        case 37:\n        case 38:\n          event.preventDefault();\n          this.selectPrevious();\n          break;\n        case 39:\n        case 40:\n          event.preventDefault();\n          this.selectNext();\n          break;\n      }\n    });\n  }\n\n  updated() {\n    super.updated();\n    if (this.horizontal) {\n      this.classList.add('wired-horizontal');\n    } else {\n      this.classList.remove('wired-horizontal');\n    }\n    if (!this.itemNodes.length) {\n      this.itemNodes = [];\n      const nodes = (this.shadowRoot!.getElementById('slot') as HTMLSlotElement).assignedNodes();\n      if (nodes && nodes.length) {\n        for (let i = 0; i < nodes.length; i++) {\n          const element = nodes[i] as WiredComboItem;\n          if (element.tagName === 'WIRED-ITEM') {\n            element.setAttribute('role', 'option');\n            this.itemNodes.push(element);\n          }\n        }\n      }\n    }\n  }\n\n  private onItemClick(event: Event) {\n    event.stopPropagation();\n    this.selected = (event.target as WiredComboItem).value;\n    this.refreshSelection();\n    this.fireSelected();\n  }\n\n  private refreshSelection() {\n    if (this.lastSelectedItem) {\n      this.lastSelectedItem.selected = false;\n      this.lastSelectedItem.removeAttribute('aria-selected');\n    }\n    const slot = this.shadowRoot!.getElementById('slot') as HTMLSlotElement;\n    const nodes = slot.assignedNodes();\n    if (nodes) {\n      let selectedItem = null;\n      for (let i = 0; i < nodes.length; i++) {\n        const element = nodes[i] as WiredComboItem;\n        if (element.tagName === 'WIRED-ITEM') {\n          const value = element.value || '';\n          if (this.selected && (value === this.selected)) {\n            selectedItem = element;\n            break;\n          }\n        }\n      }\n      this.lastSelectedItem = selectedItem || undefined;\n      if (this.lastSelectedItem) {\n        this.lastSelectedItem.selected = true;\n        this.lastSelectedItem.setAttribute('aria-selected', 'true');\n      }\n      if (selectedItem) {\n        this.value = {\n          value: selectedItem.value || '',\n          text: selectedItem.textContent || ''\n        };\n      } else {\n        this.value = undefined;\n      }\n    }\n  }\n\n  private fireSelected() {\n    this.fire('selected', { selected: this.selected });\n  }\n\n  private selectPrevious() {\n    const list = this.itemNodes;\n    if (list.length) {\n      let index = -1;\n      for (let i = 0; i < list.length; i++) {\n        if (list[i] === this.lastSelectedItem) {\n          index = i;\n          break;\n        }\n      }\n      if (index < 0) {\n        index = 0;\n      } else if (index === 0) {\n        index = list.length - 1;\n      } else {\n        index--;\n      }\n      this.selected = list[index].value || '';\n      this.refreshSelection();\n      this.fireSelected();\n    }\n  }\n\n  private selectNext() {\n    const list = this.itemNodes;\n    if (list.length) {\n      let index = -1;\n      for (let i = 0; i < list.length; i++) {\n        if (list[i] === this.lastSelectedItem) {\n          index = i;\n          break;\n        }\n      }\n      if (index < 0) {\n        index = 0;\n      } else if (index >= (list.length - 1)) {\n        index = 0;\n      } else {\n        index++;\n      }\n      this.selected = list[index].value || '';\n      this.refreshSelection();\n      this.fireSelected();\n    }\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 0, 0, size[0], size[1], this.seed);\n  }\n}"
  },
  {
    "path": "src/wired-progress-ring.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { ellipse, arc } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('wired-progress-ring')\nexport class WiredProgressRing extends WiredBase {\n  @property({ type: Number }) value = 0;\n  @property({ type: Number }) min = 0;\n  @property({ type: Number }) max = 100;\n  @property({ type: Boolean }) hideLabel = false;\n  @property({ type: Boolean }) showLabelAsPercent = false;\n  @property({ type: Number }) precision = 0;\n\n  private progArc?: SVGElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        position: relative;\n        width: 200px;\n        font-family: sans-serif;\n      }\n      #overlay {\n        position: relative;\n      }\n      path.progressArc {\n        stroke-width: 10px;\n        stroke: var(--wired-progress-color, blue);\n      }\n      #labelPanel {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        display: grid;\n        align-content: center;\n        align-items: center;\n        justify-content: center;\n        justify-items: center;\n      }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    let label = `${this.value}`;\n    if (this.showLabelAsPercent) {\n      const pct = 100 * Math.min(1, Math.max(0, (this.value - this.min) / (this.max - this.min)));\n      if (this.precision) {\n        label = `${pct.toPrecision(this.precision)}%`;\n      } else {\n        label = `${Math.round(pct)}%`;\n      }\n    }\n    return html`\n    <div id=\"overlay\" class=\"overlay\">\n      <svg></svg>\n    </div>\n    \n    ${this.hideLabel ? '' : html`\n    <div id=\"labelPanel\">\n      <div>${label}</div>\n    </div>\n    `}\n\n    `;\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.refreshProgressFill();\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.width];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const [x, y, w, h] = [size[0] / 2, size[1] / 2, size[0] - 10, size[1] - 10];\n    ellipse(svg, x, y, w, h, this.seed);\n\n  }\n\n  private refreshProgressFill() {\n    if (this.progArc) {\n      if (this.progArc.parentElement) {\n        this.progArc.parentElement.removeChild(this.progArc);\n      }\n      this.progArc = undefined;\n    }\n    if (this.svg) {\n      const size = this.canvasSize();\n      const [x, y, w, h] = [size[0] / 2, size[1] / 2, size[0] - 10, size[1] - 10];\n      const pct = Math.min(1, Math.max(0, (this.value - this.min) / (this.max - this.min)));\n      if (pct) {\n        this.progArc = arc(this.svg, x, y, w, h, -Math.PI / 2, 2 * Math.PI * pct - Math.PI / 2, this.seed);\n        this.progArc.classList.add('progressArc');\n      }\n    }\n  }\n}"
  },
  {
    "path": "src/wired-progress.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, hachureFill } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('wired-progress')\nexport class WiredProgress extends WiredBase {\n  @property({ type: Number }) value = 0;\n  @property({ type: Number }) min = 0;\n  @property({ type: Number }) max = 100;\n  @property({ type: Boolean }) percentage = false;\n\n  private progBox?: SVGElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        position: relative;\n        width: 400px;\n        height: 42px;\n        font-family: sans-serif;\n      }\n      .labelContainer {\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      }\n      .progressLabel {\n        color: var(--wired-progress-label-color, #000);\n        font-size: var(--wired-progress-font-size, 14px);\n        background: var(--wired-progress-label-background, rgba(255,255,255,0.9));\n        padding: 2px 6px;\n        border-radius: 4px;\n        letter-spacing: 1.25px;\n      }\n      path.progbox {\n        stroke: var(--wired-progress-color, rgba(0, 0, 200, 0.8));\n        stroke-width: 2.75;\n        fill: none;\n      }\n      .overlay {\n        position: absolute;\n        top: 0;\n        left: 0;\n        right: 0;\n        bottom: 0;\n        pointer-events: none;\n      }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div id=\"overlay\" class=\"overlay\">\n      <svg></svg>\n    </div>\n    <div class=\"overlay labelContainer\">\n      <div class=\"progressLabel\">${this.getProgressLabel()}</div>\n    </div>\n    `;\n  }\n\n  private getProgressLabel(): string {\n    if (this.percentage) {\n      if (this.max === this.min) {\n        return '%';\n      } else {\n        const pct = Math.floor(((this.value - this.min) / (this.max - this.min)) * 100);\n        return (pct + '%');\n      }\n    } else {\n      return ('' + this.value);\n    }\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.refreshProgressFill();\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 2, 2, size[0] - 2, size[1] - 2, this.seed);\n  }\n\n  private refreshProgressFill() {\n    if (this.progBox) {\n      if (this.progBox.parentElement) {\n        this.progBox.parentElement.removeChild(this.progBox);\n      }\n      this.progBox = undefined;\n    }\n    if (this.svg) {\n      let pct = 0;\n      const s = this.getBoundingClientRect();\n      if (this.max > this.min) {\n        pct = (this.value - this.min) / (this.max - this.min);\n        const progWidth = s.width * Math.max(0, Math.min(pct, 100));\n        this.progBox = hachureFill([\n          [0, 0],\n          [progWidth, 0],\n          [progWidth, s.height],\n          [0, s.height]\n        ], this.seed);\n        this.svg!.appendChild(this.progBox);\n        this.progBox.classList.add('progbox');\n      }\n    }\n  }\n}"
  },
  {
    "path": "src/wired-radio-group.ts",
    "content": "import { fireEvent } from './wired-base';\nimport { css, TemplateResult, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\ninterface RadioItem extends HTMLElement {\n  name: string;\n  checked: boolean;\n}\n\n@customElement('wired-radio-group')\nexport class WiredRadioGroup extends LitElement {\n  @property({ type: String }) selected?: string;\n  private radioNodes: RadioItem[] = [];\n  private checkListener = this.handleChecked.bind(this);\n\n  static get styles() {\n    return css`\n      :host {\n        display: inline-block;\n        font-family: inherit;\n        outline: none;\n      }\n      :host ::slotted(*) {\n        padding: var(--wired-radio-group-item-padding, 5px);\n      }\n    `;\n  }\n\n  render(): TemplateResult {\n    return html`<slot id=\"slot\" @slotchange=\"${this.slotChange}\"></slot>`;\n  }\n\n  connectedCallback() {\n    super.connectedCallback();\n    this.addEventListener('change', this.checkListener);\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    this.removeEventListener('change', this.checkListener);\n  }\n\n  private handleChecked(event: Event) {\n    const checked = (event as CustomEvent).detail.checked;\n    const item = event.target as any as RadioItem;\n    const name = item.name || '';\n    if (!checked) {\n      item.checked = true;\n    } else {\n      this.selected = (checked && name) || '';\n      this.fireSelected();\n    }\n  }\n\n  slotChange() {\n    this.requestUpdate();\n  }\n\n  firstUpdated() {\n    this.setAttribute('role', 'radiogroup');\n    this.tabIndex = +(this.getAttribute('tabindex') || 0);\n    this.addEventListener('keydown', (event) => {\n      switch (event.keyCode) {\n        case 37:\n        case 38:\n          event.preventDefault();\n          this.selectPrevious();\n          break;\n        case 39:\n        case 40:\n          event.preventDefault();\n          this.selectNext();\n          break;\n      }\n    });\n  }\n\n  updated() {\n    const slot = this.shadowRoot!.getElementById('slot') as HTMLSlotElement;\n    const nodes = slot.assignedNodes();\n    this.radioNodes = [];\n    if (nodes && nodes.length) {\n      for (let i = 0; i < nodes.length; i++) {\n        const element = nodes[i] as RadioItem;\n        if (element.tagName === 'WIRED-RADIO') {\n          this.radioNodes.push(element);\n          const name = element.name || '';\n          if (this.selected && (name === this.selected)) {\n            element.checked = true;\n          } else {\n            element.checked = false;\n          }\n        }\n      }\n    }\n  }\n\n  private selectPrevious() {\n    const list = this.radioNodes;\n    if (list.length) {\n      let radio = null;\n      let index = -1;\n      if (this.selected) {\n        for (let i = 0; i < list.length; i++) {\n          const n = list[i];\n          if (n.name === this.selected) {\n            index = i;\n            break;\n          }\n        }\n        if (index < 0) {\n          radio = list[0];\n        } else {\n          index--;\n          if (index < 0) {\n            index = list.length - 1;\n          }\n          radio = list[index];\n        }\n      } else {\n        radio = list[0];\n      }\n      if (radio) {\n        radio.focus();\n        this.selected = radio.name;\n        this.fireSelected();\n      }\n    }\n  }\n\n  private selectNext() {\n    const list = this.radioNodes;\n    if (list.length) {\n      let radio = null;\n      let index = -1;\n      if (this.selected) {\n        for (let i = 0; i < list.length; i++) {\n          const n = list[i];\n          if (n.name === this.selected) {\n            index = i;\n            break;\n          }\n        }\n        if (index < 0) {\n          radio = list[0];\n        } else {\n          index++;\n          if (index >= list.length) {\n            index = 0;\n          }\n          radio = list[index];\n        }\n      } else {\n        radio = list[0];\n      }\n      if (radio) {\n        radio.focus();\n        this.selected = radio.name;\n        this.fireSelected();\n      }\n    }\n  }\n\n  private fireSelected() {\n    fireEvent(this, 'selected', { selected: this.selected });\n  }\n}"
  },
  {
    "path": "src/wired-radio.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { ellipse, svgNode } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-radio')\nexport class WiredRadio extends WiredBase {\n  @property({ type: Boolean }) checked = false;\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @property({ type: String }) name?: string;\n  @property() private focused = false;\n\n  @query('input') private input?: HTMLInputElement;\n\n  private svgCheck?: SVGElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        font-family: inherit;\n      }\n      :host([disabled]) {\n        opacity: 0.6 !important;\n        cursor: default;\n        pointer-events: none;\n      }\n      :host([disabled]) svg {\n        background: rgba(0, 0, 0, 0.07);\n      }\n\n      #container {\n        display: flex;\n        flex-direction: row;\n        position: relative;\n        user-select: none;\n        min-height: 24px;\n        cursor: pointer;\n      }\n      span {\n        margin-left: 1.5ex;\n        line-height: 24px;\n      }\n      input {\n        opacity: 0;\n      }\n      path {\n        stroke: var(--wired-radio-icon-color, currentColor);\n        stroke-width: var(--wired-radio-default-swidth, 0.7);\n      }\n      g path {\n        stroke-width: 0;\n        fill: var(--wired-radio-icon-color, currentColor);\n      }\n      #container.focused {\n        --wired-radio-default-swidth: 1.5;\n      }\n      `\n    ];\n  }\n\n  focus() {\n    if (this.input) {\n      this.input.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.refreshCheckVisibility();\n  }\n\n  render(): TemplateResult {\n    return html`\n    <label id=\"container\" class=\"${this.focused ? 'focused' : ''}\">\n      <input type=\"checkbox\" .checked=\"${this.checked}\" ?disabled=\"${this.disabled}\" \n        @change=\"${this.onChange}\"\n        @focus=\"${() => this.focused = true}\"\n        @blur=\"${() => this.focused = false}\">\n      <span><slot></slot></span>\n      <div id=\"overlay\"><svg></svg></div>\n    </label>\n    `;\n  }\n\n  private onChange() {\n    this.checked = this.input!.checked;\n    this.refreshCheckVisibility();\n    this.fire('change', { checked: this.checked });\n  }\n\n  protected canvasSize(): Point {\n    return [24, 24];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    ellipse(svg, size[0] / 2, size[1] / 2, size[0], size[1], this.seed);\n    this.svgCheck = svgNode('g');\n    svg.appendChild(this.svgCheck);\n    const iw = Math.max(size[0] * 0.6, 5);\n    const ih = Math.max(size[1] * 0.6, 5);\n    ellipse(this.svgCheck, size[0] / 2, size[1] / 2, iw, ih, this.seed);\n  }\n\n  private refreshCheckVisibility() {\n    if (this.svgCheck) {\n      this.svgCheck.style.display = this.checked ? '' : 'none';\n    }\n  }\n}"
  },
  {
    "path": "src/wired-search-input.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, line, svgNode, ellipse } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-search-input')\nexport class WiredSearchInput extends WiredBase {\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @property({ type: String }) placeholder = '';\n  @property({ type: String }) autocomplete = '';\n  @property({ type: String }) autocorrect = '';\n  @property({ type: Boolean }) autofocus = false;\n\n  @query('input') private textInput?: HTMLInputElement;\n\n  private pendingValue?: string;\n  private searchIcon?: SVGElement;\n  private closeIcon?: SVGElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          padding: 10px 40px 10px 5px;\n          font-family: sans-serif;\n          width: 180px;\n          outline: none;\n        }\n        :host([disabled]) {\n          opacity: 0.6 !important;\n          cursor: default;\n          pointer-events: none;\n        }\n        :host([disabled]) svg {\n          background: rgba(0, 0, 0, 0.07);\n        }\n        input {\n          display: block;\n          width: 100%;\n          box-sizing: border-box;\n          outline: none;\n          border: none;\n          font-family: inherit;\n          font-size: inherit;\n          font-weight: inherit;\n          color: inherit;\n          padding: 6px;\n        }\n        \n        input[type=search]::-ms-clear {  display: none; width : 0; height: 0; }\n        input[type=search]::-ms-reveal {  display: none; width : 0; height: 0; }\n        input[type=\"search\"]::-webkit-search-decoration,\n        input[type=\"search\"]::-webkit-search-cancel-button,\n        input[type=\"search\"]::-webkit-search-results-button,\n        input[type=\"search\"]::-webkit-search-results-decoration {\n          display: none;\n        }\n\n        .thicker path {\n          stroke-width: 1.5;\n        }\n\n        button {\n          position: absolute;\n          top: 0;\n          right: 2px;\n          width: 32px;\n          height: 100%;\n          box-sizing: border-box;\n          background: none;\n          border: none;\n          cursor: pointer;\n          outline: none;\n          opacity: 0;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <input type=\"search\" placeholder=\"${this.placeholder}\" ?disabled=\"${this.disabled}\"\n      autocomplete=\"${this.autocomplete}\" ?autofocus=\"${this.autofocus}\" \n      autocapitalize=\"${this.autocapitalize}\" autocorrect=\"${this.autocorrect}\" \n      @change=\"${this.refire}\" @input=\"${this.refire}\">\n    <div id=\"overlay\">\n      <svg></svg>\n    </div>\n    <button @click=\"${() => this.value = ''}\"></button>\n    `;\n  }\n\n  get input(): HTMLInputElement | undefined {\n    return this.textInput;\n  }\n\n  get value(): string {\n    const input = this.input;\n    return (input && input.value) || '';\n  }\n\n  set value(v: string) {\n    if (this.shadowRoot) {\n      const input = this.input;\n      if (input) {\n        input.value = v;\n      }\n      this.refreshIconState();\n    } else {\n      this.pendingValue = v;\n    }\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.refreshIconState();\n  }\n\n  firstUpdated() {\n    this.value = this.pendingValue || this.value || this.getAttribute('value') || '';\n    delete this.pendingValue;\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 2, 2, size[0] - 2, size[1] - 2, this.seed);\n\n    this.searchIcon = svgNode('g');\n    this.searchIcon.classList.add('thicker');\n    svg.appendChild(this.searchIcon);\n    ellipse(this.searchIcon, size[0] - 30, (size[1] - 30) / 2 + 10, 20, 20, this.seed);\n    line(this.searchIcon, size[0] - 10, (size[1] - 30) / 2 + 30, size[0] - 25, (size[1] - 30) / 2 + 15, this.seed);\n\n    this.closeIcon = svgNode('g');\n    this.closeIcon.classList.add('thicker');\n    svg.appendChild(this.closeIcon);\n    line(this.closeIcon, size[0] - 33, (size[1] - 30) / 2 + 2, size[0] - 7, (size[1] - 30) / 2 + 28, this.seed);\n    line(this.closeIcon, size[0] - 7, (size[1] - 30) / 2 + 2, size[0] - 33, (size[1] - 30) / 2 + 28, this.seed);\n  }\n\n  private refreshIconState() {\n    if (this.searchIcon && this.closeIcon) {\n      this.searchIcon.style.display = this.value.trim() ? 'none' : '';\n      this.closeIcon.style.display = this.value.trim() ? '' : 'none';\n    }\n  }\n\n  private refire(event: Event) {\n    this.refreshIconState();\n    event.stopPropagation();\n    this.fire(event.type, { sourceEvent: event });\n  }\n}"
  },
  {
    "path": "src/wired-slider.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { line, ellipse } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-slider')\nexport class WiredSlider extends WiredBase {\n  @property({ type: Number }) min = 0;\n  @property({ type: Number }) max = 100;\n  @property({ type: Number }) step = 1;\n  @property({ type: Boolean, reflect: true }) disabled = false;\n\n  @query('input') private input?: HTMLInputElement;\n\n  private knob?: SVGElement;\n  private canvasWidth = 300;\n  private pendingValue?: number;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        position: relative;\n        width: 300px;\n        box-sizing: border-box;\n      }\n      :host([disabled]) {\n        opacity: 0.45 !important;\n        cursor: default;\n        pointer-events: none;\n        background: rgba(0, 0, 0, 0.07);\n        border-radius: 5px;\n      }\n      input[type=range] {\n        width: 100%;\n        height: 40px;\n        box-sizing: border-box;\n        margin: 0;\n        -webkit-appearance: none;\n        background: transparent;\n        outline: none;\n        position: relative;\n      }\n      input[type=range]:focus {\n        outline: none;\n      }\n      input[type=range]::-ms-track {\n        width: 100%;\n        cursor: pointer;\n        background: transparent;\n        border-color: transparent;\n        color: transparent;\n      }\n      input[type=range]::-moz-focus-outer {\n        outline: none;\n        border: 0;\n      }\n      input[type=range]::-moz-range-thumb {\n        border-radius: 50px;\n        background: none;\n        cursor: pointer;\n        border: none;\n        margin: 0;\n        height: 24px;\n        width: 24px;\n        line-height: 1;\n      }\n      input[type=range]::-webkit-slider-thumb {\n        -webkit-appearance: none;\n        border-radius: 50px;\n        background: none;\n        cursor: pointer;\n        border: none;\n        height: 24px;\n        width: 24px;\n        margin: 0;\n        line-height: 1;\n      }\n      .knob{\n        fill: var(--wired-slider-knob-color, rgb(51, 103, 214));\n        stroke: var(--wired-slider-knob-color, rgb(51, 103, 214));\n      }\n      .bar {\n        stroke: var(--wired-slider-bar-color, rgb(0, 0, 0));\n        stroke-width: 1;\n      }\n      input:focus + div svg .knob {\n        stroke: var(--wired-slider-knob-outline-color, #000);\n        fill-opacity: 0.8;\n      }\n      `\n    ];\n  }\n\n  get value(): number {\n    if (this.input) {\n      return +this.input.value;\n    }\n    return this.min;\n  }\n\n  set value(v: number) {\n    if (this.input) {\n      this.input.value = `${v}`;\n    } else {\n      this.pendingValue = v;\n    }\n    this.updateThumbPosition();\n  }\n\n  firstUpdated() {\n    this.value = this.pendingValue || +(this.getAttribute('value') || this.value || this.min);\n    delete this.pendingValue;\n  }\n\n\n  render(): TemplateResult {\n    return html`\n    <div id=\"container\">\n      <input type=\"range\" \n        min=\"${this.min}\"\n        max=\"${this.max}\"\n        step=\"${this.step}\"\n        ?disabled=\"${this.disabled}\"\n        @input=\"${this.onInput}\">\n      <div id=\"overlay\">\n        <svg></svg>\n      </div>\n    </div>\n    `;\n  }\n\n  focus() {\n    if (this.input) {\n      this.input.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  private onInput(e: Event) {\n    e.stopPropagation();\n    this.updateThumbPosition();\n    if (this.input) {\n      this.fire('change', { value: +this.input.value });\n    }\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.updateThumbPosition();\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    this.canvasWidth = size[0];\n    const midY = Math.round(size[1] / 2);\n    line(svg, 0, midY, size[0], midY, this.seed).classList.add('bar');\n    this.knob = ellipse(svg, 12, midY, 24, 24, this.seed);\n    this.knob.classList.add('knob');\n  }\n\n  private updateThumbPosition() {\n    if (this.input) {\n      const value = +this.input!.value;\n      const delta = Math.max(this.step, this.max - this.min);\n      const pct = (value - this.min) / delta;\n      if (this.knob) {\n        this.knob.style.transform = `translateX(${pct * (this.canvasWidth - 24)}px)`;\n      }\n    }\n  }\n}"
  },
  {
    "path": "src/wired-spinner.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { ellipse, hachureEllipseFill } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\n@customElement('wired-spinner')\nexport class WiredSpinner extends WiredBase {\n  @property({ type: Boolean }) spinning = false;\n  @property({ type: Number }) duration = 1500;\n\n  private knob?: SVGElement;\n  private value = 0;\n  private timerstart = 0;\n  private frame = 0;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n        }\n        path {\n          stroke: currentColor;\n          stroke-opacity: 0.65;\n          stroke-width: 1.5;\n          fill: none;\n        }\n        .knob {\n          stroke-width: 2.8 !important;\n          stroke-opacity: 1;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`<svg></svg>`;\n  }\n\n  protected canvasSize(): Point {\n    return [76, 76];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    ellipse(svg, size[0] / 2, size[1] / 2, Math.floor(size[0] * 0.8), Math.floor(0.8 * size[1]), this.seed);\n    this.knob = hachureEllipseFill(0, 0, 20, 20, this.seed);\n    this.knob.classList.add('knob');\n    svg.appendChild(this.knob);\n    this.updateCursor();\n  }\n\n  private updateCursor() {\n    if (this.knob) {\n      const position: Point = [\n        Math.round(38 + 25 * Math.cos(this.value * Math.PI * 2)),\n        Math.round(38 + 25 * Math.sin(this.value * Math.PI * 2))\n      ];\n      this.knob.style.transform = `translate3d(${position[0]}px, ${position[1]}px, 0) rotateZ(${Math.round(this.value * 360 * 2)}deg)`;\n    }\n  }\n\n  updated() {\n    super.updated();\n    if (this.spinning) {\n      this.startSpinner();\n    } else {\n      this.stopSpinner();\n    }\n  }\n\n  private startSpinner() {\n    this.stopSpinner();\n    this.value = 0;\n    this.timerstart = 0;\n    this.nextTick();\n  }\n\n  private stopSpinner() {\n    if (this.frame) {\n      window.cancelAnimationFrame(this.frame);\n      this.frame = 0;\n    }\n  }\n\n  private nextTick() {\n    this.frame = window.requestAnimationFrame((t) => this.tick(t));\n  }\n\n  private tick(t: number) {\n    if (this.spinning) {\n      if (!this.timerstart) {\n        this.timerstart = t;\n      }\n      this.value = Math.min(1, (t - this.timerstart) / this.duration);\n      this.updateCursor();\n      if (this.value >= 1) {\n        this.value = 0;\n        this.timerstart = 0;\n      }\n      this.nextTick();\n    } else {\n      this.frame = 0;\n    }\n  }\n}"
  },
  {
    "path": "src/wired-tab.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\n\nimport './wired-item.js';\n\n@customElement('wired-tab')\nexport class WiredTab extends WiredBase {\n  @property({ type: String }) name = '';\n  @property({ type: String }) label = '';\n  private resizeObserver?: ResizeObserver;\n  private windowResizeHandler?: EventListenerOrEventListenerObject;\n\n  constructor() {\n    super();\n    if ((window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() => {\n        if (this.svg) {\n          this.wiredRender();\n        }\n      });\n    }\n  }\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          padding: 10px;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div>\n      <slot @slotchange=\"${this.wiredRender}\"></slot>\n    </div>\n    <div id=\"overlay\"><svg></svg></div>\n    `;\n  }\n\n  updated() {\n    super.updated();\n    this.attachResizeListener();\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (this.resizeObserver && this.resizeObserver.observe) {\n      this.resizeObserver.observe(this);\n    } else if (!this.windowResizeHandler) {\n      this.windowResizeHandler = () => this.wiredRender();\n      window.addEventListener('resize', this.windowResizeHandler, { passive: true });\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.resizeObserver && this.resizeObserver.unobserve) {\n      this.resizeObserver.unobserve(this);\n    }\n    if (this.windowResizeHandler) {\n      window.removeEventListener('resize', this.windowResizeHandler);\n    }\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, s: Point) {\n    rectangle(svg, 2, 2, s[0] - 4, s[1] - 4, this.seed);\n  }\n}"
  },
  {
    "path": "src/wired-tabs.ts",
    "content": "import { BaseCSS } from './wired-base';\nimport { css, TemplateResult, html, CSSResultArray, LitElement } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\ninterface WiredTabItem extends HTMLElement {\n  name: string;\n  label: string;\n  wiredRender(force?: boolean): void;\n}\n\n@customElement('wired-tabs')\nexport class WiredTabs extends LitElement {\n  @property({ type: String }) selected?: string;\n  @query('slot') private slotElement?: HTMLSlotElement;\n\n  private pages: WiredTabItem[] = [];\n  private pageMap = new Map<string, WiredTabItem>();\n  private current?: WiredTabItem;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: block;\n          opacity: 1;\n        }\n        ::slotted(.hidden) {\n          display: none !important;\n        }\n    \n        :host ::slotted(.hidden) {\n          display: none !important;\n        }\n        #bar {\n          display: -ms-flexbox;\n          display: -webkit-flex;\n          display: flex;\n          -ms-flex-direction: row;\n          -webkit-flex-direction: row;\n          flex-direction: row;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div id=\"bar\">\n      ${this.pages.map((p) => html`\n      <wired-item role=\"tab\" .value=\"${p.name}\" .selected=\"${p.name === this.selected}\" ?aria-selected=\"${p.name === this.selected}\"\n        @click=\"${() => this.selected = p.name}\">${p.label || p.name}</wired-item>\n      `)}\n    </div>\n    <div>\n      <slot @slotchange=\"${this.mapPages}\"></slot>\n    </div>\n    `;\n  }\n\n  private mapPages() {\n    this.pages = [];\n    this.pageMap.clear();\n    if (this.slotElement) {\n      const assigned = this.slotElement.assignedNodes();\n      if (assigned && assigned.length) {\n        for (let i = 0; i < assigned.length; i++) {\n          const n = assigned[i];\n          if (n.nodeType === Node.ELEMENT_NODE && (n as HTMLElement).tagName.toLowerCase() === 'wired-tab') {\n            const e = n as WiredTabItem;\n            this.pages.push(e);\n            const name = e.getAttribute('name') || '';\n            if (name) {\n              name.trim().split(' ').forEach((nameSegment) => {\n                if (nameSegment) {\n                  this.pageMap.set(nameSegment, e);\n                }\n              });\n            }\n          }\n        }\n        if (!this.selected) {\n          if (this.pages.length) {\n            this.selected = this.pages[0].name;\n          }\n        }\n        this.requestUpdate();\n      }\n    }\n  }\n\n  firstUpdated() {\n    this.mapPages();\n    this.tabIndex = +((this.getAttribute('tabindex') || 0));\n    this.addEventListener('keydown', (event) => {\n      switch (event.keyCode) {\n        case 37:\n        case 38:\n          event.preventDefault();\n          this.selectPrevious();\n          break;\n        case 39:\n        case 40:\n          event.preventDefault();\n          this.selectNext();\n          break;\n      }\n    });\n  }\n\n  updated() {\n    const newPage = this.getElement();\n    for (let i = 0; i < this.pages.length; i++) {\n      const p = this.pages[i];\n      if (p === newPage as any) {\n        p.classList.remove('hidden');\n      } else {\n        p.classList.add('hidden');\n      }\n    }\n    this.current = newPage || undefined;\n    if (this.current && this.current.wiredRender) {\n      requestAnimationFrame(() => requestAnimationFrame(() => this.current!.wiredRender()));\n    }\n  }\n\n  private getElement(): WiredTabItem | null {\n    let e: WiredTabItem | undefined = undefined;\n    if (this.selected) {\n      e = this.pageMap.get(this.selected);\n    }\n    if (!e) {\n      e = this.pages[0];\n    }\n    return e || null;\n  }\n\n  private selectPrevious() {\n    const list = this.pages;\n    if (list.length) {\n      let index = -1;\n      for (let i = 0; i < list.length; i++) {\n        if (list[i] === this.current) {\n          index = i;\n          break;\n        }\n      }\n      if (index < 0) {\n        index = 0;\n      } else if (index === 0) {\n        index = list.length - 1;\n      } else {\n        index--;\n      }\n      this.selected = list[index].name || '';\n    }\n  }\n\n  private selectNext() {\n    const list = this.pages;\n    if (list.length) {\n      let index = -1;\n      for (let i = 0; i < list.length; i++) {\n        if (list[i] === this.current) {\n          index = i;\n          break;\n        }\n      }\n      if (index < 0) {\n        index = 0;\n      } else if (index >= (list.length - 1)) {\n        index = 0;\n      } else {\n        index++;\n      }\n      this.selected = list[index].name || '';\n    }\n  }\n}"
  },
  {
    "path": "src/wired-textarea.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-textarea')\nexport class WiredTextarea extends WiredBase {\n  @property({ type: Boolean, reflect: true }) disabled = false;\n  @property({ type: Number }) rows = 2;\n  @property({ type: Number }) maxrows = 0;\n  @property({ type: String }) autocomplete = '';\n  @property({ type: Boolean }) autofocus = false;\n  @property({ type: String }) inputmode = '';\n  @property({ type: String }) placeholder = '';\n  @property({ type: Boolean }) required = false;\n  @property({ type: Boolean }) readonly = false;\n  @property({ type: Number }) minlength?: number;\n  @property({ type: Number }) maxlength?: number;\n\n  @query('textarea') private textareaInput?: HTMLTextAreaElement;\n  private pendingValue?: string;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          font-family: sans-serif;\n          width: 400px;\n          outline: none;\n          padding: 4px;\n        }\n        :host([disabled]) {\n          opacity: 0.6 !important;\n          cursor: default;\n          pointer-events: none;\n        }\n        :host([disabled]) svg {\n          background: rgba(0, 0, 0, 0.07);\n        }\n        textarea {\n          position: relative;\n          outline: none;\n          border: none;\n          resize: none;\n          background: inherit;\n          color: inherit;\n          width: 100%;\n          font-size: inherit;\n          font-family: inherit;\n          line-height: inherit;\n          text-align: inherit;\n          padding: 10px;\n          box-sizing: border-box;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <textarea id=\"textarea\" autocomplete=\"${this.autocomplete}\" ?autofocus=\"${this.autofocus}\" inputmode=\"${this.inputmode}\"\n      placeholder=\"${this.placeholder}\" ?readonly=\"${this.readonly}\" ?required=\"${this.required}\" ?disabled=\"${this.disabled}\"\n      rows=\"${this.rows}\" minlength=\"${this.minlength}\" maxlength=\"${this.maxlength}\"\n      @change=\"${this.refire}\" @input=\"${this.refire}\"></textarea>\n    <div id=\"overlay\">\n      <svg></svg>\n    </div>\n    `;\n  }\n\n  get textarea(): HTMLTextAreaElement | undefined {\n    return this.textareaInput;\n  }\n\n  get value(): string {\n    const input = this.textarea;\n    return (input && input.value) || '';\n  }\n\n  set value(v: string) {\n    if (this.shadowRoot) {\n      const input = this.textarea;\n      if (input) {\n        input.value = v;\n        return;\n      }\n    }\n    this.pendingValue = v;\n  }\n\n  firstUpdated() {\n    this.value = this.pendingValue || this.value || this.getAttribute('value') || '';\n    delete this.pendingValue;\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 4, 4, size[0] - 4, size[1] - 4, this.seed);\n  }\n\n  private refire(event: Event) {\n    event.stopPropagation();\n    this.fire(event.type, { sourceEvent: event });\n  }\n}"
  },
  {
    "path": "src/wired-toggle.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle, hachureEllipseFill, ellipse, svgNode } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\n@customElement('wired-toggle')\nexport class WiredToggle extends WiredBase {\n  @property({ type: Boolean }) checked = false;\n  @property({ type: Boolean, reflect: true }) disabled = false;\n\n  @query('input') private input?: HTMLInputElement;\n\n  private knob?: SVGElement;\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n      :host {\n        display: inline-block;\n        cursor: pointer;\n        position: relative;\n        outline: none;\n      }\n      :host([disabled]) {\n        opacity: 0.4 !important;\n        cursor: default;\n        pointer-events: none;\n      }\n      :host([disabled]) svg {\n        background: rgba(0, 0, 0, 0.07);\n      }\n      input {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        box-sizing: border-box;\n        cursor: pointer;\n        opacity: 0;\n      }\n      .knob {\n        transition: transform 0.3s ease;\n      }\n      .knob path {\n        stroke-width: 0.7;\n      }\n      .knob.checked {\n        transform: translateX(48px);\n      }\n      path.knobfill {\n        stroke-width: 3 !important;\n        fill: transparent;\n      }\n      .knob.unchecked path.knobfill {\n        stroke: var(--wired-toggle-off-color, gray);\n      }\n      .knob.checked path.knobfill {\n        stroke: var(--wired-toggle-on-color, rgb(63, 81, 181));\n      }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <div style=\"position: relative;\">\n      <svg></svg>\n      <input type=\"checkbox\" .checked=\"${this.checked}\" ?disabled=\"${this.disabled}\"  @change=\"${this.onChange}\">\n    </div>\n    `;\n  }\n\n  focus() {\n    if (this.input) {\n      this.input.focus();\n    } else {\n      super.focus();\n    }\n  }\n\n  wiredRender(force = false) {\n    super.wiredRender(force);\n    this.refreshKnob();\n  }\n\n  private onChange() {\n    this.checked = this.input!.checked;\n    this.refreshKnob();\n    this.fire('change', { checked: this.checked });\n  }\n\n  protected canvasSize(): Point {\n    return [80, 34];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    const rect = rectangle(svg, 16, 8, size[0] - 32, 18, this.seed);\n    rect.classList.add('toggle-bar');\n    this.knob = svgNode('g');\n    this.knob.classList.add('knob');\n    svg.appendChild(this.knob);\n    const knobFill = hachureEllipseFill(16, 16, 32, 32, this.seed);\n    knobFill.classList.add('knobfill');\n    this.knob.appendChild(knobFill);\n    ellipse(this.knob, 16, 16, 32, 32, this.seed);\n  }\n\n  private refreshKnob() {\n    if (this.knob) {\n      const cl = this.knob.classList;\n      if (this.checked) {\n        cl.remove('unchecked');\n        cl.add('checked');\n      } else {\n        cl.remove('checked');\n        cl.add('unchecked');\n      }\n    }\n  }\n}"
  },
  {
    "path": "src/wired-video.ts",
    "content": "import { WiredBase, BaseCSS, Point } from './wired-base';\nimport { rectangle } from './wired-lib';\nimport { css, TemplateResult, html, CSSResultArray } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { WiredProgress } from './wired-progress.js';\nimport { WiredSlider } from './wired-slider';\nimport './wired-icon-button.js';\n\n@customElement('wired-video')\nexport class WiredVideo extends WiredBase {\n  @property({ type: String }) src = '';\n  @property({ type: Boolean }) autoplay = false;\n  @property({ type: Boolean }) loop = false;\n  @property({ type: Boolean }) muted = false;\n  @property({ type: Boolean }) playsinline = false;\n  @property() private playing = false;\n  @property() private timeDisplay = '';\n\n  @query('wired-progress') private progressBar?: WiredProgress;\n  @query('wired-slider') private slider?: WiredSlider;\n  @query('video') private video?: HTMLVideoElement;\n\n  private resizeObserver?: ResizeObserver;\n  private windowResizeHandler?: EventListenerOrEventListenerObject;\n\n  constructor() {\n    super();\n    if ((window as any).ResizeObserver) {\n      this.resizeObserver = new (window as any).ResizeObserver(() => {\n        if (this.svg) {\n          this.wiredRender();\n        }\n      });\n    }\n  }\n\n  static get styles(): CSSResultArray {\n    return [\n      BaseCSS,\n      css`\n        :host {\n          display: inline-block;\n          position: relative;\n          line-height: 1;\n          padding: 3px 3px 68px;\n          --wired-progress-color: var(--wired-video-highlight-color, rgb(51, 103, 214));\n          --wired-slider-knob-color: var(--wired-video-highlight-color, rgb(51, 103, 214));\n        }\n        video {\n          display: block;\n          box-sizing: border-box;\n          max-width: 100%;\n          max-height: 100%;\n        }\n        path {\n          stroke-width: 1;\n        }\n        #controls {\n          position: absolute;\n          pointer-events: auto;\n          left: 0;\n          bottom: 0;\n          width: 100%;\n          box-sizing: border-box;\n          height: 70px;\n        }\n        .layout.horizontal {\n          display: -ms-flexbox;\n          display: -webkit-flex;\n          display: flex;\n          -ms-flex-direction: row;\n          -webkit-flex-direction: row;\n          flex-direction: row;\n          -ms-flex-align: center;\n          -webkit-align-items: center;\n          align-items: center;\n          padding: 5px 10px;\n        }\n        .flex {\n          -ms-flex: 1 1 0.000000001px;\n          -webkit-flex: 1;\n          flex: 1;\n          -webkit-flex-basis: 0.000000001px;\n          flex-basis: 0.000000001px;\n        }\n        wired-progress {\n          display: block;\n          width: 100%;\n          box-sizing: border-box;\n          height: 20px;\n          --wired-progress-label-color: transparent;\n          --wired-progress-label-background: transparent;\n        }\n        wired-icon-button span {\n          font-size: 16px;\n          line-height: 16px;\n          width: 16px;\n          height: 16px;\n          padding: 0px;\n          font-family: sans-serif;\n          display: inline-block;\n        }\n        #timeDisplay {\n          padding: 0 20px 0 8px;\n          font-size: 13px;\n        }\n        wired-slider {\n          display: block;\n          max-width: 200px;\n          margin: 0 6px 0 auto;\n        }\n      `\n    ];\n  }\n\n  render(): TemplateResult {\n    return html`\n    <video \n      .autoplay=\"${this.autoplay}\"\n      .loop=\"${this.loop}\"\n      .muted=\"${this.muted}\"\n      .playsinline=\"${this.playsinline}\"\n      src=\"${this.src}\"\n      @play=\"${() => this.playing = true}\"\n      @pause=\"${() => this.playing = false}\"\n      @canplay=\"${this.canPlay}\"\n      @timeupdate=\"${this.updateTime}\">\n    </video>\n    <div id=\"overlay\">\n      <svg></svg>\n    </div>\n    <div id=\"controls\">\n      <wired-progress></wired-progress>\n      <div class=\"horizontal layout center\">\n        <wired-icon-button @click=\"${this.togglePause}\">\n          <span>${this.playing ? '||' : '▶'}</span>\n        </wired-icon-button>\n        <div id=\"timeDisplay\">${this.timeDisplay}</div>\n        <div class=\"flex\">\n          <wired-slider @change=\"${this.volumeChange}\"></wired-slider>\n        </div>\n        <div style=\"width: 24px; height: 24px;\">\n          <svg viewBox=\"0 0 24 24\" preserveAspectRatio=\"xMidYMid meet\" focusable=\"false\" style=\"pointer-events: none; display: block; width: 100%; height: 100%;\"><g><path style=\"stroke: none; fill: currentColor;\" d=\"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02zM14 3.23v2.06c2.89.86 5 3.54 5 6.71s-2.11 5.85-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77z\"></path></g></svg>\n        </div>\n      </div>\n    </div>\n    `;\n  }\n\n  updated() {\n    super.updated();\n    this.attachResizeListener();\n  }\n\n  disconnectedCallback() {\n    this.detachResizeListener();\n  }\n\n  private attachResizeListener() {\n    if (this.resizeObserver && this.resizeObserver.observe) {\n      this.resizeObserver.observe(this);\n    } else if (!this.windowResizeHandler) {\n      this.windowResizeHandler = () => this.wiredRender();\n      window.addEventListener('resize', this.windowResizeHandler, { passive: true });\n    }\n  }\n\n  private detachResizeListener() {\n    if (this.resizeObserver && this.resizeObserver.unobserve) {\n      this.resizeObserver.unobserve(this);\n    }\n    if (this.windowResizeHandler) {\n      window.removeEventListener('resize', this.windowResizeHandler);\n    }\n  }\n\n  wiredRender() {\n    super.wiredRender();\n    if (this.progressBar) {\n      this.progressBar.wiredRender(true);\n    }\n  }\n\n  protected canvasSize(): Point {\n    const s = this.getBoundingClientRect();\n    return [s.width, s.height];\n  }\n\n  protected draw(svg: SVGSVGElement, size: Point) {\n    rectangle(svg, 2, 2, size[0] - 4, size[1] - 4, this.seed);\n  }\n\n  private updateTime() {\n    if (this.video && this.progressBar) {\n      this.progressBar.value = this.video.duration ? Math.round((this.video.currentTime / this.video.duration) * 100) : 0;\n      this.timeDisplay = `${this.getTimeDisplay(this.video.currentTime)} / ${this.getTimeDisplay(this.video.duration)}`;\n    }\n  }\n\n  private getTimeDisplay(time: number) {\n    const mins = Math.floor(time / 60);\n    const secs = Math.round(time - (mins * 60));\n    return `${mins}:${secs}`;\n  }\n\n  private togglePause() {\n    if (this.video) {\n      if (this.playing) {\n        this.video.pause();\n      } else {\n        this.video.play();\n      }\n    }\n  }\n\n  private volumeChange() {\n    if (this.video && this.slider) {\n      this.video.volume = this.slider.value / 100;\n    }\n  }\n\n  private canPlay() {\n    if (this.slider && this.video) {\n      this.slider.value = this.video!.volume * 100;\n    }\n  }\n}"
  },
  {
    "path": "tsconfig.json",
    "content": "{\n  \"compilerOptions\": {\n    \"target\": \"es2017\",\n    \"module\": \"es2015\",\n    \"moduleResolution\": \"node\",\n    \"lib\": [\n      \"es2017\",\n      \"dom\"\n    ],\n    \"declaration\": true,\n    \"outDir\": \"./lib\",\n    \"baseUrl\": \".\",\n    \"strict\": true,\n    \"strictNullChecks\": true,\n    \"noImplicitAny\": true,\n    \"noUnusedLocals\": true,\n    \"noUnusedParameters\": true,\n    \"noImplicitReturns\": true,\n    \"noFallthroughCasesInSwitch\": true,\n    \"experimentalDecorators\": true,\n    \"emitDecoratorMetadata\": true,\n    \"skipLibCheck\": true\n  },\n  \"include\": [\n    \"src/**/*.ts\"\n  ]\n}"
  },
  {
    "path": "tslint.json",
    "content": "{\n  \"rules\": {\n    \"arrow-parens\": true,\n    \"class-name\": true,\n    \"indent\": [\n      true,\n      \"spaces\",\n      2\n    ],\n    \"prefer-const\": true,\n    \"no-duplicate-variable\": true,\n    \"no-eval\": true,\n    \"no-internal-module\": true,\n    \"no-trailing-whitespace\": false,\n    \"no-var-keyword\": true,\n    \"one-line\": [\n      true,\n      \"check-open-brace\",\n      \"check-whitespace\"\n    ],\n    \"quotemark\": [\n      true,\n      \"single\",\n      \"avoid-escape\"\n    ],\n    \"semicolon\": [\n      true,\n      \"always\"\n    ],\n    \"trailing-comma\": [\n      true,\n      \"multiline\"\n    ],\n    \"triple-equals\": [\n      true,\n      \"allow-null-check\"\n    ],\n    \"typedef-whitespace\": [\n      true,\n      {\n        \"call-signature\": \"nospace\",\n        \"index-signature\": \"nospace\",\n        \"parameter\": \"nospace\",\n        \"property-declaration\": \"nospace\",\n        \"variable-declaration\": \"nospace\"\n      }\n    ],\n    \"variable-name\": [\n      true,\n      \"ban-keywords\"\n    ],\n    \"whitespace\": [\n      true,\n      \"check-branch\",\n      \"check-decl\",\n      \"check-operator\",\n      \"check-separator\",\n      \"check-type\"\n    ]\n  }\n}"
  }
]