diff --git a/sass/custom/_paulus.scss b/sass/custom/_paulus.scss index 6efc4c17a18..7728f716e0f 100644 --- a/sass/custom/_paulus.scss +++ b/sass/custom/_paulus.scss @@ -74,31 +74,24 @@ .blog-date { white-space: nowrap; } -} -.supported-brands { - text-align: center; - img { - border: none !important; - box-shadow: none !important; - max-height: 50px; - max-width: 140px; - margin: 10px; - vertical-align: middle; + .supported-brands { + text-align: center; + + a { + text-decoration: none; + } + + img { + border: none !important; + box-shadow: none !important; + max-height: 50px; + max-width: 140px; + margin: 10px; + vertical-align: middle; + } } -} -.brand { - border: none !important; - box-shadow: none !important; - max-height: 50px; - max-width: 200px; - margin: 10px; - - &.overview { - max-width: 100px; - vertical-align: middle; - } } // https://fortawesome.github.io/Font-Awesome/3.2.1/icons/ @@ -202,10 +195,6 @@ article.post, article.page, article.listing { text-decoration: none; } } - - .frontpage a { - text-decoration: none; - } } p.note { @@ -406,3 +395,8 @@ ul.sidebar-menu { a code { color: #049cdb; } + +twitterwidget { + margin-left: auto; + margin-right: auto; +} \ No newline at end of file diff --git a/source/_components/binary_sensor.enocean.markdown b/source/_components/binary_sensor.enocean.markdown index 24cdbf89023..435b7bfbc9c 100644 --- a/source/_components/binary_sensor.enocean.markdown +++ b/source/_components/binary_sensor.enocean.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: enocean.png ha_category: Binary Sensor +ha_release: 0.21 --- This can typically be one of those batteryless wall switches. Currently only one type has been tested: Eltako FT55. Other devices will most likely not work without changing the Home-Asisstant code. diff --git a/source/_components/camera.generic.markdown b/source/_components/camera.generic.markdown index 9b9984c3ffa..3872b836cfb 100644 --- a/source/_components/camera.generic.markdown +++ b/source/_components/camera.generic.markdown @@ -17,7 +17,7 @@ The `generic` camera platform allows you to integrate any IP camera into Home As Home Assistant will serve the images via its server, making it possible to view your IP camera's while outside of your network. The endpoint is `/api/camera_proxy/camera.[name]?time=[timestamp]`. -To enable this camery in your installation, add the following to your `configuration.yaml` file: +To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -31,7 +31,7 @@ camera: Configuration variables: -- **still_image_url** *Required*: The URL your camera serves the image on, eg. http://192.168.1.21:2112/ -- **name** *Optional*: This parameter allows you to override the name of your camera. -- **username** *Optional*: The username for accessing your camera. -- **password** *Optional*: The password for accessing your camera. +- **still_image_url** (*Required*): The URL your camera serves the image on, eg. http://192.168.1.21:2112/ +- **name** (*Optional*): This parameter allows you to override the name of your camera. +- **username** (*Optional*): The username for accessing your camera. +- **password** (*Optional*): The password for accessing your camera. diff --git a/source/_components/camera.mjpeg.markdown b/source/_components/camera.mjpeg.markdown index 9f84a34851b..61202b15612 100644 --- a/source/_components/camera.mjpeg.markdown +++ b/source/_components/camera.mjpeg.markdown @@ -31,10 +31,10 @@ camera: Configuration variables: -- **mjpeg_url** *Required*: The URL your camera serves the video on, eg. http://192.168.1.21:2112/ -- **name** *Optional*: This parameter allows you to override the name of your camera. -- **username** *Optional*: The username for accessing your camera. -- **password** *Optional*: The password for accessing your camera. +- **mjpeg_url** (*Required*): The URL your camera serves the video on, eg. http://192.168.1.21:2112/ +- **name** (*Optional*): This parameter allows you to override the name of your camera. +- **username** (*Optional*): The username for accessing your camera. +- **password** (*Optional*): The password for accessing your camera.

There is a known issue in urllib3 that you will get error messages in your logs like [StartBoundaryNotFoundDefect(), MultipartInvariantViolationDefect()], unparsed data: '' but the component still works fine. You can ignore the messages. diff --git a/source/_components/camera.rpi_camera.markdown b/source/_components/camera.rpi_camera.markdown index e2b6b4f2634..23de89c3273 100644 --- a/source/_components/camera.rpi_camera.markdown +++ b/source/_components/camera.rpi_camera.markdown @@ -14,7 +14,9 @@ ha_release: 0.17 --- -The `rpi` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application "raspistill" to store the image from camera. +The `rpi` platform allows you to integrate the Raspberry Pi camera into Home Assistant. This component uses the application [`raspistill`](https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspistill.md) to store the image from camera. + +To enable this camera in your installation, add the following to your `configuration.yaml` file: ```yaml # Example configuration.yaml entry @@ -33,14 +35,14 @@ camera: Configuration variables: - - **name** (optional): name of the camera - - **image_width** (optional): set the image width (default: 640) - - **image_height** (optional): set the image height (default: 480) - - **image_quality** (optional): set the image quality (from 0 to 100, default: 7) - - **image_rotation** (optional): Set image rotation (0-359, default: 0) - - **horizontal_flip** (optional): Set horizontal flip (0 to disable, 1 to enable, default: 0) - - **vertical_flip** (optional): Set vertical flip (0 to disable, 1 to enable, default: 0) - - **timelapse** (optional): Takes a picture every ms (default: 1000) - - **file_path** (optional): Save the picture in a custom file path (default: camera components folder) + - **name** (*Optional*): Name of the camera + - **image_width** (*Optional*): Set the image width (default: 640) + - **image_height** (*Optional*): Set the image height (default: 480) + - **image_quality** (*Optional*): Set the image quality (from 0 to 100, default: 7) + - **image_rotation** (*Optional*): Set image rotation (0-359, default: 0) + - **horizontal_flip** (*Optional*): Set horizontal flip (0 to disable, 1 to enable, default: 0) + - **vertical_flip** (*Optional*): Set vertical flip (0 to disable, 1 to enable, default: 0) + - **timelapse** (*Optional*): Takes a picture every ms (default: 1000) + - **file_path** (*Optional*): Save the picture in a custom file path (default: camera components folder) The given **file_path** must be an existing file because the camera platform setup make a writeable check on it. diff --git a/source/_components/device_tracker.ddwrt.markdown b/source/_components/device_tracker.ddwrt.markdown index a53c0aff9a4..311324a6300 100644 --- a/source/_components/device_tracker.ddwrt.markdown +++ b/source/_components/device_tracker.ddwrt.markdown @@ -9,9 +9,9 @@ sharing: true footer: true logo: ddwrt.png ha_category: Presence Detection +ha_release: pre 0.7 --- - This platform offers presence detection by looking at connected devices to a [DD-WRT](http://www.dd-wrt.com/site/index) based router. To use a DD-WRT router in your installation, add the following to your `configuration.yaml` file: diff --git a/source/_components/device_tracker.netgear.markdown b/source/_components/device_tracker.netgear.markdown index 4466885b505..005773f2186 100644 --- a/source/_components/device_tracker.netgear.markdown +++ b/source/_components/device_tracker.netgear.markdown @@ -10,6 +10,7 @@ footer: true logo: netgear.png ha_category: Presence Detection ha_iot_class: "Local Polling" +ha_release: pre 0.7 --- diff --git a/source/_components/ecobee.markdown b/source/_components/ecobee.markdown index 529a293ad0e..ab7e2cc0bea 100644 --- a/source/_components/ecobee.markdown +++ b/source/_components/ecobee.markdown @@ -15,7 +15,9 @@ featured: true The Ecobee platform lets you control a thermostats and view sensor data from the [Ecobee](https://ecobee.com) thermostat. -You will need to obtain an API key from ecobee's [developer site](https://www.ecobee.com/developers/) to use this component. The first time you run Home-Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking 'Add Application' in the 'My Apps' section in the sidebar. +You will need to obtain an API key from ecobee's [developer site](https://www.ecobee.com/developers/) to use this component. To get the key, first you need to register your thermostat. Once you have done that, click on the 'Become a developer' link on the developer site. Login with your ecobee credentials, accept the SDK agreement, fill in the fields, and click save. Now login to the regular consumer portal, and in the hamburger menu there will br a new option 'Developer'. Select that, then select 'Create New'. Give your app a name (it appears to need to be unique across all users, as I tried 'home-assistant' and it said it was already in use) and a summary (neither of these are important as they are not used anywhere). For Authorization method select 'ecobee PIN'. You don't need an Application Icon or Detailed Description. Click Save. Now under the Name and Summary Section you will have an API key. Copy this key and use it in you configuration section below. Click the 'X' to close the Developer section. + +The first time you run Home-Assistant with this component it will give you a PIN code that you need to authorize in the [ecobee consumer portal](https://www.ecobee.com/consumerportal/index.html). You can do this by clicking 'Add Application' in the 'My Apps' section in the sidebar. Enter the PIN code from the Home Assistant screeen. To get the PIN code select the item in the Ecobee card. If you do not have an Ecobee card, you may be using groups with default_view that don't show the card. To get around this you can temporarily comment out the default_view section and restart Home Assistant. Once you enter the PIN on the Ecobee site, wait approximately 5 minutes and then click on the 'I have authorized the app' link at the bottom of the Ecobee popup window. If everything worked correctly, you should now be able to restart Home Assistant again to see the full Ecobee card with all of the sensors populated. Now you can re-enable your default_view (if you had to disable it) and add the Ecobee sensors to a group and/or view. To set it up, add the following information to your `configuration.yaml` file: diff --git a/source/_components/enocean.markdown b/source/_components/enocean.markdown index ea9fa21df69..6e39caf744e 100644 --- a/source/_components/enocean.markdown +++ b/source/_components/enocean.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: enocean.png ha_category: Hub +ha_release: 0.21 --- The [EnOcean](https://en.wikipedia.org/wiki/EnOcean) standard is supported by many different vendors. There are switches and sensors of many different kinds, and typically they employ energy harvesting to get power such that no batteries are unnecessary. diff --git a/source/_components/light.enocean.markdown b/source/_components/light.enocean.markdown index 560500de3e1..7bed96c53d9 100644 --- a/source/_components/light.enocean.markdown +++ b/source/_components/light.enocean.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: enocean.png ha_category: Light +ha_release: 0.21 --- An EnOcean light can take many formes. Currently only one type has been tested: Eltako FUD61 dimmer. diff --git a/source/_components/light.markdown b/source/_components/light.markdown index 7d92ef67606..c54acd0ebb6 100644 --- a/source/_components/light.markdown +++ b/source/_components/light.markdown @@ -49,7 +49,7 @@ Turns one or multiple lights off. | Service data attribute | Optional | Description | | ---------------------- | -------- | ----------- | | `entity_id` | no | String or list of strings that point at `entity_id`s of lights. Else targets all. -| `transition` | yes | Integer that represents the time the light should take to transition to the new state. +| `transition` | yes | Integer that represents the time the light should take to transition to the new state in seconds. ### {% linkable_title Service `light.toggle` %} diff --git a/source/_components/light.osramlightify.markdown b/source/_components/light.osramlightify.markdown index 0ac64a1f923..a3d5364e107 100644 --- a/source/_components/light.osramlightify.markdown +++ b/source/_components/light.osramlightify.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: osramlightify.png ha_category: Light +ha_release: 0.21 --- The `osramlightify` platform allows you to integrate your [Osram Lightify](http://www.osram.com/osram_com/products/led-technology/lightify/index.jsp) into Home Assistant. diff --git a/source/_components/sensor.enocean.markdown b/source/_components/sensor.enocean.markdown index f635a8d2e33..654c054a923 100644 --- a/source/_components/sensor.enocean.markdown +++ b/source/_components/sensor.enocean.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: enocean.png ha_category: Sensor +ha_release: 0.21 --- diff --git a/source/_components/switch.enocean.markdown b/source/_components/switch.enocean.markdown index 3c6fc5e3467..d9c3f10454d 100644 --- a/source/_components/switch.enocean.markdown +++ b/source/_components/switch.enocean.markdown @@ -9,6 +9,7 @@ sharing: true footer: true logo: enocean.png ha_category: Switch +ha_release: 0.21 --- An EnOcean switch can take many forms. Currently only one type has been tested: Permundo PSC234 diff --git a/source/_cookbook/python_component_basic_state.markdown b/source/_cookbook/python_component_basic_state.markdown index d81d478ad16..1720868ed4d 100644 --- a/source/_cookbook/python_component_basic_state.markdown +++ b/source/_cookbook/python_component_basic_state.markdown @@ -95,7 +95,7 @@ def setup(hass, config): To add the latest feature of our component, update the entry in your `configuration.yaml` file. ```yaml -information: +hello_state: text: 'Hello, World!' ``` diff --git a/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown b/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown index 58588c42bd2..f8543a5855e 100644 --- a/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown +++ b/source/_posts/2015-10-11-measure-temperature-with-esp8266-and-report-to-mqtt.markdown @@ -29,7 +29,7 @@ Home Assistant will keep track of historical values and allow you to integrate i -### Components +### {% linkable_title Components %} I've been using Adafruit for my shopping: @@ -39,7 +39,11 @@ I've been using Adafruit for my shopping: _Besides this, you will need the usual hardware prototype equipment: a breadboard, some wires, soldering iron + wire, Serial USB cable._ -### Connections +

+Adafruit has stopped selling the HDC1008. One possible replacement is the [BME280](https://www.adafruit.com/product/2652). Adjusted sketch to work with the BME280 can be found [here](https://gist.github.com/mtl010957/9ee85fb404f65e15c440b08c659c0419). +

+ +### {% linkable_title Connections %} On your breadboard, make the following connections from your ESP8266 to the HDC1008: @@ -52,7 +56,7 @@ On your breadboard, make the following connections from your ESP8266 to the HDC1 _I picked `#2` and `14` myself, you can configure them in the sketch._ -### Preparing your IDE +### {% linkable_title Preparing your IDE %} Follow [these instructions](https://github.com/esp8266/Arduino#installing-with-boards-manager) on how to install and prepare the Arduino IDE for ESP8266 development. @@ -61,7 +65,7 @@ After you're done installing, open the Arduino IDE, in the menu click on `sketch - PubSubClient by Nick 'O Leary - Adafruit HDC1000 -### Sketch +### {% linkable_title Sketch %} If you have followed the previous steps, you're all set. @@ -187,7 +191,7 @@ void loop() { } ``` -### Configuring Home Assistant +### {% linkable_title Configuring Home Assistant %} The last step is to integrate the sensor values into Home Assistant. This can be done by setting up Home Assistant to connect to the MQTT broker and subscribe to the sensor topics. diff --git a/source/_posts/2015-12-13-setup-encryption-using-lets-encrypt.markdown b/source/_posts/2015-12-13-setup-encryption-using-lets-encrypt.markdown index 6a12fddecce..9f1e04ed9a7 100644 --- a/source/_posts/2015-12-13-setup-encryption-using-lets-encrypt.markdown +++ b/source/_posts/2015-12-13-setup-encryption-using-lets-encrypt.markdown @@ -4,7 +4,7 @@ title: "Set up encryption using Let's Encrypt" description: "Tutorial how to encrypt your connection with Home Assistant." date: 2015-12-13 10:05:00 -0800 date_formatted: "December 13, 2015" -author: Paulus Schoutsen +author: Paulus Schoutsen & Martin Hjelmare author_twitter: balloob comments: true categories: How-To @@ -21,12 +21,15 @@ This tutorial will take you through the steps to setup a dynamic DNS for your IP +**Updated 2016-06-18** + ### {% linkable_title Requirements %} The DuckDNS part of this tutorial has no requirements but there are a few requirements as of now to run the Let's Encrypt client. - - Direct connection to the internet or admin access to your router to set up port forwarding - - A machine running a Unix-ish OS that include Python 2.6 or 2.7 (Docker can be used) + - Direct connection to the internet or admin access to your router to set up port forwarding. + - A machine running a Unix-ish OS that include Python 2.6 or 2.7 (Docker can be used). + - Root access, to write to default config, log and library directories and bind port 80. @@ -46,48 +49,45 @@ First step is to acquire and set up our domain name. For this, go to [DuckDNS], Let's Encrypt will give you a free 90-day certificate if you pass their domain validation challenge. Domains are validated by having certain data be accessible on your domain for Let's Encrypt ([they describe it better themselves][letsencrypt-technology]). -Assuming that your home is behind a router, the first thing to do is to set up port forwarding from your router to your computer that will run Let's Encrypt. For the Let's Encrypt set up we need to temporary forward ports `80` (http connections) and `443` (https connections). This can be set up by accessing your router admin interface ([Site with port forwarding instructions per router][port-forward]). +Assuming that your home is behind a router, the first thing to do is to set up port forwarding from your router to your computer that will run Let's Encrypt. For the Let's Encrypt set up we need to forward external port `80` to internal port `80` (http connections). This can be set up by accessing your router admin interface ([Site with port forwarding instructions per router][port-forward]). This port forward must be active whenever you want to request a new certificate from Let's Encrypt, typically every three months. If you normally don't use or have an app that listens to port `80`, it should be safe to leave the port open. This will make renewing certificates easier. -Now you're ready to run Let's Encrypt: +Now you're ready to install and run the client that requests certificates from Let's Encrypt. The following example will use the platform independent script to install and run the [certbot][certbot] client from Let's Encrypt. If there is a certbot package for your OS, it's recommended to install the package instead of the platform independent script. Read the [docs][certbot] for more information. There are also other clients that might offer more customization and options. See the [client options page][letsencrypt-clients] at Let's Encrypt. ```bash -$ git clone https://github.com/letsencrypt/letsencrypt -[…] -$ cd letsencrypt -$ ./letsencrypt-auto certonly --email your@email.address -d hass-example.duckdns.org - -Updating letsencrypt and virtual environment dependencies....... -Running with virtualenv: sudo /path/letsencrypt/bin/letsencrypt certonly --email your@e-mail.address -d hass-example.duckdns.org - -IMPORTANT NOTES: - - Congratulations! Your certificate and chain have been saved at - /etc/letsencrypt/live/hass-example.duckdns.org/fullchain.pem. Your cert - will expire on 2016-03-12. To obtain a new version of the - certificate in the future, simply run Let's Encrypt again. - - If like Let's Encrypt, please consider supporting our work by: - - Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate - Donating to EFF: https://eff.org/donate-le +$ mkdir certbot +$ cd certbot/ +$ wget https://dl.eff.org/certbot-auto +$ chmod a+x certbot-auto +$ ./certbot-auto certonly --standalone \ + --standalone-supported-challenges http-01 \ + --email your@email.address \ + -d hass-example.duckdns.org ``` If you're using Docker, run the following command to generate the required keys: ```bash sudo mkdir /etc/letsencrypt /var/lib/letsencrypt -sudo docker run -it --rm -p 443:443 -p 80:80 --name letsencrypt \ +sudo docker run -it --rm -p 80:80 --name certbot \ -v "/etc/letsencrypt:/etc/letsencrypt" \ -v "/var/lib/letsencrypt:/var/lib/letsencrypt" \ quay.io/letsencrypt/letsencrypt:latest certonly \ - --email your@e-mail.address -d hass-example.duckdns.org + --standalone --standalone-supported-challenges http-01 \ + --email your@email.address -d hass-example.duckdns.org ``` -With either method your certificate will be generated and put in the directory `/etc/letsencrypt/live/hass-example.duckdns.org`. As the lifetime is only 90 days, you will have to repeat this every 90 days. +With either method your certificate will be generated and put in the directory `/etc/letsencrypt/live/hass-example.duckdns.org`. As the lifetime is only 90 days, you will have to repeat this every 90 days. There's a special command to simplify renewing certificates: + +```bash +./certbot-auto renew --quiet --no-self-upgrade --standalone \ + --standalone-supported-challenges http-01 +``` ### {% linkable_title Home Assistant %} -Before updating the Home Assistant configuration, we have to update the port forwarding at your router config. We can drop the port forwarding for port `80` as we no longer care about unecrypted messages. Update port `443` to forward to port `8123` on the computer that will run Home Assistant. +Before updating the Home Assistant configuration, we have to forward port `443` (https connections) to port `8123` on the computer that will run Home Assistant. Do this in your router configuration as previously done for port `80`. The final step is to point Home Assistant at the generated certificates. Before you do this, make sure that the user running Home Assistant has read access to the folder that holds the certificates. @@ -105,5 +105,7 @@ _Big thanks to Fabian Affolter for his help and feedback on this article._ [DuckDNS]: https://duckdns.org [duckdns-install]: https://www.duckdns.org/install.jsp [Let's Encrypt]: https://letsencrypt.org -[letsencrypt-technology]: https://letsencrypt.org/howitworks/technology/ +[letsencrypt-technology]: https://letsencrypt.org/how-it-works/ +[letsencrypt-clients]: https://letsencrypt.org/docs/client-options/ [port-forward]: http://portforward.com +[certbot]: https://certbot.eff.org/ diff --git a/source/_posts/2016-06-08-super-fast-web-enocean-lirc.markdown b/source/_posts/2016-06-08-super-fast-web-enocean-lirc.markdown index 110d6f789b2..332cc9822d9 100644 --- a/source/_posts/2016-06-08-super-fast-web-enocean-lirc.markdown +++ b/source/_posts/2016-06-08-super-fast-web-enocean-lirc.markdown @@ -41,7 +41,32 @@ Alright, time for the changes: - Our work in the WSGI stack is not fully done yet. We still have a minor issues where retrieving the error log in the about screen can raise an encoding error - The API used to incorrectly accept a JSON body with form-url-encoded headers. Our cURL examples on the website used to be wrong and have [been updated]. + - Make sure your configuration.yaml file contains `frontend:` to serve the frontend +### Hotfixes 0.21.1 and 0.21.2 + +We released two hotfixes to address some issues that couldn't wait till the next release. + +##### 0.21.1 - June 12 + + - Add eventlet to base requirements to resolve some installation issues ([@balloob]) + - GTFS will filter out routes in the wrong direction ([@imrehg]) + - Recover from rare error condition from LIRC ([@partofthething]) + - Z-Wave autoheal will no longer raise exception ([@balloob]) + - Alexa will now execute the script before making reply ([@balloob]) + - Fix MJPEG camera streaming ([@stjohnjohnson]) + - Fix frontend in older browsers ([@balloob]) + - Fix history in more info dialog being cut off ([@balloob]) + +##### 0.21.2 - June 15 + + - Fix input_select calling the set_option service again when changed ([@persandstrom]) + - Fix more info dialog not being able to open on Safari ([@balloob]) + - Add support for OPTIONS HTTP command to get CORS working ([@JshWright]) + +[@stjohnjohnson]: https://github.com/stjohnjohnson +[@imrehg]: https://github.com/imrehg +[@persandstrom]: https://github.com/persandstrom [@armills]: https://github.com/armills [@balloob]: https://github.com/balloob [@Bart274]: https://github.com/Bart274 diff --git a/source/_posts/2016-06-13-home-assistant-at-pycon-2016.markdown b/source/_posts/2016-06-13-home-assistant-at-pycon-2016.markdown new file mode 100644 index 00000000000..18de1b3c258 --- /dev/null +++ b/source/_posts/2016-06-13-home-assistant-at-pycon-2016.markdown @@ -0,0 +1,53 @@ +--- +layout: post +title: "Home Assistant at PyCon 2016" +description: "A wrap up of what our developers were up to during PyCon 2016." +date: 2016-06-13 01:06:00 +0000 +date_formatted: "June 13, 2016" +author: Paulus Schoutsen +author_twitter: balloob +comments: true +categories: Video +og_image: /images/blog/2016-06-pycon/crew.jpg +--- + +It's been already almost two weeks ago that a few of the Home Assistant developers headed towards Portland for [PyCon 2016] - the conference about everything Python. We were there to learn all the nifty tricks to make our code better but most of all, to talk Home Automation. + +

+ Home Assistant developers + Couple of Home Assistant devs. Left to right: [Paulus (@balloob)], [Alex (@infamy)], [Ryan (@rmkraus)]. +

+ +On Monday I (Paulus) gave a presentation about Home Assistant to an audience of over 400 people! It was a bit scary at first but after a couple of minutes it went all great including some great questions afterwards. Slides can be found [here][slides] and the talk is embedded right below: + +
+ +
+ +One of the things that really impressed me was the amount of people that approached us to tell how they love Home Assistant, how it has replaced their previous solution, how they enjoyed contributing to Home Assistant and how helpful our community is. It makes me proud of Home Assistant and especially our community. + + +PyCon has a few great concepts that I haven't seen at other conferences: open spaces and sprints. Open spaces give anyone the opportunity to get a room and host a session for an hour to talk about any topic. Sprints happen after the conference part of PyCon is over. For four days there are rooms available for participants to get together and hack on their favorite open source projects. + +My talk had limited time for Q&A so open spaces offered a great opportunity to get all pending questions answered and connect with the commmunity. There was more interest after the first day so we ended up hosting another open space on the second day. + +

@anschoen @home_assistant I'm located in Detroit. I could facilitate a workshop. What are we talking (group, potential dates, etc)?

— Jonathan Baginski (@jbags81) June 4, 2016
+ +We've had such positive reception on our open spaces that [Jonathan Baginski][@jbags81] decided to repeat it online. We will be hosting a free online webinar [Home Assistant Support 101 - Getting around in Home Assistant][webinar] later this month. Make sure to RSVP. + +After the conference part of PyCon was over we spent one extra day to host a Home Assistant sprint. This allowed us to help people get started with hacking on Home Assistant which lead to some great contributions. + +

+ Home Assistant sprint group photo + Home Assistant sprint group photo. +

+ +I've had a really great time at PyCon. It was awesome to meet everyone in person and I hope to see many of you next year! + +[PyCon 2016]: https://us.pycon.org/2016/ +[Paulus (@balloob)]: https://github.com/balloob/ +[Alex (@infamy)]: https://github.com/infamy/ +[Ryan (@rmkraus)]: https://github.com/rmkraus/ +[@jbags81]: https://github.com/jbags81/ +[slides]: https://docs.google.com/presentation/d/1F1pGOoSf0dD79Dl5dgys0ll7xiuIA4XiQeNeJ-xlqMg/edit +[webinar]: https://www.eventbrite.com/e/home-assistant-support-101-getting-around-in-home-assistant-tickets-25943868810 diff --git a/source/demo/core.js b/source/demo/core.js index d3b32bf1226..b6a65500a3b 100644 --- a/source/demo/core.js +++ b/source/demo/core.js @@ -1,5 +1,5 @@ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,e,n){Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:n})},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=134)}([,function(t,e,n){!function(e,n){t.exports=n()}(this,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return t[r].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}Object.defineProperty(e,"__esModule",{value:!0}),n(1);var i=n(2),o=r(i),u=n(6),a=r(u),s=n(3),c=r(s),f=n(5),l=n(11),h=n(10),_=n(7),d=r(_);e["default"]={Reactor:a["default"],Store:o["default"],Immutable:c["default"],isKeyPath:l.isKeyPath,isGetter:h.isGetter,toJS:f.toJS,toImmutable:f.toImmutable,isImmutable:f.isImmutable,createReactMixin:d["default"]},t.exports=e["default"]},function(t,e){"use strict";try{window.console&&console.log||(console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){}})}catch(n){}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t){return t instanceof c}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var n=0;ni;i++)r[i]=t[i+e];return r}function o(t){return void 0===t.size&&(t.size=t.__iterate(a)),t.size}function u(t,e){if("number"!=typeof e){var n=+e;if(""+n!==e)return NaN;e=n}return 0>e?o(t)+e:e}function a(){return!0}function s(t,e,n){return(0===t||void 0!==n&&-n>=t)&&(void 0===e||void 0!==n&&e>=n)}function c(t,e){return l(t,e,0)}function f(t,e){return l(t,e,e)}function l(t,e,n){return void 0===t?n:0>t?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function h(t){return v(t)?t:C(t)}function _(t){return y(t)?t:M(t)}function d(t){return m(t)?t:k(t)}function p(t){return v(t)&&!g(t)?t:R(t)}function v(t){return!(!t||!t[pn])}function y(t){return!(!t||!t[vn])}function m(t){return!(!t||!t[yn])}function g(t){return y(t)||m(t)}function S(t){return!(!t||!t[mn])}function b(t){this.next=t}function w(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function E(){return{value:void 0,done:!0}}function I(t){return!!A(t)}function T(t){return t&&"function"==typeof t.next}function O(t){var e=A(t);return e&&e.call(t)}function A(t){var e=t&&(wn&&t[wn]||t[En]);return"function"==typeof e?e:void 0}function D(t){return t&&"number"==typeof t.length}function C(t){return null===t||void 0===t?H():v(t)?t.toSeq():V(t)}function M(t){return null===t||void 0===t?H().toKeyedSeq():v(t)?y(t)?t.toSeq():t.fromEntrySeq():U(t)}function k(t){return null===t||void 0===t?H():v(t)?y(t)?t.entrySeq():t.toIndexedSeq():x(t)}function R(t){return(null===t||void 0===t?H():v(t)?y(t)?t.entrySeq():t:x(t)).toSetSeq()}function z(t){this._array=t,this.size=t.length}function L(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function j(t){this._iterable=t,this.size=t.length||t.size}function N(t){this._iterator=t,this._iteratorCache=[]}function P(t){return!(!t||!t[Tn])}function H(){return On||(On=new z([]))}function U(t){var e=Array.isArray(t)?new z(t).fromEntrySeq():T(t)?new N(t).fromEntrySeq():I(t)?new j(t).fromEntrySeq():"object"==typeof t?new L(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function x(t){var e=q(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function V(t){var e=q(t)||"object"==typeof t&&new L(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function q(t){return D(t)?new z(t):T(t)?new N(t):I(t)?new j(t):void 0}function G(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,u=0;o>=u;u++){var a=i[n?o-u:u];if(e(a[1],r?a[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,n)}function F(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,u=0;return new b(function(){var t=i[n?o-u:u];return u++>o?E():w(e,r?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,n)}function K(){throw TypeError("Abstract")}function Y(){}function B(){}function J(){}function W(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function Z(t,e){return e?X(e,t,"",{"":t}):Q(t)}function X(t,e,n,r){return Array.isArray(e)?t.call(r,n,k(e).map(function(n,r){return X(t,n,r,e)})):$(e)?t.call(r,n,M(e).map(function(n,r){return X(t,n,r,e)})):e}function Q(t){return Array.isArray(t)?k(t).map(Q).toList():$(t)?M(t).map(Q).toMap():t}function $(t){return t&&(t.constructor===Object||void 0===t.constructor)}function tt(t){return t>>>1&1073741824|3221225471&t}function et(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return tt(n)}return"string"===e?t.length>Ln?nt(t):rt(t):"function"==typeof t.hashCode?t.hashCode():it(t)}function nt(t){var e=Pn[t];return void 0===e&&(e=rt(t),Nn===jn&&(Nn=0,Pn={}),Nn++,Pn[t]=e),e}function rt(t){for(var e=0,n=0;n0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ut(t,e){if(!t)throw new Error(e)}function at(t){ut(t!==1/0,"Cannot perform this action with an infinite size.")}function st(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ct(t){this._iter=t,this.size=t.size}function ft(t){this._iter=t,this.size=t.size}function lt(t){this._iter=t,this.size=t.size}function ht(t){var e=zt(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=Lt,e.__iterateUncached=function(e,n){var r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===bn){var r=t.__iterator(e,n);return new b(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===Sn?gn:Sn,n)},e}function _t(t,e,n){var r=zt(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,hn);return o===hn?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate(function(t,i,u){return r(e.call(n,t,i,u),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(bn,i);return new b(function(){var i=o.next();if(i.done)return i;var u=i.value,a=u[0];return w(r,a,e.call(n,u[1],a,t),i)})},r}function dt(t,e){var n=zt(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=ht(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.includes=function(e){return t.includes(e)},n.cacheResult=Lt,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function pt(t,e,n,r){var i=zt(t);return r&&(i.has=function(r){var i=t.get(r,hn);return i!==hn&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,hn);return o!==hn&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,a=0;return t.__iterate(function(t,o,s){return e.call(n,t,o,s)?(a++,i(t,r?o:a-1,u)):void 0},o),a},i.__iteratorUncached=function(i,o){var u=t.__iterator(bn,o),a=0;return new b(function(){for(;;){var o=u.next();if(o.done)return o;var s=o.value,c=s[0],f=s[1];if(e.call(n,f,c,t))return w(i,r?c:a++,f,o)}})},i}function vt(t,e,n){var r=Pt().asMutable();return t.__iterate(function(i,o){r.update(e.call(n,i,o,t),0,function(t){return t+1})}),r.asImmutable()}function yt(t,e,n){var r=y(t),i=(S(t)?Ee():Pt()).asMutable();t.__iterate(function(o,u){i.update(e.call(n,o,u,t),function(t){return t=t||[],t.push(r?[u,o]:o),t})});var o=Rt(t);return i.map(function(e){return Ct(t,o(e))})}function mt(t,e,n,r){var i=t.size;if(void 0!==e&&(e=0|e),void 0!==n&&(n=0|n),s(e,n,i))return t;var o=c(e,i),a=f(n,i);if(o!==o||a!==a)return mt(t.toSeq().cacheResult(),e,n,r);var l,h=a-o;h===h&&(l=0>h?0:h);var _=zt(t);return _.size=0===l?l:t.size&&l||void 0,!r&&P(t)&&l>=0&&(_.get=function(e,n){return e=u(this,e),e>=0&&l>e?t.get(e+o,n):n}),_.__iterateUncached=function(e,n){var i=this;if(0===l)return 0;if(n)return this.cacheResult().__iterate(e,n);var u=0,a=!0,s=0;return t.__iterate(function(t,n){return a&&(a=u++l)return E();var t=i.next();return r||e===Sn?t:e===gn?w(e,a-1,void 0,t):w(e,a-1,t.value[1],t)})},_}function gt(t,e,n){var r=zt(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var u=0;return t.__iterate(function(t,i,a){return e.call(n,t,i,a)&&++u&&r(t,i,o)}),u},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var u=t.__iterator(bn,i),a=!0;return new b(function(){if(!a)return E();var t=u.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?r===bn?t:w(r,s,c,t):(a=!1,E())})},r}function St(t,e,n,r){var i=zt(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,s=0;return t.__iterate(function(t,o,c){return a&&(a=e.call(n,t,o,c))?void 0:(s++,i(t,r?o:s-1,u))}),s},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(bn,o),s=!0,c=0;return new b(function(){var t,o,f;do{if(t=a.next(),t.done)return r||i===Sn?t:i===gn?w(i,c++,void 0,t):w(i,c++,t.value[1],t);var l=t.value;o=l[0],f=l[1],s&&(s=e.call(n,f,o,u))}while(s);return i===bn?t:w(i,o,f,t)})},i}function bt(t,e){var n=y(t),r=[t].concat(e).map(function(t){return v(t)?n&&(t=_(t)):t=n?U(t):x(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===r.length)return t;if(1===r.length){var i=r[0];if(i===t||n&&y(i)||m(t)&&m(i))return i}var o=new z(r);return n?o=o.toKeyedSeq():m(t)||(o=o.toSetSeq()),o=o.flatten(!0),o.size=r.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),o}function wt(t,e,n){var r=zt(t);return r.__iterateUncached=function(r,i){function o(t,s){var c=this;t.__iterate(function(t,i){return(!e||e>s)&&v(t)?o(t,s+1):r(t,n?i:u++,c)===!1&&(a=!0),!a},i)}var u=0,a=!1;return o(t,0),u},r.__iteratorUncached=function(r,i){var o=t.__iterator(r,i),u=[],a=0;return new b(function(){for(;o;){var t=o.next();if(t.done===!1){var s=t.value;if(r===bn&&(s=s[1]),e&&!(u.length0}function Dt(t,e,n){var r=zt(t);return r.size=new z(n).map(function(t){return t.size}).min(),r.__iterate=function(t,e){for(var n,r=this.__iterator(Sn,e),i=0;!(n=r.next()).done&&t(n.value,i++,this)!==!1;);return i},r.__iteratorUncached=function(t,r){var i=n.map(function(t){return t=h(t),O(r?t.reverse():t)}),o=0,u=!1;return new b(function(){var n;return u||(n=i.map(function(t){return t.next()}),u=n.some(function(t){return t.done})),u?E():w(t,o++,e.apply(null,n.map(function(t){return t.value})))})},r}function Ct(t,e){return P(t)?e:t.constructor(e)}function Mt(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function kt(t){return at(t.size),o(t)}function Rt(t){return y(t)?_:m(t)?d:p}function zt(t){return Object.create((y(t)?M:m(t)?k:R).prototype)}function Lt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):C.prototype.cacheResult.call(this)}function jt(t,e){return t>e?1:e>t?-1:0}function Nt(t){var e=O(t);if(!e){if(!D(t))throw new TypeError("Expected iterable or array-like: "+t);e=O(h(t))}return e}function Pt(t){return null===t||void 0===t?Jt():Ht(t)&&!S(t)?t:Jt().withMutations(function(e){var n=_(t);at(n.size),n.forEach(function(t,n){return e.set(n,t)})})}function Ht(t){return!(!t||!t[Hn])}function Ut(t,e){this.ownerID=t,this.entries=e}function xt(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n}function Vt(t,e,n){this.ownerID=t,this.count=e,this.nodes=n}function qt(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n}function Gt(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n}function Ft(t,e,n){this._type=e,this._reverse=n,this._stack=t._root&&Yt(t._root)}function Kt(t,e){return w(t,e[0],e[1])}function Yt(t,e){return{node:t,index:0,__prev:e}}function Bt(t,e,n,r){var i=Object.create(Un);return i.size=t,i._root=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Jt(){return xn||(xn=Bt(0))}function Wt(t,n,r){var i,o;if(t._root){var u=e(_n),a=e(dn);if(i=Zt(t._root,t.__ownerID,0,void 0,n,r,u,a),!a.value)return t;o=t.size+(u.value?r===hn?-1:1:0)}else{if(r===hn)return t;o=1,i=new Ut(t.__ownerID,[[n,r]])}return t.__ownerID?(t.size=o,t._root=i,t.__hash=void 0,t.__altered=!0,t):i?Bt(o,i):Jt()}function Zt(t,e,r,i,o,u,a,s){return t?t.update(e,r,i,o,u,a,s):u===hn?t:(n(s),n(a),new Gt(e,i,[o,u]))}function Xt(t){return t.constructor===Gt||t.constructor===qt}function Qt(t,e,n,r,i){if(t.keyHash===r)return new qt(e,r,[t.entry,i]);var o,u=(0===n?t.keyHash:t.keyHash>>>n)&ln,a=(0===n?r:r>>>n)&ln,s=u===a?[Qt(t,e,n+cn,r,i)]:(o=new Gt(e,r,i),a>u?[t,o]:[o,t]);return new xt(e,1<a;a++,s<<=1){var f=e[a];void 0!==f&&a!==r&&(i|=s,u[o++]=f)}return new xt(t,i,u)}function ee(t,e,n,r,i){for(var o=0,u=new Array(fn),a=0;0!==n;a++,n>>>=1)u[a]=1&n?e[o++]:void 0;return u[r]=i,new Vt(t,o+1,u)}function ne(t,e,n){for(var r=[],i=0;i>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function ae(t,e,n,r){var o=r?t:i(t);return o[e]=n,o}function se(t,e,n,r){var i=t.length+1;if(r&&e+1===i)return t[e]=n,t;for(var o=new Array(i),u=0,a=0;i>a;a++)a===e?(o[a]=n,u=-1):o[a]=t[a+u];return o}function ce(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var i=new Array(r),o=0,u=0;r>u;u++)u===e&&(o=1),i[u]=t[u+o];return i}function fe(t){var e=pe();if(null===t||void 0===t)return e;if(le(t))return t;var n=d(t),r=n.size;return 0===r?e:(at(r),r>0&&fn>r?de(0,r,cn,null,new he(n.toArray())):e.withMutations(function(t){t.setSize(r),n.forEach(function(e,n){return t.set(n,e)})}))}function le(t){return!(!t||!t[Fn])}function he(t,e){this.array=t,this.ownerID=e}function _e(t,e){function n(t,e,n){return 0===e?r(t,n):i(t,e,n)}function r(t,n){var r=n===a?s&&s.array:t&&t.array,i=n>o?0:o-n,c=u-n;return c>fn&&(c=fn),function(){if(i===c)return Bn;var t=e?--c:i++;return r&&r[t]}}function i(t,r,i){var a,s=t&&t.array,c=i>o?0:o-i>>r,f=(u-i>>r)+1;return f>fn&&(f=fn),function(){for(;;){if(a){var t=a();if(t!==Bn)return t;a=null}if(c===f)return Bn;var o=e?--f:c++;a=n(s&&s[o],r-cn,i+(o<=t.size||0>n)return t.withMutations(function(t){0>n?Se(t,n).set(0,r):Se(t,0,n+1).set(n,r)});n+=t._origin;var i=t._tail,o=t._root,a=e(dn);return n>=we(t._capacity)?i=ye(i,t.__ownerID,0,n,r,a):o=ye(o,t.__ownerID,t._level,n,r,a),a.value?t.__ownerID?(t._root=o,t._tail=i,t.__hash=void 0,t.__altered=!0,t):de(t._origin,t._capacity,t._level,o,i):t}function ye(t,e,r,i,o,u){var a=i>>>r&ln,s=t&&a0){var f=t&&t.array[a],l=ye(f,e,r-cn,i,o,u);return l===f?t:(c=me(t,e),c.array[a]=l,c)}return s&&t.array[a]===o?t:(n(u),c=me(t,e),void 0===o&&a===c.array.length-1?c.array.pop():c.array[a]=o,c)}function me(t,e){return e&&t&&e===t.ownerID?t:new he(t?t.array.slice():[],e)}function ge(t,e){if(e>=we(t._capacity))return t._tail;if(e<1<0;)n=n.array[e>>>r&ln],r-=cn;return n}}function Se(t,e,n){void 0!==e&&(e=0|e),void 0!==n&&(n=0|n);var i=t.__ownerID||new r,o=t._origin,u=t._capacity,a=o+e,s=void 0===n?u:0>n?u+n:o+n;if(a===o&&s===u)return t;if(a>=s)return t.clear();for(var c=t._level,f=t._root,l=0;0>a+l;)f=new he(f&&f.array.length?[void 0,f]:[],i),c+=cn,l+=1<=1<_?ge(t,s-1):_>h?new he([],i):d;if(d&&_>h&&u>a&&d.array.length){f=me(f,i);for(var v=f,y=c;y>cn;y-=cn){var m=h>>>y&ln;v=v.array[m]=me(v.array[m],i)}v.array[h>>>cn&ln]=d}if(u>s&&(p=p&&p.removeAfter(i,0,s)),a>=_)a-=_,s-=_,c=cn,f=null,p=p&&p.removeBefore(i,0,a);else if(a>o||h>_){for(l=0;f;){var g=a>>>c&ln;if(g!==_>>>c&ln)break;g&&(l+=(1<o&&(f=f.removeBefore(i,c,a-l)),f&&h>_&&(f=f.removeAfter(i,c,_-l)),l&&(a-=l,s-=l)}return t.__ownerID?(t.size=s-a,t._origin=a,t._capacity=s,t._level=c,t._root=f,t._tail=p,t.__hash=void 0,t.__altered=!0,t):de(a,s,c,f,p)}function be(t,e,n){for(var r=[],i=0,o=0;oi&&(i=a.size),v(u)||(a=a.map(function(t){return Z(t)})),r.push(a)}return i>t.size&&(t=t.setSize(i)),ie(t,e,r)}function we(t){return fn>t?0:t-1>>>cn<=fn&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&a!==e}),r=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=a===u.size-1?u.pop():u.set(a,void 0))}else if(s){if(n===u.get(a)[1])return t;r=o,i=u.set(a,[e,n])}else r=o.set(e,u.size),i=u.set(u.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):Te(r,i)}function De(t){return null===t||void 0===t?ke():Ce(t)?t:ke().unshiftAll(t)}function Ce(t){return!(!t||!t[Wn])}function Me(t,e,n,r){var i=Object.create(Zn);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function ke(){return Xn||(Xn=Me(0))}function Re(t){return null===t||void 0===t?Ne():ze(t)&&!S(t)?t:Ne().withMutations(function(e){var n=p(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function ze(t){return!(!t||!t[Qn])}function Le(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function je(t,e){var n=Object.create($n);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function Ne(){return tr||(tr=je(Jt()))}function Pe(t){return null===t||void 0===t?xe():He(t)?t:xe().withMutations(function(e){var n=p(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function He(t){return ze(t)&&S(t)}function Ue(t,e){var n=Object.create(er);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function xe(){return nr||(nr=Ue(Oe()))}function Ve(t,e){var n,r=function(o){if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var u=Object.keys(t);Fe(i,u),i.size=u.length,i._name=e,i._keys=u,i._defaultValues=t}this._map=Pt(o)},i=r.prototype=Object.create(rr);return i.constructor=r,r}function qe(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Ge(t){return t._name||t.constructor.name||"Record"}function Fe(t,e){try{e.forEach(Ke.bind(void 0,t))}catch(n){}}function Ke(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){ut(this.__ownerID,"Cannot set on an immutable record."),this.set(e,t)}})}function Ye(t,e){if(t===e)return!0;if(!v(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||y(t)!==y(e)||m(t)!==m(e)||S(t)!==S(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!g(t);if(S(t)){var r=t.entries();return e.every(function(t,e){var i=r.next().value;return i&&W(i[1],t)&&(n||W(i[0],e))})&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var u=!0,a=e.__iterate(function(e,r){return(n?t.has(e):i?W(e,t.get(r,hn)):W(t.get(r,hn),e))?void 0:(u=!1,!1)});return u&&t.size===a}function Be(t,e,n){if(!(this instanceof Be))return new Be(t,e,n);if(ut(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),t>e&&(n=-n),this._start=t,this._end=e,this._step=n,this.size=Math.max(0,Math.ceil((e-t)/n-1)+1),0===this.size){if(ir)return ir;ir=this}}function Je(t,e){if(!(this instanceof Je))return new Je(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(or)return or;or=this}}function We(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}function Ze(t,e){return e}function Xe(t,e){return[e,t]}function Qe(t){return function(){return!t.apply(this,arguments)}}function $e(t){return function(){return-t.apply(this,arguments)}}function tn(t){return"string"==typeof t?JSON.stringify(t):t}function en(){return i(arguments)}function nn(t,e){return e>t?1:t>e?-1:0}function rn(t){if(t.size===1/0)return 0;var e=S(t),n=y(t),r=e?1:0,i=t.__iterate(n?e?function(t,e){r=31*r+un(et(t),et(e))|0}:function(t,e){r=r+un(et(t),et(e))|0}:e?function(t){r=31*r+et(t)|0}:function(t){r=r+et(t)|0});return on(i,r)}function on(t,e){return e=Dn(e,3432918353),e=Dn(e<<15|e>>>-15,461845907),e=Dn(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Dn(e^e>>>16,2246822507),e=Dn(e^e>>>13,3266489909),e=tt(e^e>>>16)}function un(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var an=Array.prototype.slice,sn="delete",cn=5,fn=1<=i;i++)if(t(n[e?r-i:i],i,this)===!1)return i+1;return i},z.prototype.__iterator=function(t,e){var n=this._array,r=n.length-1,i=0;return new b(function(){return i>r?E():w(t,i,n[e?r-i++:i++])})},t(L,M),L.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},L.prototype.has=function(t){return this._object.hasOwnProperty(t)},L.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,i=r.length-1,o=0;i>=o;o++){var u=r[e?i-o:o];if(t(n[u],u,this)===!1)return o+1}return o},L.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new b(function(){var u=r[e?i-o:o];return o++>i?E():w(t,u,n[u])})},L.prototype[mn]=!0,t(j,k),j.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=this._iterable,r=O(n),i=0;if(T(r))for(var o;!(o=r.next()).done&&t(o.value,i++,this)!==!1;);return i},j.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=O(n);if(!T(r))return new b(E);var i=0;return new b(function(){var e=r.next();return e.done?e:w(t,i++,e.value)})},t(N,k),N.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var n=this._iterator,r=this._iteratorCache,i=0;i=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return w(t,i,r[i++])})};var On;t(K,h),t(Y,K),t(B,K),t(J,K),K.Keyed=Y,K.Indexed=B,K.Set=J;var An,Dn="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){t=0|t,e=0|e;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Cn=Object.isExtensible,Mn=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),kn="function"==typeof WeakMap;kn&&(An=new WeakMap);var Rn=0,zn="__immutablehash__";"function"==typeof Symbol&&(zn=Symbol(zn));var Ln=16,jn=255,Nn=0,Pn={};t(st,M),st.prototype.get=function(t,e){return this._iter.get(t,e)},st.prototype.has=function(t){return this._iter.has(t)},st.prototype.valueSeq=function(){return this._iter.valueSeq()},st.prototype.reverse=function(){var t=this,e=dt(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},st.prototype.map=function(t,e){var n=this,r=_t(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},st.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?kt(this):0,function(i){return t(i,e?--n:n++,r)}),e)},st.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(Sn,e),r=e?kt(this):0;return new b(function(){var i=n.next();return i.done?i:w(t,e?--r:r++,i.value,i)})},st.prototype[mn]=!0,t(ct,k),ct.prototype.includes=function(t){return this._iter.includes(t)},ct.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n)},e)},ct.prototype.__iterator=function(t,e){var n=this._iter.__iterator(Sn,e),r=0;return new b(function(){var e=n.next();return e.done?e:w(t,r++,e.value,e)})},t(ft,R),ft.prototype.has=function(t){return this._iter.includes(t)},ft.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},ft.prototype.__iterator=function(t,e){var n=this._iter.__iterator(Sn,e);return new b(function(){var e=n.next();return e.done?e:w(t,e.value,e.value,e)})},t(lt,M),lt.prototype.entrySeq=function(){return this._iter.toSeq()},lt.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){ -if(e){Mt(e);var r=v(e);return t(r?e.get(1):e[1],r?e.get(0):e[0],n)}},e)},lt.prototype.__iterator=function(t,e){var n=this._iter.__iterator(Sn,e);return new b(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r){Mt(r);var i=v(r);return w(t,i?r.get(0):r[0],i?r.get(1):r[1],e)}}})},ct.prototype.cacheResult=st.prototype.cacheResult=ft.prototype.cacheResult=lt.prototype.cacheResult=Lt,t(Pt,Y),Pt.prototype.toString=function(){return this.__toString("Map {","}")},Pt.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Pt.prototype.set=function(t,e){return Wt(this,t,e)},Pt.prototype.setIn=function(t,e){return this.updateIn(t,hn,function(){return e})},Pt.prototype.remove=function(t){return Wt(this,t,hn)},Pt.prototype.deleteIn=function(t){return this.updateIn(t,function(){return hn})},Pt.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},Pt.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=oe(this,Nt(t),e,n);return r===hn?void 0:r},Pt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Jt()},Pt.prototype.merge=function(){return ne(this,void 0,arguments)},Pt.prototype.mergeWith=function(t){var e=an.call(arguments,1);return ne(this,t,e)},Pt.prototype.mergeIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},Pt.prototype.mergeDeep=function(){return ne(this,re(void 0),arguments)},Pt.prototype.mergeDeepWith=function(t){var e=an.call(arguments,1);return ne(this,re(t),e)},Pt.prototype.mergeDeepIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},Pt.prototype.sort=function(t){return Ee(Tt(this,t))},Pt.prototype.sortBy=function(t,e){return Ee(Tt(this,e,t))},Pt.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Pt.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},Pt.prototype.asImmutable=function(){return this.__ensureOwner()},Pt.prototype.wasAltered=function(){return this.__altered},Pt.prototype.__iterator=function(t,e){return new Ft(this,t,e)},Pt.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},Pt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Bt(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Pt.isMap=Ht;var Hn="@@__IMMUTABLE_MAP__@@",Un=Pt.prototype;Un[Hn]=!0,Un[sn]=Un.remove,Un.removeIn=Un.deleteIn,Ut.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(W(n,i[o][0]))return i[o][1];return r},Ut.prototype.update=function(t,e,r,o,u,a,s){for(var c=u===hn,f=this.entries,l=0,h=f.length;h>l&&!W(o,f[l][0]);l++);var _=h>l;if(_?f[l][1]===u:c)return this;if(n(s),(c||!_)&&n(a),!c||1!==f.length){if(!_&&!c&&f.length>=Vn)return $t(t,f,o,u);var d=t&&t===this.ownerID,p=d?f:i(f);return _?c?l===h-1?p.pop():p[l]=p.pop():p[l]=[o,u]:p.push([o,u]),d?(this.entries=p,this):new Ut(t,p)}},xt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=1<<((0===t?e:e>>>t)&ln),o=this.bitmap;return 0===(o&i)?r:this.nodes[ue(o&i-1)].get(t+cn,e,n,r)},xt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&ln,s=1<=qn)return ee(t,h,c,a,d);if(f&&!d&&2===h.length&&Xt(h[1^l]))return h[1^l];if(f&&d&&1===h.length&&Xt(d))return d;var p=t&&t===this.ownerID,v=f?d?c:c^s:c|s,y=f?d?ae(h,l,d,p):ce(h,l,p):se(h,l,d,p);return p?(this.bitmap=v,this.nodes=y,this):new xt(t,v,y)},Vt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=(0===t?e:e>>>t)&ln,o=this.nodes[i];return o?o.get(t+cn,e,n,r):r},Vt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&ln,s=i===hn,c=this.nodes,f=c[a];if(s&&!f)return this;var l=Zt(f,t,e+cn,n,r,i,o,u);if(l===f)return this;var h=this.count;if(f){if(!l&&(h--,Gn>h))return te(t,c,h,a)}else h++;var _=t&&t===this.ownerID,d=ae(c,a,l,_);return _?(this.count=h,this.nodes=d,this):new Vt(t,h,d)},qt.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(W(n,i[o][0]))return i[o][1];return r},qt.prototype.update=function(t,e,r,o,u,a,s){void 0===r&&(r=et(o));var c=u===hn;if(r!==this.keyHash)return c?this:(n(s),n(a),Qt(this,t,e,r,[o,u]));for(var f=this.entries,l=0,h=f.length;h>l&&!W(o,f[l][0]);l++);var _=h>l;if(_?f[l][1]===u:c)return this;if(n(s),(c||!_)&&n(a),c&&2===h)return new Gt(t,this.keyHash,f[1^l]);var d=t&&t===this.ownerID,p=d?f:i(f);return _?c?l===h-1?p.pop():p[l]=p.pop():p[l]=[o,u]:p.push([o,u]),d?(this.entries=p,this):new qt(t,this.keyHash,p)},Gt.prototype.get=function(t,e,n,r){return W(n,this.entry[0])?this.entry[1]:r},Gt.prototype.update=function(t,e,r,i,o,u,a){var s=o===hn,c=W(i,this.entry[0]);return(c?o===this.entry[1]:s)?this:(n(a),s?void n(u):c?t&&t===this.ownerID?(this.entry[1]=o,this):new Gt(t,this.keyHash,[i,o]):(n(u),Qt(this,t,e,et(i),[i,o])))},Ut.prototype.iterate=qt.prototype.iterate=function(t,e){for(var n=this.entries,r=0,i=n.length-1;i>=r;r++)if(t(n[e?i-r:r])===!1)return!1},xt.prototype.iterate=Vt.prototype.iterate=function(t,e){for(var n=this.nodes,r=0,i=n.length-1;i>=r;r++){var o=n[e?i-r:r];if(o&&o.iterate(t,e)===!1)return!1}},Gt.prototype.iterate=function(t,e){return t(this.entry)},t(Ft,b),Ft.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var n,r=e.node,i=e.index++;if(r.entry){if(0===i)return Kt(t,r.entry)}else if(r.entries){if(n=r.entries.length-1,n>=i)return Kt(t,r.entries[this._reverse?n-i:i])}else if(n=r.nodes.length-1,n>=i){var o=r.nodes[this._reverse?n-i:i];if(o){if(o.entry)return Kt(t,o.entry);e=this._stack=Yt(o,e)}continue}e=this._stack=this._stack.__prev}return E()};var xn,Vn=fn/4,qn=fn/2,Gn=fn/4;t(fe,B),fe.of=function(){return this(arguments)},fe.prototype.toString=function(){return this.__toString("List [","]")},fe.prototype.get=function(t,e){if(t=u(this,t),t>=0&&t>>e&ln;if(r>=this.array.length)return new he([],t);var i,o=0===r;if(e>0){var u=this.array[r];if(i=u&&u.removeBefore(t,e-cn,n),i===u&&o)return this}if(o&&!i)return this;var a=me(this,t);if(!o)for(var s=0;r>s;s++)a.array[s]=void 0;return i&&(a.array[r]=i),a},he.prototype.removeAfter=function(t,e,n){if(n===(e?1<>>e&ln;if(r>=this.array.length)return this;var i;if(e>0){var o=this.array[r];if(i=o&&o.removeAfter(t,e-cn,n),i===o&&r===this.array.length-1)return this}var u=me(this,t);return u.array.splice(r+1),i&&(u.array[r]=i),u};var Yn,Bn={};t(Ee,Pt),Ee.of=function(){return this(arguments)},Ee.prototype.toString=function(){return this.__toString("OrderedMap {","}")},Ee.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},Ee.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):Oe()},Ee.prototype.set=function(t,e){return Ae(this,t,e)},Ee.prototype.remove=function(t){return Ae(this,t,hn)},Ee.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},Ee.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},Ee.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},Ee.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?Te(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},Ee.isOrderedMap=Ie,Ee.prototype[mn]=!0,Ee.prototype[sn]=Ee.prototype.remove;var Jn;t(De,B),De.of=function(){return this(arguments)},De.prototype.toString=function(){return this.__toString("Stack [","]")},De.prototype.get=function(t,e){var n=this._head;for(t=u(this,t);n&&t--;)n=n.next;return n?n.value:e},De.prototype.peek=function(){return this._head&&this._head.value},De.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,n=arguments.length-1;n>=0;n--)e={value:arguments[n],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Me(t,e)},De.prototype.pushAll=function(t){if(t=d(t),0===t.size)return this;at(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):Me(e,n)},De.prototype.pop=function(){return this.slice(1)},De.prototype.unshift=function(){return this.push.apply(this,arguments)},De.prototype.unshiftAll=function(t){return this.pushAll(t)},De.prototype.shift=function(){return this.pop.apply(this,arguments)},De.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):ke()},De.prototype.slice=function(t,e){if(s(t,e,this.size))return this;var n=c(t,this.size),r=f(e,this.size);if(r!==this.size)return B.prototype.slice.call(this,t,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Me(i,o)},De.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Me(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},De.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var n=0,r=this._head;r&&t(r.value,n++,this)!==!1;)r=r.next;return n},De.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new b(function(){if(r){var e=r.value;return r=r.next,w(t,n++,e)}return E()})},De.isStack=Ce;var Wn="@@__IMMUTABLE_STACK__@@",Zn=De.prototype;Zn[Wn]=!0,Zn.withMutations=Un.withMutations,Zn.asMutable=Un.asMutable,Zn.asImmutable=Un.asImmutable,Zn.wasAltered=Un.wasAltered;var Xn;t(Re,J),Re.of=function(){return this(arguments)},Re.fromKeys=function(t){return this(_(t).keySeq())},Re.prototype.toString=function(){return this.__toString("Set {","}")},Re.prototype.has=function(t){return this._map.has(t)},Re.prototype.add=function(t){return Le(this,this._map.set(t,!0))},Re.prototype.remove=function(t){return Le(this,this._map.remove(t))},Re.prototype.clear=function(){return Le(this,this._map.clear())},Re.prototype.union=function(){var t=an.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n1?" by "+this._step:"")+" ]"},Be.prototype.get=function(t,e){return this.has(t)?this._start+u(this,t)*this._step:e},Be.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e=e?new Be(0,0):new Be(this.get(t,this._end),this.get(e,this._end),this._step))},Be.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var n=e/this._step;if(n>=0&&n=o;o++){if(t(i,o,this)===!1)return o+1;i+=e?-r:r}return o},Be.prototype.__iterator=function(t,e){var n=this.size-1,r=this._step,i=e?this._start+n*r:this._start,o=0;return new b(function(){var u=i;return i+=e?-r:r,o>n?E():w(t,o++,u)})},Be.prototype.equals=function(t){return t instanceof Be?this._start===t._start&&this._end===t._end&&this._step===t._step:Ye(this,t)};var ir;t(Je,k),Je.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Je.prototype.get=function(t,e){return this.has(t)?this._value:e},Je.prototype.includes=function(t){return W(this._value,t)},Je.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:new Je(this._value,f(e,n)-c(t,n))},Je.prototype.reverse=function(){return this},Je.prototype.indexOf=function(t){return W(this._value,t)?0:-1},Je.prototype.lastIndexOf=function(t){return W(this._value,t)?this.size:-1},Je.prototype.__iterate=function(t,e){for(var n=0;nt?this.count():this.size);var r=this.slice(0,t);return Ct(this,1===n?r:r.concat(i(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.toKeyedSeq().findLastKey(t,e);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(t){return Ct(this,wt(this,t,!1))},get:function(t,e){return t=u(this,t),0>t||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=u(this,t),t>=0&&(void 0!==this.size?this.size===1/0||t-1&&t%1===0&&t<=Number.MAX_VALUE}var i=Function.prototype.bind;e.isString=function(t){return"string"==typeof t||"[object String]"===n(t)},e.isArray=Array.isArray||function(t){return"[object Array]"===n(t)},"function"!=typeof/./&&"object"!=typeof Int8Array?e.isFunction=function(t){return"function"==typeof t||!1}:e.isFunction=function(t){return"[object Function]"===toString.call(t)},e.isObject=function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},e.extend=function(t){var e=arguments.length;if(!t||2>e)return t||{};for(var n=1;e>n;n++)for(var r=arguments[n],i=Object.keys(r),o=i.length,u=0;o>u;u++){var a=i[u];t[a]=r[a]}return t},e.clone=function(t){return e.isObject(t)?e.isArray(t)?t.slice():e.extend({},t):t},e.each=function(t,e,n){var i,o,u=t?t.length:0,a=-1;if(n&&(o=e,e=function(t,e,r){return o.call(n,t,e,r)}),r(u))for(;++ar;r++)n[r]=arguments[r];return new(i.apply(t,[null].concat(n)))};return e.__proto__=t,e.prototype=t.prototype,e}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return c["default"].Iterable.isIterable(t)}function o(t){return i(t)||!(0,f.isObject)(t)}function u(t){return i(t)?t.toJS():t}function a(t){return i(t)?t:c["default"].fromJS(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.isImmutable=i,e.isImmutableValue=o,e.toJS=u,e.toImmutable=a;var s=n(3),c=r(s),f=n(4)},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n0)){var e=this.reactorState.get("dirtyStores");if(0!==e.size){var n=c["default"].Set().withMutations(function(n){n.union(t.observerState.get("any")),e.forEach(function(e){var r=t.observerState.getIn(["stores",e]); -r&&n.union(r)})});n.forEach(function(e){var n=t.observerState.getIn(["observersMap",e]);if(n){var r=n.get("getter"),i=n.get("handler"),o=_.evaluate(t.prevReactorState,r),u=_.evaluate(t.reactorState,r);t.prevReactorState=o.reactorState,t.reactorState=u.reactorState;var a=o.result,s=u.result;c["default"].is(a,s)||i.call(null,s)}});var r=_.resetDirtyStores(this.reactorState);this.prevReactorState=r,this.reactorState=r}}}},{key:"batchStart",value:function(){this.__batchDepth++}},{key:"batchEnd",value:function(){if(this.__batchDepth--,this.__batchDepth<=0){this.__isDispatching=!0;try{this.__notify()}catch(t){throw this.__isDispatching=!1,t}this.__isDispatching=!1}}}]),t}();e["default"]=(0,y.toFactory)(g),t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n={};return(0,o.each)(e,function(e,r){n[r]=t.evaluate(e)}),n}Object.defineProperty(e,"__esModule",{value:!0});var o=n(4);e["default"]=function(t){return{getInitialState:function(){return i(t,this.getDataBindings())},componentDidMount:function(){var e=this;this.__unwatchFns=[],(0,o.each)(this.getDataBindings(),function(n,i){var o=t.observe(n,function(t){e.setState(r({},i,t))});e.__unwatchFns.push(o)})},componentWillUnmount:function(){for(;this.__unwatchFns.length;)this.__unwatchFns.shift()()}}},t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){return new R({result:t,reactorState:e})}function o(t,e){return t.withMutations(function(t){(0,k.each)(e,function(e,n){t.getIn(["stores",n])&&console.warn("Store already defined for id = "+n);var r=e.getInitialState();if(void 0===r&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store getInitialState() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(r))throw new Error("Store getInitialState() must return an immutable value, did you forget to call toImmutable");t.update("stores",function(t){return t.set(n,e)}).update("state",function(t){return t.set(n,r)}).update("dirtyStores",function(t){return t.add(n)}).update("storeStates",function(t){return E(t,[n])})}),w(t)})}function u(t,e){return t.withMutations(function(t){(0,k.each)(e,function(e,n){t.update("stores",function(t){return t.set(n,e)})})})}function a(t,e,n){if(void 0===e&&f(t,"throwOnUndefinedActionType"))throw new Error("`dispatch` cannot be called with an `undefined` action type.");var r=t.get("state"),i=t.get("dirtyStores"),o=r.withMutations(function(r){A["default"].dispatchStart(t,e,n),t.get("stores").forEach(function(o,u){var a=r.get(u),s=void 0;try{s=o.handle(a,e,n)}catch(c){throw A["default"].dispatchError(t,c.message),c}if(void 0===s&&f(t,"throwOnUndefinedStoreReturnValue")){var l="Store handler must return a value, did you forget a return statement";throw A["default"].dispatchError(t,l),new Error(l)}r.set(u,s),a!==s&&(i=i.add(u))}),A["default"].dispatchEnd(t,r,i)}),u=t.set("state",o).set("dirtyStores",i).update("storeStates",function(t){return E(t,i)});return w(u)}function s(t,e){var n=[],r=(0,D.toImmutable)({}).withMutations(function(r){(0,k.each)(e,function(e,i){var o=t.getIn(["stores",i]);if(o){var u=o.deserialize(e);void 0!==u&&(r.set(i,u),n.push(i))}})}),i=T["default"].Set(n);return t.update("state",function(t){return t.merge(r)}).update("dirtyStores",function(t){return t.union(i)}).update("storeStates",function(t){return E(t,n)})}function c(t,e,n){var r=e;(0,M.isKeyPath)(e)&&(e=(0,C.fromKeyPath)(e));var i=t.get("nextId"),o=(0,C.getStoreDeps)(e),u=T["default"].Map({id:i,storeDeps:o,getterKey:r,getter:e,handler:n}),a=void 0;return a=0===o.size?t.update("any",function(t){return t.add(i)}):t.withMutations(function(t){o.forEach(function(e){var n=["stores",e];t.hasIn(n)||t.setIn(n,T["default"].Set()),t.updateIn(["stores",e],function(t){return t.add(i)})})}),a=a.set("nextId",i+1).setIn(["observersMap",i],u),{observerState:a,entry:u}}function f(t,e){var n=t.getIn(["options",e]);if(void 0===n)throw new Error("Invalid option: "+e);return n}function l(t,e,n){var r=t.get("observersMap").filter(function(t){var r=t.get("getterKey"),i=!n||t.get("handler")===n;return i?(0,M.isKeyPath)(e)&&(0,M.isKeyPath)(r)?(0,M.isEqual)(e,r):e===r:!1});return t.withMutations(function(t){r.forEach(function(e){return h(t,e)})})}function h(t,e){return t.withMutations(function(t){var n=e.get("id"),r=e.get("storeDeps");0===r.size?t.update("any",function(t){return t.remove(n)}):r.forEach(function(e){t.updateIn(["stores",e],function(t){return t?t.remove(n):t})}),t.removeIn(["observersMap",n])})}function _(t){var e=t.get("state");return t.withMutations(function(t){var n=t.get("stores"),r=n.keySeq().toJS();n.forEach(function(n,r){var i=e.get(r),o=n.handleReset(i);if(void 0===o&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store handleReset() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(o))throw new Error("Store reset state must be an immutable value, did you forget to call toImmutable");t.setIn(["state",r],o)}),t.update("storeStates",function(t){return E(t,r)}),v(t)})}function d(t,e){var n=t.get("state");if((0,M.isKeyPath)(e))return i(n.getIn(e),t);if(!(0,C.isGetter)(e))throw new Error("evaluate must be passed a keyPath or Getter");if(g(t,e))return i(b(t,e),t);var r=(0,C.getDeps)(e).map(function(e){return d(t,e).result}),o=(0,C.getComputeFn)(e).apply(null,r);return i(o,S(t,e,o))}function p(t){var e={};return t.get("stores").forEach(function(n,r){var i=t.getIn(["state",r]),o=n.serialize(i);void 0!==o&&(e[r]=o)}),e}function v(t){return t.set("dirtyStores",T["default"].Set())}function y(t){return t}function m(t,e){var n=y(e);return t.getIn(["cache",n])}function g(t,e){var n=m(t,e);if(!n)return!1;var r=n.get("storeStates");return 0===r.size?!1:r.every(function(e,n){return t.getIn(["storeStates",n])===e})}function S(t,e,n){var r=y(e),i=t.get("dispatchId"),o=(0,C.getStoreDeps)(e),u=(0,D.toImmutable)({}).withMutations(function(e){o.forEach(function(n){var r=t.getIn(["storeStates",n]);e.set(n,r)})});return t.setIn(["cache",r],T["default"].Map({value:n,storeStates:u,dispatchId:i}))}function b(t,e){var n=y(e);return t.getIn(["cache",n,"value"])}function w(t){return t.update("dispatchId",function(t){return t+1})}function E(t,e){return t.withMutations(function(t){e.forEach(function(e){var n=t.has(e)?t.get(e)+1:1;t.set(e,n)})})}Object.defineProperty(e,"__esModule",{value:!0}),e.registerStores=o,e.replaceStores=u,e.dispatch=a,e.loadState=s,e.addObserver=c,e.getOption=f,e.removeObserver=l,e.removeObserverByEntry=h,e.reset=_,e.evaluate=d,e.serialize=p,e.resetDirtyStores=v;var I=n(3),T=r(I),O=n(9),A=r(O),D=n(5),C=n(10),M=n(11),k=n(4),R=T["default"].Record({result:null,reactorState:null})},function(t,e,n){"use strict";var r=n(8);e.dispatchStart=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.groupCollapsed("Dispatch: %s",e),console.group("payload"),console.debug(n),console.groupEnd())},e.dispatchError=function(t,e){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.debug("Dispatch error: "+e),console.groupEnd())},e.dispatchEnd=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&((0,r.getOption)(t,"logDirtyStores")&&console.log("Stores updated:",n.toList().toJS()),(0,r.getOption)(t,"logAppState")&&console.debug("Dispatch done, new state: ",e.toJS()),console.groupEnd())}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return(0,h.isArray)(t)&&(0,h.isFunction)(t[t.length-1])}function o(t){return t[t.length-1]}function u(t){return t.slice(0,t.length-1)}function a(t,e){e||(e=l["default"].Set());var n=l["default"].Set().withMutations(function(e){if(!i(t))throw new Error("getFlattenedDeps must be passed a Getter");u(t).forEach(function(t){if((0,_.isKeyPath)(t))e.add((0,f.List)(t));else{if(!i(t))throw new Error("Invalid getter, each dependency must be a KeyPath or Getter");e.union(a(t))}})});return e.union(n)}function s(t){if(!(0,_.isKeyPath)(t))throw new Error("Cannot create Getter from KeyPath: "+t);return[t,d]}function c(t){if(t.hasOwnProperty("__storeDeps"))return t.__storeDeps;var e=a(t).map(function(t){return t.first()}).filter(function(t){return!!t});return Object.defineProperty(t,"__storeDeps",{enumerable:!1,configurable:!1,writable:!1,value:e}),e}Object.defineProperty(e,"__esModule",{value:!0});var f=n(3),l=r(f),h=n(4),_=n(11),d=function(t){return t};e["default"]={isGetter:i,getComputeFn:o,getFlattenedDeps:a,getStoreDeps:c,getDeps:u,fromKeyPath:s},t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return(0,s.isArray)(t)&&!(0,s.isFunction)(t[t.length-1])}function o(t,e){var n=a["default"].List(t),r=a["default"].List(e);return a["default"].is(n,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.isKeyPath=i,e.isEqual=o;var u=n(3),a=r(u),s=n(4)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=(0,r.Map)({logDispatches:!1,logAppState:!1,logDirtyStores:!1,throwOnUndefinedActionType:!1,throwOnUndefinedStoreReturnValue:!1,throwOnNonImmutableStore:!1,throwOnDispatchInDispatch:!1});e.PROD_OPTIONS=i;var o=(0,r.Map)({logDispatches:!0,logAppState:!0,logDirtyStores:!0,throwOnUndefinedActionType:!0,throwOnUndefinedStoreReturnValue:!0,throwOnNonImmutableStore:!0,throwOnDispatchInDispatch:!0});e.DEBUG_OPTIONS=o;var u=(0,r.Record)({dispatchId:0,state:(0,r.Map)(),stores:(0,r.Map)(),cache:(0,r.Map)(),storeStates:(0,r.Map)(),dirtyStores:(0,r.Set)(),debug:!1,options:i});e.ReactorState=u;var a=(0,r.Record)({any:(0,r.Set)(),stores:(0,r.Map)({}),observersMap:(0,r.Map)({}),nextId:1});e.ObserverState=a}])})},function(t,e){"use strict";var n=function(t){var e,n={};if(!(t instanceof Object)||Array.isArray(t))throw new Error("keyMirror(...): Argument must be an object.");for(e in t)t.hasOwnProperty(e)&&(n[e]=e);return n};t.exports=n},function(t,e,n){"use strict";var r=n(58);n.d(e,"a",function(){return i});var i=r.a},function(t,e,n){"use strict";var r=n(80),i=n(82);n.d(e,"actions",function(){return o}),n.d(e,"getters",function(){return u});var o=r.a,u=i},,function(t,e,n){"use strict";function r(t){t.registerStores({restApiCache:c.a})}function i(t){return[["restApiCache",t.entity],function(t){return!!t}]}function o(t){return[["restApiCache",t.entity],function(t){return t||n.i(a.toImmutable)({})}]}function u(t){return function(e){return["restApiCache",t.entity,e]}}var a=n(1),s=a&&a.__esModule?function(){return a["default"]}:function(){return a};n.d(s,"a",s);var c=n(107),f=n(106);n.d(e,"createApiActions",function(){return l}),e.register=r,e.createHasDataGetter=i,e.createEntityMapGetter=o,e.createByIdGetter=u;var l=f.a},function(t,e,n){"use strict";var r=n(2),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i),e.a=i()({ENTITY_HISTORY_DATE_SELECTED:null,ENTITY_HISTORY_FETCH_START:null,ENTITY_HISTORY_FETCH_ERROR:null,ENTITY_HISTORY_FETCH_SUCCESS:null,RECENT_ENTITY_HISTORY_FETCH_START:null,RECENT_ENTITY_HISTORY_FETCH_ERROR:null,RECENT_ENTITY_HISTORY_FETCH_SUCCESS:null,LOG_OUT:null})},function(t,e,n){"use strict";var r=n(2),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i),e.a=i()({LOGBOOK_DATE_SELECTED:null,LOGBOOK_ENTRIES_FETCH_START:null,LOGBOOK_ENTRIES_FETCH_ERROR:null,LOGBOOK_ENTRIES_FETCH_SUCCESS:null})},function(t,e,n){"use strict";var r=n(108),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i);var o=n(39);n.d(e,"actions",function(){return u}),n.d(e,"getters",function(){return a});var u=i.a,a=o},function(t,e,n){"use strict";var r=n(2),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i),e.a=i()({VALIDATING_AUTH_TOKEN:null,VALID_AUTH_TOKEN:null,INVALID_AUTH_TOKEN:null,LOG_OUT:null})},function(t,e,n){"use strict";function r(t){t.registerStores({authAttempt:i.a,authCurrent:o.a,rememberAuth:u.a})}var i=n(61),o=n(62),u=n(63),a=n(59),s=n(60);e.register=r,n.d(e,"actions",function(){return c}),n.d(e,"getters",function(){return f});var c=a,f=s},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(81),c=n(25),f=n(3),l=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(s){i=!0,o=s}finally{try{!r&&a["return"]&&a["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),h=function(){function t(t,e){for(var n=0;nn;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(o){return!1}}var i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;t.exports=r()?Object.assign:function(t,e){for(var r,u,a=n(t),s=1;s6e4}e.a=r},,,,,,,,function(t,e,n){var r=n(180);t.exports=function(t,e,n){function i(){var f=r()-s;e>f&&f>0?o=setTimeout(i,e-f):(o=null,n||(c=t.apply(a,u),o||(a=u=null)))}var o,u,a,s,c;return null==e&&(e=100),function(){a=this,u=arguments,s=r();var f=n&&!o;return o||(o=setTimeout(i,e)),f&&(c=t.apply(a,u),a=u=null),c}}},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(104),o=n(129),u=n(131),a=n(133),s=n(11),c=n(16),f=n(4),l=n(31),h=n(84),_=n(17),d=n(89),p=n(34),v=n(37),y=n(19),m=n(44),g=n(9),S=n(21),b=n(23),w=n(120),E=n(126),I=n(6),T=function O(){r(this,O);var t=n.i(o.a)();Object.defineProperties(this,{demo:{value:1,enumerable:!0},localStoragePreferences:{value:i.a,enumerable:!0},reactor:{value:t,enumerable:!0},util:{value:a.a,enumerable:!0},startLocalStoragePreferencesSync:{value:i.a.startSync.bind(i.a,t)},startUrlSync:{value:v.urlSync.startSync.bind(null,t)},stopUrlSync:{value:v.urlSync.stopSync.bind(null,t)}}),n.i(u.a)(this,t,{auth:s,config:c,entity:f,entityHistory:l,errorLog:h,event:_,logbook:d,moreInfo:p,navigation:v,notification:y,view:m,service:g,stream:S,sync:b,template:w,voice:E,restApi:I})};e.a=T},,,function(t,e,n){"use strict";var r=n(11),i=function(t,e,n){var i=arguments.length<=3||void 0===arguments[3]?null:arguments[3],o=t.evaluate(r.getters.authInfo),u=o.host+"/api/"+n;return new Promise(function(t,n){var r=new XMLHttpRequest;r.open(e,u,!0),r.setRequestHeader("X-HA-access",o.authToken),r.onload=function(){var e=void 0;try{e="application/json"===r.getResponseHeader("content-type")?JSON.parse(r.responseText):r.responseText}catch(i){e=r.responseText}r.status>199&&r.status<300?t(e):n(e)},r.onerror=function(){return n({})},i?r.send(JSON.stringify(i)):r.send()})};i=function(t,e,r){return new Promise(function(t){if("GET"!==e)throw new Error("Method "+e+" not allowed in demo mode.");var i=r.split("/",1)[0];switch(i){case"bootstrap":t(n(68)["default"]);break;case"logbook":t(n(71)["default"]);break;case"history":t(n(73)["default"]);break;default:throw new Error("URL not implemented in demo mode /api/"+r)}})},e.a=i},function(t,e,n){"use strict";function r(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],r=n.useStreaming,i=(void 0===r?t.evaluate(u.getters.isSupported):r,n.rememberAuth),c=void 0===i?!1:i,f=n.host,l=void 0===f?"":f;t.dispatch(o.a.VALIDATING_AUTH_TOKEN,{authToken:e,host:l}),a.actions.fetchAll(t).then(function(){return t.dispatch(o.a.VALID_AUTH_TOKEN,{authToken:e,host:l,rememberAuth:c}),void t.dispatch("STREAM_START")},function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.message,r=void 0===n?s:n;t.dispatch(o.a.INVALID_AUTH_TOKEN,{errorMessage:r})})}function i(t){t.dispatch(o.a.LOG_OUT,{})}var o=n(10),u=n(21),a=n(23);e.validate=r,e.logOut=i;var s="Unexpected result from API"},function(t,e,n){"use strict";n.d(e,"isValidating",function(){return r}),n.d(e,"isInvalidAttempt",function(){return i}),n.d(e,"attemptErrorMessage",function(){return o}),n.d(e,"rememberAuth",function(){return u}),n.d(e,"attemptAuthInfo",function(){ -return a}),n.d(e,"currentAuthToken",function(){return s}),n.d(e,"currentAuthInfo",function(){return c}),n.d(e,"authToken",function(){return f}),n.d(e,"authInfo",function(){return l});var r=["authAttempt","isValidating"],i=["authAttempt","isInvalid"],o=["authAttempt","errorMessage"],u=["rememberAuth"],a=[["authAttempt","authToken"],["authAttempt","host"],function(t,e){return{authToken:t,host:e}}],s=["authCurrent","authToken"],c=[s,["authCurrent","host"],function(t,e){return{authToken:t,host:e}}],f=[r,["authAttempt","authToken"],["authCurrent","authToken"],function(t,e,n){return t?e:n}],l=[r,a,c,function(t,e,n){return t?e:n}]},function(t,e,n){"use strict";function r(t,e){var r=e.authToken,i=e.host;return n.i(u.toImmutable)({authToken:r,host:i,isValidating:!0,isInvalid:!1,errorMessage:""})}function i(){return c.getInitialState()}function o(t,e){var n=e.errorMessage;return t.withMutations(function(t){return t.set("isValidating",!1).set("isInvalid",!0).set("errorMessage",n)})}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(10),c=new u.Store({getInitialState:function(){return n.i(u.toImmutable)({isValidating:!1,authToken:!1,host:null,isInvalid:!1,errorMessage:""})},initialize:function(){this.on(s.a.VALIDATING_AUTH_TOKEN,r),this.on(s.a.VALID_AUTH_TOKEN,i),this.on(s.a.INVALID_AUTH_TOKEN,o)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var r=e.authToken,i=e.host;return n.i(o.toImmutable)({authToken:r,host:i})}function i(){return s.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(10),s=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({authToken:null,host:""})},initialize:function(){this.on(a.a.VALID_AUTH_TOKEN,r),this.on(a.a.LOG_OUT,i)}});e.a=s},function(t,e,n){"use strict";function r(t,e){var n=e.rememberAuth;return n}var i=n(1),o=i&&i.__esModule?function(){return i["default"]}:function(){return i};n.d(o,"a",o);var u=n(10),a=new i.Store({getInitialState:function(){return!0},initialize:function(){this.on(u.a.VALID_AUTH_TOKEN,r)}});e.a=a},function(t,e,n){"use strict";function r(t,e){t.dispatch(a.a.SERVER_CONFIG_LOADED,e)}function i(t){n.i(u.a)(t,"GET","config").then(function(e){return r(t,e)})}function o(t,e){t.dispatch(a.a.COMPONENT_LOADED,{component:e})}var u=n(3),a=n(15);e.configLoaded=r,e.fetchAll=i,e.componentLoaded=o},function(t,e,n){"use strict";function r(t){return[["serverComponent"],function(e){return e.contains(t)}]}n.d(e,"locationGPS",function(){return i}),n.d(e,"locationName",function(){return o}),n.d(e,"serverVersion",function(){return u}),e.isComponentLoaded=r;var i=[["serverConfig","latitude"],["serverConfig","longitude"],function(t,e){return{latitude:t,longitude:e}}],o=["serverConfig","location_name"],u=["serverConfig","serverVersion"]},function(t,e,n){"use strict";function r(t,e){var n=e.component;return t.push(n)}function i(t,e){var r=e.components;return n.i(u.toImmutable)(r)}function o(){return c.getInitialState()}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(15),c=new u.Store({getInitialState:function(){return n.i(u.toImmutable)([])},initialize:function(){this.on(s.a.COMPONENT_LOADED,r),this.on(s.a.SERVER_CONFIG_LOADED,i),this.on(s.a.LOG_OUT,o)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var r=e.latitude,i=e.longitude,u=e.location_name,a=e.temperature_unit,s=e.time_zone,c=e.version;return n.i(o.toImmutable)({latitude:r,longitude:i,location_name:u,temperature_unit:a,time_zone:s,serverVersion:c})}function i(){return s.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(15),s=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({latitude:null,longitude:null,location_name:"Home",temperature_unit:"°C",time_zone:"UTC",serverVersion:"unknown"})},initialize:function(){this.on(a.a.SERVER_CONFIG_LOADED,r),this.on(a.a.LOG_OUT,i)}});e.a=s},function(t,e,n){"use strict";var r=n(69),i=n(70),o=n(72),u=n(29);e["default"]={config:r.a,events:i.a,services:o.a,states:u.a}},function(t,e,n){"use strict";e.a={components:["configurator","http","api","frontend","history","conversation","logbook","introduction"],latitude:32.87336,location_name:"Home",longitude:-117.22743,temperature_unit:"°F",time_zone:"America/Los_Angeles",version:"0.9"}},function(t,e,n){"use strict";e.a=[{event:"call_service",listener_count:1},{event:"time_changed",listener_count:1},{event:"state_changed",listener_count:3},{event:"homeassistant_stop",listener_count:2}]},function(t,e,n){"use strict";e["default"]=[{domain:"sun",entity_id:"sun.sun",message:"has risen",name:"sun",when:"2015-04-24T06:08:47.000Z"},{domain:"device_tracker",entity_id:"device_tracker.paulus",message:"left home",name:"Paulus",when:"2015-04-24T08:54:47.000Z"},{domain:"device_tracker",entity_id:"device_tracker.anne_therese",message:"left home",name:"Anne Therese",when:"2015-04-24T09:08:47.000Z"},{domain:"group",entity_id:"group.all_devices",message:"left home",name:"All devices",when:"2015-04-24T09:08:47.000Z"},{domain:"thermostat",entity_id:"thermostat.nest",message:"changed to 17 °C",name:"Nest",when:"2015-04-24T09:08:47.000Z"},{domain:"thermostat",entity_id:"thermostat.nest",message:"changed to 21 °C",name:"Nest",when:"2015-04-24T16:00:47.000Z"},{domain:"device_tracker",entity_id:"device_tracker.anne_therese",message:"came home",name:"Anne Therese",when:"2015-04-24T16:24:47.000Z"},{domain:"group",entity_id:"group.all_devices",message:"came home",name:"All devices",when:"2015-04-24T16:24:47.000Z"},{domain:"light",entity_id:"light.bowl",message:"turned on",name:"Bowl",when:"2015-04-24T18:01:47.000Z"},{domain:"light",entity_id:"light.ceiling",message:"turned on",name:"Ceiling",when:"2015-04-24T18:16:47.000Z"},{domain:"light",entity_id:"light.tv_back_light",message:"turned on",name:"TV Back Light",when:"2015-04-24T18:31:47.000Z"},{domain:"sun",entity_id:"sun.sun",message:"has set",name:"sun",when:"2015-04-24T18:46:47.000Z"},{domain:"media_player",entity_id:"media_player.living_room",message:"changed to Plex",name:"Media Player",when:"2015-04-24T19:12:47.000Z"}]},function(t,e,n){"use strict";e.a=[{domain:"homeassistant",services:{stop:{description:"",fields:{}},turn_off:{description:"",fields:{}},turn_on:{description:"",fields:{}}}},{domain:"light",services:{turn_off:{description:"",fields:{}},turn_on:{description:"",fields:{}}}},{domain:"switch",services:{turn_off:{description:"",fields:{}},turn_on:{description:"",fields:{}}}},{domain:"input_boolean",services:{turn_off:{description:"",fields:{}},turn_on:{description:"",fields:{}}}},{domain:"configurator",services:{configure:{description:"",fields:{}}}}]},function(t,e,n){"use strict";function r(t){var e=new Date(Date.now()-60*t*1e3);return e.toISOString()}function i(t){return Math.random()*t-t/2}function o(t,e){s[t.entity_id]=!0;var n=void 0;n="string"==typeof e[0]?e.map(function(t){return{state:t}}):e;var o=900/n.length;c.push(n.map(function(e,n){var u=void 0;u=e.attributes||t.attributes?e.attributes?t.attributes?a()({},t.attributes,e.attributes):e.attributes:t.attributes:{};var s=r(0===n?f:f-n*o+i(o));return{attributes:u,entity_id:t.entity_id,state:e.state||t.state,last_changed:s,last_updated:s}}))}var u=n(28),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=(n(29),{"a.demo_mode":!0,"configurator.philips_hue":!0,"group.default_view":!0,"group.rooms_view":!0,"group.rooms":!0,"zone.school":!0,"zone.work":!0,"zone.home":!0,"group.general":!0,"camera.roundabout":!0,"script.water_lawn":!0,"scene.romantic":!0,"scene.good_morning":!0,"group.cooking":!0}),c=[],f=1440;o({entity_id:"sensor.humidity",attributes:{unit_of_measurement:"%"}},["45","49","52","49","52","49","45","42"]),o({entity_id:"sensor.temperature",attributes:{unit_of_measurement:"°C"}},["23","27","25","23","24"]),o({entity_id:"thermostat.nest",attributes:{unit_of_measurement:"°C"}},[{state:"23",attributes:{current_temperature:20,temperature:23}},{state:"23",attributes:{current_temperature:22,temperature:23}},{state:"20",attributes:{current_temperature:21,temperature:20}},{state:"20",attributes:{current_temperature:20,temperature:20}},{state:"20",attributes:{current_temperature:19,temperature:20}}]),o({entity_id:"media_player.living_room",attributes:{friendly_name:"Chromecast"}},["Plex","idle","YouTube","Netflix","idle","Plex"]),o({entity_id:"group.all_devices"},["home","not_home","home"]),o({entity_id:"device_tracker.paulus"},["home","not_home","work","not_home"]),o({entity_id:"device_tracker.anne_therese"},["home","not_home","home","not_home","school"]),o({entity_id:"garage_door.garage_door"},["open","closed","open"]),o({entity_id:"alarm_control_panel.home"},["disarmed","pending","armed_home","pending","disarmed","pending","armed_home"]),o({entity_id:"lock.kitchen_door"},["unlocked","locked","unlocked","locked"]),o({entity_id:"light.tv_back_light"},["on","off","on","off"]),o({entity_id:"light.ceiling"},["on","off","on"]),o({entity_id:"light.table_lamp"},["on","off","on"]),o({entity_id:"switch.ac"},["on","off","on"]),o({entity_id:"group.bedroom"},["on","off","on","off"]),o({entity_id:"group.living_room"},["on","off","on"]),o({entity_id:"switch.decorative_lights"},["on","off","on","off"]),o({entity_id:"light.bed_light"},["on","off","on","off"]),o({entity_id:"rollershutter.bedroom_window"},["open","closed","open","closed"]),o({entity_id:"input_select.cook_today"},["Anne Therese","Paulus"]),o({entity_id:"input_boolean.notify_cook"},["off","on"]);e["default"]=c},function(t,e,n){"use strict";function r(t,e){t.dispatch(s.a.ENTITY_HISTORY_DATE_SELECTED,{date:e})}function i(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];t.dispatch(s.a.RECENT_ENTITY_HISTORY_FETCH_START,{});var r="history/period";return null!==e&&(r+="?filter_entity_id="+e),n.i(a.a)(t,"GET",r).then(function(e){return t.dispatch(s.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,{stateHistory:e})},function(){return t.dispatch(s.a.RECENT_ENTITY_HISTORY_FETCH_ERROR,{})})}function o(t,e){return t.dispatch(s.a.ENTITY_HISTORY_FETCH_START,{date:e}),n.i(a.a)(t,"GET","history/period/"+e).then(function(n){return t.dispatch(s.a.ENTITY_HISTORY_FETCH_SUCCESS,{date:e,stateHistory:n})},function(){return t.dispatch(s.a.ENTITY_HISTORY_FETCH_ERROR,{})})}function u(t){var e=t.evaluate(c.currentDate);return o(t,e)}var a=n(3),s=n(7),c=n(30);e.changeCurrentDate=r,e.fetchRecent=i,e.fetchDate=o,e.fetchSelectedDate=u},function(t,e,n){"use strict";function r(t,e){var r=e.date;return n.i(a.a)(r)}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(24),s=n(7),c=new o.Store({getInitialState:function(){var t=new Date;return t.setDate(t.getUTCDate()-1),n.i(a.a)(t)},initialize:function(){this.on(s.a.ENTITY_HISTORY_DATE_SELECTED,r),this.on(s.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var r=e.date,i=e.stateHistory;return 0===i.length?t.set(r,n.i(o.toImmutable)({})):t.withMutations(function(t){i.forEach(function(e){return t.setIn([r,e[0].entity_id],n.i(o.toImmutable)(e.map(s.a.fromJSON)))})})}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(7),s=n(12),c=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({})},initialize:function(){this.on(a.a.ENTITY_HISTORY_FETCH_SUCCESS,r),this.on(a.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";var r=n(1),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i);var o=n(7),u=new r.Store({getInitialState:function(){return!1},initialize:function(){this.on(o.a.ENTITY_HISTORY_FETCH_START,function(){return!0}),this.on(o.a.ENTITY_HISTORY_FETCH_SUCCESS,function(){return!1}),this.on(o.a.ENTITY_HISTORY_FETCH_ERROR,function(){return!1}),this.on(o.a.RECENT_ENTITY_HISTORY_FETCH_START,function(){return!0}),this.on(o.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,function(){return!1}),this.on(o.a.RECENT_ENTITY_HISTORY_FETCH_ERROR,function(){return!1}),this.on(o.a.LOG_OUT,function(){return!1})}});e.a=u},function(t,e,n){"use strict";function r(t,e){var r=e.stateHistory;return t.withMutations(function(t){r.forEach(function(e){return t.set(e[0].entity_id,n.i(o.toImmutable)(e.map(s.a.fromJSON)))})})}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(7),s=n(12),c=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({})},initialize:function(){this.on(a.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,r),this.on(a.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var n=e.stateHistory,r=(new Date).getTime();return t.withMutations(function(t){n.forEach(function(e){return t.set(e[0].entity_id,r)}),history.length>1&&t.set(s,r)})}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(7),s="ALL_ENTRY_FETCH",c=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({})},initialize:function(){this.on(a.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,r),this.on(a.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";var r=n(6),i=n(12),o=n.i(r.createApiActions)(i.a);e.a=o},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=function(){function t(t,e){for(var n=0;nu}var i=n(1),o=i&&i.__esModule?function(){return i["default"]}:function(){return i};n.d(o,"a",o),n.d(e,"currentDate",function(){return a}),n.d(e,"isCurrentStale",function(){return s}),n.d(e,"currentEntries",function(){return c}),n.d(e,"isLoadingEntries",function(){return f});var u=6e4,a=["currentLogbookDate"],s=[a,["logbookEntriesUpdated"],function(t,e){return r(e.get(t))}],c=[a,["logbookEntries"],function(t,e){return e.get(t)||n.i(i.toImmutable)([])}],f=["isLoadingLogbookEntries"]},function(t,e,n){"use strict";function r(t){t.registerStores({currentLogbookDate:i.a,isLoadingLogbookEntries:o.a,logbookEntries:u.a,logbookEntriesUpdated:a.a})}var i=n(91),o=n(92),u=n(93),a=n(94),s=n(87),c=n(88);e.register=r,n.d(e,"actions",function(){return f}),n.d(e,"getters",function(){return l});var f=s,l=c},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(25),c=function(){function t(t,e){for(var n=0;ni;i++)r[i]=t[i+e];return r}function o(t){return void 0===t.size&&(t.size=t.__iterate(a)),t.size}function u(t,e){if("number"!=typeof e){var n=+e;if(""+n!==e)return NaN;e=n}return 0>e?o(t)+e:e}function a(){return!0}function s(t,e,n){return(0===t||void 0!==n&&-n>=t)&&(void 0===e||void 0!==n&&e>=n)}function c(t,e){return h(t,e,0)}function f(t,e){return h(t,e,e)}function h(t,e,n){return void 0===t?n:0>t?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function l(t){return v(t)?t:C(t)}function _(t){return y(t)?t:M(t)}function p(t){return S(t)?t:R(t)}function d(t){return v(t)&&!g(t)?t:k(t)}function v(t){return!(!t||!t[dn])}function y(t){return!(!t||!t[vn])}function S(t){return!(!t||!t[yn])}function g(t){return y(t)||S(t)}function m(t){return!(!t||!t[Sn])}function E(t){this.next=t}function b(t,e,n,r){var i=0===t?e:1===t?n:[e,n];return r?r.value=i:r={value:i,done:!1},r}function w(){return{value:void 0,done:!0}}function I(t){return!!A(t)}function T(t){return t&&"function"==typeof t.next}function O(t){var e=A(t);return e&&e.call(t)}function A(t){var e=t&&(bn&&t[bn]||t[wn]);return"function"==typeof e?e:void 0}function D(t){return t&&"number"==typeof t.length}function C(t){return null===t||void 0===t?U():v(t)?t.toSeq():V(t)}function M(t){return null===t||void 0===t?U().toKeyedSeq():v(t)?y(t)?t.toSeq():t.fromEntrySeq():H(t)}function R(t){return null===t||void 0===t?U():v(t)?y(t)?t.entrySeq():t.toIndexedSeq():x(t)}function k(t){return(null===t||void 0===t?U():v(t)?y(t)?t.entrySeq():t:x(t)).toSetSeq()}function z(t){this._array=t,this.size=t.length}function L(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function j(t){this._iterable=t,this.size=t.length||t.size}function N(t){this._iterator=t,this._iteratorCache=[]}function P(t){return!(!t||!t[Tn])}function U(){return On||(On=new z([]))}function H(t){var e=Array.isArray(t)?new z(t).fromEntrySeq():T(t)?new N(t).fromEntrySeq():I(t)?new j(t).fromEntrySeq():"object"==typeof t?new L(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function x(t){var e=q(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function V(t){var e=q(t)||"object"==typeof t&&new L(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function q(t){return D(t)?new z(t):T(t)?new N(t):I(t)?new j(t):void 0}function G(t,e,n,r){var i=t._cache;if(i){for(var o=i.length-1,u=0;o>=u;u++){var a=i[n?o-u:u];if(e(a[1],r?a[0]:u,t)===!1)return u+1}return u}return t.__iterateUncached(e,n)}function F(t,e,n,r){var i=t._cache;if(i){var o=i.length-1,u=0;return new E(function(){var t=i[n?o-u:u];return u++>o?w():b(e,r?t[0]:u-1,t[1])})}return t.__iteratorUncached(e,n)}function K(){throw TypeError("Abstract")}function Y(){}function B(){}function J(){}function W(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function X(t,e){return e?Q(e,t,"",{"":t}):Z(t)}function Q(t,e,n,r){return Array.isArray(e)?t.call(r,n,R(e).map(function(n,r){return Q(t,n,r,e)})):$(e)?t.call(r,n,M(e).map(function(n,r){return Q(t,n,r,e)})):e}function Z(t){return Array.isArray(t)?R(t).map(Z).toList():$(t)?M(t).map(Z).toMap():t}function $(t){return t&&(t.constructor===Object||void 0===t.constructor)}function tt(t){return t>>>1&1073741824|3221225471&t}function et(t){if(t===!1||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(t=t.valueOf(),t===!1||null===t||void 0===t))return 0;if(t===!0)return 1;var e=typeof t;if("number"===e){var n=0|t;for(n!==t&&(n^=4294967295*t);t>4294967295;)t/=4294967295,n^=t;return tt(n)}return"string"===e?t.length>Ln?nt(t):rt(t):"function"==typeof t.hashCode?t.hashCode():it(t)}function nt(t){var e=Pn[t];return void 0===e&&(e=rt(t),Nn===jn&&(Nn=0,Pn={}),Nn++,Pn[t]=e),e}function rt(t){for(var e=0,n=0;n0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ut(t,e){if(!t)throw new Error(e)}function at(t){ut(t!==1/0,"Cannot perform this action with an infinite size.")}function st(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ct(t){this._iter=t,this.size=t.size}function ft(t){this._iter=t,this.size=t.size}function ht(t){this._iter=t,this.size=t.size}function lt(t){var e=zt(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=Lt,e.__iterateUncached=function(e,n){var r=this;return t.__iterate(function(t,n){return e(n,t,r)!==!1},n)},e.__iteratorUncached=function(e,n){if(e===En){var r=t.__iterator(e,n);return new E(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===mn?gn:mn,n)},e}function _t(t,e,n){var r=zt(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,i){var o=t.get(r,ln);return o===ln?i:e.call(n,o,r,t)},r.__iterateUncached=function(r,i){var o=this;return t.__iterate(function(t,i,u){return r(e.call(n,t,i,u),i,o)!==!1},i)},r.__iteratorUncached=function(r,i){var o=t.__iterator(En,i);return new E(function(){var i=o.next();if(i.done)return i;var u=i.value,a=u[0];return b(r,a,e.call(n,u[1],a,t),i)})},r}function pt(t,e){var n=zt(t);return n._iter=t,n.size=t.size,n.reverse=function(){return t},t.flip&&(n.flip=function(){var e=lt(t);return e.reverse=function(){return t.flip()},e}),n.get=function(n,r){return t.get(e?n:-1-n,r)},n.has=function(n){return t.has(e?n:-1-n)},n.includes=function(e){return t.includes(e)},n.cacheResult=Lt,n.__iterate=function(e,n){var r=this;return t.__iterate(function(t,n){return e(t,n,r)},!n)},n.__iterator=function(e,n){return t.__iterator(e,!n)},n}function dt(t,e,n,r){var i=zt(t);return r&&(i.has=function(r){var i=t.get(r,ln);return i!==ln&&!!e.call(n,i,r,t)},i.get=function(r,i){var o=t.get(r,ln);return o!==ln&&e.call(n,o,r,t)?o:i}),i.__iterateUncached=function(i,o){var u=this,a=0;return t.__iterate(function(t,o,s){return e.call(n,t,o,s)?(a++,i(t,r?o:a-1,u)):void 0},o),a},i.__iteratorUncached=function(i,o){var u=t.__iterator(En,o),a=0;return new E(function(){for(;;){var o=u.next();if(o.done)return o;var s=o.value,c=s[0],f=s[1];if(e.call(n,f,c,t))return b(i,r?c:a++,f,o)}})},i}function vt(t,e,n){var r=Pt().asMutable();return t.__iterate(function(i,o){r.update(e.call(n,i,o,t),0,function(t){return t+1})}),r.asImmutable()}function yt(t,e,n){var r=y(t),i=(m(t)?we():Pt()).asMutable();t.__iterate(function(o,u){i.update(e.call(n,o,u,t),function(t){return t=t||[],t.push(r?[u,o]:o),t})});var o=kt(t);return i.map(function(e){return Ct(t,o(e))})}function St(t,e,n,r){var i=t.size;if(void 0!==e&&(e=0|e),void 0!==n&&(n=0|n),s(e,n,i))return t;var o=c(e,i),a=f(n,i);if(o!==o||a!==a)return St(t.toSeq().cacheResult(),e,n,r);var h,l=a-o;l===l&&(h=0>l?0:l);var _=zt(t);return _.size=0===h?h:t.size&&h||void 0,!r&&P(t)&&h>=0&&(_.get=function(e,n){return e=u(this,e),e>=0&&h>e?t.get(e+o,n):n}),_.__iterateUncached=function(e,n){var i=this;if(0===h)return 0;if(n)return this.cacheResult().__iterate(e,n);var u=0,a=!0,s=0;return t.__iterate(function(t,n){return a&&(a=u++h)return w();var t=i.next();return r||e===mn?t:e===gn?b(e,a-1,void 0,t):b(e,a-1,t.value[1],t)})},_}function gt(t,e,n){var r=zt(t);return r.__iterateUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterate(r,i);var u=0;return t.__iterate(function(t,i,a){return e.call(n,t,i,a)&&++u&&r(t,i,o)}),u},r.__iteratorUncached=function(r,i){var o=this;if(i)return this.cacheResult().__iterator(r,i);var u=t.__iterator(En,i),a=!0;return new E(function(){if(!a)return w();var t=u.next();if(t.done)return t;var i=t.value,s=i[0],c=i[1];return e.call(n,c,s,o)?r===En?t:b(r,s,c,t):(a=!1,w())})},r}function mt(t,e,n,r){var i=zt(t);return i.__iterateUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterate(i,o);var a=!0,s=0;return t.__iterate(function(t,o,c){return a&&(a=e.call(n,t,o,c))?void 0:(s++,i(t,r?o:s-1,u))}),s},i.__iteratorUncached=function(i,o){var u=this;if(o)return this.cacheResult().__iterator(i,o);var a=t.__iterator(En,o),s=!0,c=0;return new E(function(){var t,o,f;do{if(t=a.next(),t.done)return r||i===mn?t:i===gn?b(i,c++,void 0,t):b(i,c++,t.value[1],t);var h=t.value;o=h[0],f=h[1],s&&(s=e.call(n,f,o,u))}while(s);return i===En?t:b(i,o,f,t)})},i}function Et(t,e){var n=y(t),r=[t].concat(e).map(function(t){return v(t)?n&&(t=_(t)):t=n?H(t):x(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===r.length)return t;if(1===r.length){var i=r[0];if(i===t||n&&y(i)||S(t)&&S(i))return i}var o=new z(r);return n?o=o.toKeyedSeq():S(t)||(o=o.toSetSeq()),o=o.flatten(!0),o.size=r.reduce(function(t,e){if(void 0!==t){var n=e.size;if(void 0!==n)return t+n}},0),o}function bt(t,e,n){var r=zt(t);return r.__iterateUncached=function(r,i){function o(t,s){var c=this;t.__iterate(function(t,i){return(!e||e>s)&&v(t)?o(t,s+1):r(t,n?i:u++,c)===!1&&(a=!0),!a},i)}var u=0,a=!1;return o(t,0),u},r.__iteratorUncached=function(r,i){var o=t.__iterator(r,i),u=[],a=0;return new E(function(){for(;o;){var t=o.next();if(t.done===!1){var s=t.value;if(r===En&&(s=s[1]),e&&!(u.length0}function Dt(t,e,n){var r=zt(t);return r.size=new z(n).map(function(t){return t.size}).min(),r.__iterate=function(t,e){for(var n,r=this.__iterator(mn,e),i=0;!(n=r.next()).done&&t(n.value,i++,this)!==!1;);return i},r.__iteratorUncached=function(t,r){var i=n.map(function(t){return t=l(t),O(r?t.reverse():t)}),o=0,u=!1;return new E(function(){var n;return u||(n=i.map(function(t){return t.next()}),u=n.some(function(t){return t.done})),u?w():b(t,o++,e.apply(null,n.map(function(t){return t.value})))})},r}function Ct(t,e){return P(t)?e:t.constructor(e)}function Mt(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Rt(t){return at(t.size),o(t)}function kt(t){return y(t)?_:S(t)?p:d}function zt(t){return Object.create((y(t)?M:S(t)?R:k).prototype)}function Lt(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):C.prototype.cacheResult.call(this)}function jt(t,e){return t>e?1:e>t?-1:0}function Nt(t){var e=O(t);if(!e){if(!D(t))throw new TypeError("Expected iterable or array-like: "+t);e=O(l(t))}return e}function Pt(t){return null===t||void 0===t?Jt():Ut(t)&&!m(t)?t:Jt().withMutations(function(e){var n=_(t);at(n.size),n.forEach(function(t,n){return e.set(n,t)})})}function Ut(t){return!(!t||!t[Un])}function Ht(t,e){this.ownerID=t,this.entries=e}function xt(t,e,n){this.ownerID=t,this.bitmap=e,this.nodes=n}function Vt(t,e,n){this.ownerID=t,this.count=e,this.nodes=n}function qt(t,e,n){this.ownerID=t,this.keyHash=e,this.entries=n}function Gt(t,e,n){this.ownerID=t,this.keyHash=e,this.entry=n}function Ft(t,e,n){this._type=e,this._reverse=n,this._stack=t._root&&Yt(t._root)}function Kt(t,e){return b(t,e[0],e[1])}function Yt(t,e){return{node:t,index:0,__prev:e}}function Bt(t,e,n,r){var i=Object.create(Hn);return i.size=t,i._root=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Jt(){return xn||(xn=Bt(0))}function Wt(t,n,r){var i,o;if(t._root){var u=e(_n),a=e(pn);if(i=Xt(t._root,t.__ownerID,0,void 0,n,r,u,a),!a.value)return t;o=t.size+(u.value?r===ln?-1:1:0)}else{if(r===ln)return t;o=1,i=new Ht(t.__ownerID,[[n,r]])}return t.__ownerID?(t.size=o,t._root=i,t.__hash=void 0,t.__altered=!0,t):i?Bt(o,i):Jt()}function Xt(t,e,r,i,o,u,a,s){return t?t.update(e,r,i,o,u,a,s):u===ln?t:(n(s),n(a),new Gt(e,i,[o,u]))}function Qt(t){return t.constructor===Gt||t.constructor===qt}function Zt(t,e,n,r,i){if(t.keyHash===r)return new qt(e,r,[t.entry,i]);var o,u=(0===n?t.keyHash:t.keyHash>>>n)&hn,a=(0===n?r:r>>>n)&hn,s=u===a?[Zt(t,e,n+cn,r,i)]:(o=new Gt(e,r,i),a>u?[t,o]:[o,t]);return new xt(e,1<a;a++,s<<=1){var f=e[a];void 0!==f&&a!==r&&(i|=s,u[o++]=f)}return new xt(t,i,u)}function ee(t,e,n,r,i){for(var o=0,u=new Array(fn),a=0;0!==n;a++,n>>>=1)u[a]=1&n?e[o++]:void 0;return u[r]=i,new Vt(t,o+1,u)}function ne(t,e,n){for(var r=[],i=0;i>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,t+=t>>16,127&t}function ae(t,e,n,r){var o=r?t:i(t);return o[e]=n,o}function se(t,e,n,r){var i=t.length+1;if(r&&e+1===i)return t[e]=n,t;for(var o=new Array(i),u=0,a=0;i>a;a++)a===e?(o[a]=n,u=-1):o[a]=t[a+u];return o}function ce(t,e,n){var r=t.length-1;if(n&&e===r)return t.pop(),t;for(var i=new Array(r),o=0,u=0;r>u;u++)u===e&&(o=1),i[u]=t[u+o];return i}function fe(t){var e=de();if(null===t||void 0===t)return e;if(he(t))return t;var n=p(t),r=n.size;return 0===r?e:(at(r),r>0&&fn>r?pe(0,r,cn,null,new le(n.toArray())):e.withMutations(function(t){t.setSize(r),n.forEach(function(e,n){return t.set(n,e)})}))}function he(t){return!(!t||!t[Fn])}function le(t,e){this.array=t,this.ownerID=e}function _e(t,e){function n(t,e,n){return 0===e?r(t,n):i(t,e,n)}function r(t,n){var r=n===a?s&&s.array:t&&t.array,i=n>o?0:o-n,c=u-n;return c>fn&&(c=fn),function(){if(i===c)return Bn;var t=e?--c:i++;return r&&r[t]}}function i(t,r,i){var a,s=t&&t.array,c=i>o?0:o-i>>r,f=(u-i>>r)+1;return f>fn&&(f=fn),function(){for(;;){if(a){var t=a();if(t!==Bn)return t;a=null}if(c===f)return Bn;var o=e?--f:c++;a=n(s&&s[o],r-cn,i+(o<=t.size||0>n)return t.withMutations(function(t){0>n?me(t,n).set(0,r):me(t,0,n+1).set(n,r)});n+=t._origin;var i=t._tail,o=t._root,a=e(pn);return n>=be(t._capacity)?i=ye(i,t.__ownerID,0,n,r,a):o=ye(o,t.__ownerID,t._level,n,r,a),a.value?t.__ownerID?(t._root=o,t._tail=i,t.__hash=void 0,t.__altered=!0,t):pe(t._origin,t._capacity,t._level,o,i):t}function ye(t,e,r,i,o,u){var a=i>>>r&hn,s=t&&a0){var f=t&&t.array[a],h=ye(f,e,r-cn,i,o,u);return h===f?t:(c=Se(t,e),c.array[a]=h,c)}return s&&t.array[a]===o?t:(n(u),c=Se(t,e),void 0===o&&a===c.array.length-1?c.array.pop():c.array[a]=o,c)}function Se(t,e){return e&&t&&e===t.ownerID?t:new le(t?t.array.slice():[],e)}function ge(t,e){if(e>=be(t._capacity))return t._tail;if(e<1<0;)n=n.array[e>>>r&hn],r-=cn;return n}}function me(t,e,n){void 0!==e&&(e=0|e),void 0!==n&&(n=0|n);var i=t.__ownerID||new r,o=t._origin,u=t._capacity,a=o+e,s=void 0===n?u:0>n?u+n:o+n;if(a===o&&s===u)return t;if(a>=s)return t.clear();for(var c=t._level,f=t._root,h=0;0>a+h;)f=new le(f&&f.array.length?[void 0,f]:[],i),c+=cn,h+=1<=1<_?ge(t,s-1):_>l?new le([],i):p;if(p&&_>l&&u>a&&p.array.length){f=Se(f,i);for(var v=f,y=c;y>cn;y-=cn){var S=l>>>y&hn;v=v.array[S]=Se(v.array[S],i)}v.array[l>>>cn&hn]=p}if(u>s&&(d=d&&d.removeAfter(i,0,s)),a>=_)a-=_,s-=_,c=cn,f=null,d=d&&d.removeBefore(i,0,a);else if(a>o||l>_){for(h=0;f;){var g=a>>>c&hn;if(g!==_>>>c&hn)break;g&&(h+=(1<o&&(f=f.removeBefore(i,c,a-h)),f&&l>_&&(f=f.removeAfter(i,c,_-h)),h&&(a-=h,s-=h)}return t.__ownerID?(t.size=s-a,t._origin=a,t._capacity=s,t._level=c,t._root=f,t._tail=d,t.__hash=void 0,t.__altered=!0,t):pe(a,s,c,f,d)}function Ee(t,e,n){for(var r=[],i=0,o=0;oi&&(i=a.size),v(u)||(a=a.map(function(t){return X(t)})),r.push(a)}return i>t.size&&(t=t.setSize(i)),ie(t,e,r)}function be(t){return fn>t?0:t-1>>>cn<=fn&&u.size>=2*o.size?(i=u.filter(function(t,e){return void 0!==t&&a!==e}),r=i.toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=i.__ownerID=t.__ownerID)):(r=o.remove(e),i=a===u.size-1?u.pop():u.set(a,void 0))}else if(s){if(n===u.get(a)[1])return t;r=o,i=u.set(a,[e,n])}else r=o.set(e,u.size),i=u.set(u.size,[e,n]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=i,t.__hash=void 0,t):Te(r,i)}function De(t){return null===t||void 0===t?Re():Ce(t)?t:Re().unshiftAll(t)}function Ce(t){return!(!t||!t[Wn])}function Me(t,e,n,r){var i=Object.create(Xn);return i.size=t,i._head=e,i.__ownerID=n,i.__hash=r,i.__altered=!1,i}function Re(){return Qn||(Qn=Me(0))}function ke(t){return null===t||void 0===t?Ne():ze(t)&&!m(t)?t:Ne().withMutations(function(e){var n=d(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function ze(t){return!(!t||!t[Zn])}function Le(t,e){return t.__ownerID?(t.size=e.size,t._map=e,t):e===t._map?t:0===e.size?t.__empty():t.__make(e)}function je(t,e){var n=Object.create($n);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function Ne(){return tr||(tr=je(Jt()))}function Pe(t){return null===t||void 0===t?xe():Ue(t)?t:xe().withMutations(function(e){var n=d(t);at(n.size),n.forEach(function(t){return e.add(t)})})}function Ue(t){return ze(t)&&m(t)}function He(t,e){var n=Object.create(er);return n.size=t?t.size:0,n._map=t,n.__ownerID=e,n}function xe(){return nr||(nr=He(Oe()))}function Ve(t,e){var n,r=function(o){if(o instanceof r)return o;if(!(this instanceof r))return new r(o);if(!n){n=!0;var u=Object.keys(t);Fe(i,u),i.size=u.length,i._name=e,i._keys=u,i._defaultValues=t}this._map=Pt(o)},i=r.prototype=Object.create(rr);return i.constructor=r,r}function qe(t,e,n){var r=Object.create(Object.getPrototypeOf(t));return r._map=e,r.__ownerID=n,r}function Ge(t){return t._name||t.constructor.name||"Record"}function Fe(t,e){try{e.forEach(Ke.bind(void 0,t))}catch(n){}}function Ke(t,e){Object.defineProperty(t,e,{get:function(){return this.get(e)},set:function(t){ut(this.__ownerID,"Cannot set on an immutable record."),this.set(e,t)}})}function Ye(t,e){if(t===e)return!0;if(!v(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||y(t)!==y(e)||S(t)!==S(e)||m(t)!==m(e))return!1;if(0===t.size&&0===e.size)return!0;var n=!g(t);if(m(t)){var r=t.entries();return e.every(function(t,e){var i=r.next().value;return i&&W(i[1],t)&&(n||W(i[0],e))})&&r.next().done}var i=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{i=!0;var o=t;t=e,e=o}var u=!0,a=e.__iterate(function(e,r){return(n?t.has(e):i?W(e,t.get(r,ln)):W(t.get(r,ln),e))?void 0:(u=!1,!1)});return u&&t.size===a}function Be(t,e,n){if(!(this instanceof Be))return new Be(t,e,n);if(ut(0!==n,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),n=void 0===n?1:Math.abs(n),t>e&&(n=-n),this._start=t,this._end=e,this._step=n,this.size=Math.max(0,Math.ceil((e-t)/n-1)+1),0===this.size){if(ir)return ir;ir=this}}function Je(t,e){if(!(this instanceof Je))return new Je(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(or)return or;or=this}}function We(t,e){var n=function(n){t.prototype[n]=e[n]};return Object.keys(e).forEach(n),Object.getOwnPropertySymbols&&Object.getOwnPropertySymbols(e).forEach(n),t}function Xe(t,e){return e}function Qe(t,e){return[e,t]}function Ze(t){return function(){return!t.apply(this,arguments)}}function $e(t){return function(){return-t.apply(this,arguments)}}function tn(t){return"string"==typeof t?JSON.stringify(t):t}function en(){return i(arguments)}function nn(t,e){return e>t?1:t>e?-1:0}function rn(t){if(t.size===1/0)return 0;var e=m(t),n=y(t),r=e?1:0,i=t.__iterate(n?e?function(t,e){r=31*r+un(et(t),et(e))|0}:function(t,e){r=r+un(et(t),et(e))|0}:e?function(t){r=31*r+et(t)|0}:function(t){r=r+et(t)|0});return on(i,r)}function on(t,e){return e=Dn(e,3432918353),e=Dn(e<<15|e>>>-15,461845907),e=Dn(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Dn(e^e>>>16,2246822507),e=Dn(e^e>>>13,3266489909),e=tt(e^e>>>16)}function un(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var an=Array.prototype.slice,sn="delete",cn=5,fn=1<=i;i++)if(t(n[e?r-i:i],i,this)===!1)return i+1;return i},z.prototype.__iterator=function(t,e){var n=this._array,r=n.length-1,i=0;return new E(function(){return i>r?w():b(t,i,n[e?r-i++:i++])})},t(L,M),L.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},L.prototype.has=function(t){return this._object.hasOwnProperty(t)},L.prototype.__iterate=function(t,e){for(var n=this._object,r=this._keys,i=r.length-1,o=0;i>=o;o++){var u=r[e?i-o:o];if(t(n[u],u,this)===!1)return o+1}return o},L.prototype.__iterator=function(t,e){var n=this._object,r=this._keys,i=r.length-1,o=0;return new E(function(){var u=r[e?i-o:o];return o++>i?w():b(t,u,n[u])})},L.prototype[Sn]=!0,t(j,R),j.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var n=this._iterable,r=O(n),i=0;if(T(r))for(var o;!(o=r.next()).done&&t(o.value,i++,this)!==!1;);return i},j.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var n=this._iterable,r=O(n);if(!T(r))return new E(w);var i=0;return new E(function(){var e=r.next();return e.done?e:b(t,i++,e.value)})},t(N,R),N.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var n=this._iterator,r=this._iteratorCache,i=0;i=r.length){var e=n.next();if(e.done)return e;r[i]=e.value}return b(t,i,r[i++])})};var On;t(K,l),t(Y,K),t(B,K),t(J,K),K.Keyed=Y,K.Indexed=B,K.Set=J;var An,Dn="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){t=0|t,e=0|e;var n=65535&t,r=65535&e;return n*r+((t>>>16)*r+n*(e>>>16)<<16>>>0)|0},Cn=Object.isExtensible,Mn=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),Rn="function"==typeof WeakMap;Rn&&(An=new WeakMap);var kn=0,zn="__immutablehash__";"function"==typeof Symbol&&(zn=Symbol(zn));var Ln=16,jn=255,Nn=0,Pn={};t(st,M),st.prototype.get=function(t,e){return this._iter.get(t,e)},st.prototype.has=function(t){return this._iter.has(t)},st.prototype.valueSeq=function(){return this._iter.valueSeq()},st.prototype.reverse=function(){var t=this,e=pt(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},st.prototype.map=function(t,e){var n=this,r=_t(this,t,e);return this._useKeys||(r.valueSeq=function(){return n._iter.toSeq().map(t,e)}),r},st.prototype.__iterate=function(t,e){var n,r=this;return this._iter.__iterate(this._useKeys?function(e,n){return t(e,n,r)}:(n=e?Rt(this):0,function(i){return t(i,e?--n:n++,r)}),e)},st.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var n=this._iter.__iterator(mn,e),r=e?Rt(this):0;return new E(function(){var i=n.next();return i.done?i:b(t,e?--r:r++,i.value,i)})},st.prototype[Sn]=!0,t(ct,R),ct.prototype.includes=function(t){return this._iter.includes(t)},ct.prototype.__iterate=function(t,e){var n=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,n)},e)},ct.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e),r=0;return new E(function(){var e=n.next();return e.done?e:b(t,r++,e.value,e)})},t(ft,k),ft.prototype.has=function(t){return this._iter.includes(t)},ft.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){return t(e,e,n)},e)},ft.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e);return new E(function(){var e=n.next();return e.done?e:b(t,e.value,e.value,e)})},t(ht,M),ht.prototype.entrySeq=function(){return this._iter.toSeq()},ht.prototype.__iterate=function(t,e){var n=this;return this._iter.__iterate(function(e){ +if(e){Mt(e);var r=v(e);return t(r?e.get(1):e[1],r?e.get(0):e[0],n)}},e)},ht.prototype.__iterator=function(t,e){var n=this._iter.__iterator(mn,e);return new E(function(){for(;;){var e=n.next();if(e.done)return e;var r=e.value;if(r){Mt(r);var i=v(r);return b(t,i?r.get(0):r[0],i?r.get(1):r[1],e)}}})},ct.prototype.cacheResult=st.prototype.cacheResult=ft.prototype.cacheResult=ht.prototype.cacheResult=Lt,t(Pt,Y),Pt.prototype.toString=function(){return this.__toString("Map {","}")},Pt.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Pt.prototype.set=function(t,e){return Wt(this,t,e)},Pt.prototype.setIn=function(t,e){return this.updateIn(t,ln,function(){return e})},Pt.prototype.remove=function(t){return Wt(this,t,ln)},Pt.prototype.deleteIn=function(t){return this.updateIn(t,function(){return ln})},Pt.prototype.update=function(t,e,n){return 1===arguments.length?t(this):this.updateIn([t],e,n)},Pt.prototype.updateIn=function(t,e,n){n||(n=e,e=void 0);var r=oe(this,Nt(t),e,n);return r===ln?void 0:r},Pt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):Jt()},Pt.prototype.merge=function(){return ne(this,void 0,arguments)},Pt.prototype.mergeWith=function(t){var e=an.call(arguments,1);return ne(this,t,e)},Pt.prototype.mergeIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},Pt.prototype.mergeDeep=function(){return ne(this,re(void 0),arguments)},Pt.prototype.mergeDeepWith=function(t){var e=an.call(arguments,1);return ne(this,re(t),e)},Pt.prototype.mergeDeepIn=function(t){var e=an.call(arguments,1);return this.updateIn(t,Jt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},Pt.prototype.sort=function(t){return we(Tt(this,t))},Pt.prototype.sortBy=function(t,e){return we(Tt(this,e,t))},Pt.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Pt.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new r)},Pt.prototype.asImmutable=function(){return this.__ensureOwner()},Pt.prototype.wasAltered=function(){return this.__altered},Pt.prototype.__iterator=function(t,e){return new Ft(this,t,e)},Pt.prototype.__iterate=function(t,e){var n=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],n)},e),r},Pt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Bt(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Pt.isMap=Ut;var Un="@@__IMMUTABLE_MAP__@@",Hn=Pt.prototype;Hn[Un]=!0,Hn[sn]=Hn.remove,Hn.removeIn=Hn.deleteIn,Ht.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(W(n,i[o][0]))return i[o][1];return r},Ht.prototype.update=function(t,e,r,o,u,a,s){for(var c=u===ln,f=this.entries,h=0,l=f.length;l>h&&!W(o,f[h][0]);h++);var _=l>h;if(_?f[h][1]===u:c)return this;if(n(s),(c||!_)&&n(a),!c||1!==f.length){if(!_&&!c&&f.length>=Vn)return $t(t,f,o,u);var p=t&&t===this.ownerID,d=p?f:i(f);return _?c?h===l-1?d.pop():d[h]=d.pop():d[h]=[o,u]:d.push([o,u]),p?(this.entries=d,this):new Ht(t,d)}},xt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=1<<((0===t?e:e>>>t)&hn),o=this.bitmap;return 0===(o&i)?r:this.nodes[ue(o&i-1)].get(t+cn,e,n,r)},xt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&hn,s=1<=qn)return ee(t,l,c,a,p);if(f&&!p&&2===l.length&&Qt(l[1^h]))return l[1^h];if(f&&p&&1===l.length&&Qt(p))return p;var d=t&&t===this.ownerID,v=f?p?c:c^s:c|s,y=f?p?ae(l,h,p,d):ce(l,h,d):se(l,h,p,d);return d?(this.bitmap=v,this.nodes=y,this):new xt(t,v,y)},Vt.prototype.get=function(t,e,n,r){void 0===e&&(e=et(n));var i=(0===t?e:e>>>t)&hn,o=this.nodes[i];return o?o.get(t+cn,e,n,r):r},Vt.prototype.update=function(t,e,n,r,i,o,u){void 0===n&&(n=et(r));var a=(0===e?n:n>>>e)&hn,s=i===ln,c=this.nodes,f=c[a];if(s&&!f)return this;var h=Xt(f,t,e+cn,n,r,i,o,u);if(h===f)return this;var l=this.count;if(f){if(!h&&(l--,Gn>l))return te(t,c,l,a)}else l++;var _=t&&t===this.ownerID,p=ae(c,a,h,_);return _?(this.count=l,this.nodes=p,this):new Vt(t,l,p)},qt.prototype.get=function(t,e,n,r){for(var i=this.entries,o=0,u=i.length;u>o;o++)if(W(n,i[o][0]))return i[o][1];return r},qt.prototype.update=function(t,e,r,o,u,a,s){void 0===r&&(r=et(o));var c=u===ln;if(r!==this.keyHash)return c?this:(n(s),n(a),Zt(this,t,e,r,[o,u]));for(var f=this.entries,h=0,l=f.length;l>h&&!W(o,f[h][0]);h++);var _=l>h;if(_?f[h][1]===u:c)return this;if(n(s),(c||!_)&&n(a),c&&2===l)return new Gt(t,this.keyHash,f[1^h]);var p=t&&t===this.ownerID,d=p?f:i(f);return _?c?h===l-1?d.pop():d[h]=d.pop():d[h]=[o,u]:d.push([o,u]),p?(this.entries=d,this):new qt(t,this.keyHash,d)},Gt.prototype.get=function(t,e,n,r){return W(n,this.entry[0])?this.entry[1]:r},Gt.prototype.update=function(t,e,r,i,o,u,a){var s=o===ln,c=W(i,this.entry[0]);return(c?o===this.entry[1]:s)?this:(n(a),s?void n(u):c?t&&t===this.ownerID?(this.entry[1]=o,this):new Gt(t,this.keyHash,[i,o]):(n(u),Zt(this,t,e,et(i),[i,o])))},Ht.prototype.iterate=qt.prototype.iterate=function(t,e){for(var n=this.entries,r=0,i=n.length-1;i>=r;r++)if(t(n[e?i-r:r])===!1)return!1},xt.prototype.iterate=Vt.prototype.iterate=function(t,e){for(var n=this.nodes,r=0,i=n.length-1;i>=r;r++){var o=n[e?i-r:r];if(o&&o.iterate(t,e)===!1)return!1}},Gt.prototype.iterate=function(t,e){return t(this.entry)},t(Ft,E),Ft.prototype.next=function(){for(var t=this._type,e=this._stack;e;){var n,r=e.node,i=e.index++;if(r.entry){if(0===i)return Kt(t,r.entry)}else if(r.entries){if(n=r.entries.length-1,n>=i)return Kt(t,r.entries[this._reverse?n-i:i])}else if(n=r.nodes.length-1,n>=i){var o=r.nodes[this._reverse?n-i:i];if(o){if(o.entry)return Kt(t,o.entry);e=this._stack=Yt(o,e)}continue}e=this._stack=this._stack.__prev}return w()};var xn,Vn=fn/4,qn=fn/2,Gn=fn/4;t(fe,B),fe.of=function(){return this(arguments)},fe.prototype.toString=function(){return this.__toString("List [","]")},fe.prototype.get=function(t,e){if(t=u(this,t),t>=0&&t>>e&hn;if(r>=this.array.length)return new le([],t);var i,o=0===r;if(e>0){var u=this.array[r];if(i=u&&u.removeBefore(t,e-cn,n),i===u&&o)return this}if(o&&!i)return this;var a=Se(this,t);if(!o)for(var s=0;r>s;s++)a.array[s]=void 0;return i&&(a.array[r]=i),a},le.prototype.removeAfter=function(t,e,n){if(n===(e?1<>>e&hn;if(r>=this.array.length)return this;var i;if(e>0){var o=this.array[r];if(i=o&&o.removeAfter(t,e-cn,n),i===o&&r===this.array.length-1)return this}var u=Se(this,t);return u.array.splice(r+1),i&&(u.array[r]=i),u};var Yn,Bn={};t(we,Pt),we.of=function(){return this(arguments)},we.prototype.toString=function(){return this.__toString("OrderedMap {","}")},we.prototype.get=function(t,e){var n=this._map.get(t);return void 0!==n?this._list.get(n)[1]:e},we.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):Oe()},we.prototype.set=function(t,e){return Ae(this,t,e)},we.prototype.remove=function(t){return Ae(this,t,ln)},we.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},we.prototype.__iterate=function(t,e){var n=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],n)},e)},we.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},we.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),n=this._list.__ensureOwner(t);return t?Te(e,n,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=n,this)},we.isOrderedMap=Ie,we.prototype[Sn]=!0,we.prototype[sn]=we.prototype.remove;var Jn;t(De,B),De.of=function(){return this(arguments)},De.prototype.toString=function(){return this.__toString("Stack [","]")},De.prototype.get=function(t,e){var n=this._head;for(t=u(this,t);n&&t--;)n=n.next;return n?n.value:e},De.prototype.peek=function(){return this._head&&this._head.value},De.prototype.push=function(){if(0===arguments.length)return this;for(var t=this.size+arguments.length,e=this._head,n=arguments.length-1;n>=0;n--)e={value:arguments[n],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Me(t,e)},De.prototype.pushAll=function(t){if(t=p(t),0===t.size)return this;at(t.size);var e=this.size,n=this._head;return t.reverse().forEach(function(t){e++,n={value:t,next:n}}),this.__ownerID?(this.size=e,this._head=n,this.__hash=void 0,this.__altered=!0,this):Me(e,n)},De.prototype.pop=function(){return this.slice(1)},De.prototype.unshift=function(){return this.push.apply(this,arguments)},De.prototype.unshiftAll=function(t){return this.pushAll(t)},De.prototype.shift=function(){return this.pop.apply(this,arguments)},De.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Re()},De.prototype.slice=function(t,e){if(s(t,e,this.size))return this;var n=c(t,this.size),r=f(e,this.size);if(r!==this.size)return B.prototype.slice.call(this,t,e);for(var i=this.size-n,o=this._head;n--;)o=o.next;return this.__ownerID?(this.size=i,this._head=o,this.__hash=void 0,this.__altered=!0,this):Me(i,o)},De.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Me(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},De.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var n=0,r=this._head;r&&t(r.value,n++,this)!==!1;)r=r.next;return n},De.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var n=0,r=this._head;return new E(function(){if(r){var e=r.value;return r=r.next,b(t,n++,e)}return w()})},De.isStack=Ce;var Wn="@@__IMMUTABLE_STACK__@@",Xn=De.prototype;Xn[Wn]=!0,Xn.withMutations=Hn.withMutations,Xn.asMutable=Hn.asMutable,Xn.asImmutable=Hn.asImmutable,Xn.wasAltered=Hn.wasAltered;var Qn;t(ke,J),ke.of=function(){return this(arguments)},ke.fromKeys=function(t){return this(_(t).keySeq())},ke.prototype.toString=function(){return this.__toString("Set {","}")},ke.prototype.has=function(t){return this._map.has(t)},ke.prototype.add=function(t){return Le(this,this._map.set(t,!0))},ke.prototype.remove=function(t){return Le(this,this._map.remove(t))},ke.prototype.clear=function(){return Le(this,this._map.clear())},ke.prototype.union=function(){var t=an.call(arguments,0);return t=t.filter(function(t){return 0!==t.size}),0===t.length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var n=0;n1?" by "+this._step:"")+" ]"},Be.prototype.get=function(t,e){return this.has(t)?this._start+u(this,t)*this._step:e},Be.prototype.includes=function(t){var e=(t-this._start)/this._step;return e>=0&&e=e?new Be(0,0):new Be(this.get(t,this._end),this.get(e,this._end),this._step))},Be.prototype.indexOf=function(t){var e=t-this._start;if(e%this._step===0){var n=e/this._step;if(n>=0&&n=o;o++){if(t(i,o,this)===!1)return o+1;i+=e?-r:r}return o},Be.prototype.__iterator=function(t,e){var n=this.size-1,r=this._step,i=e?this._start+n*r:this._start,o=0;return new E(function(){var u=i;return i+=e?-r:r,o>n?w():b(t,o++,u)})},Be.prototype.equals=function(t){return t instanceof Be?this._start===t._start&&this._end===t._end&&this._step===t._step:Ye(this,t)};var ir;t(Je,R),Je.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Je.prototype.get=function(t,e){return this.has(t)?this._value:e},Je.prototype.includes=function(t){return W(this._value,t)},Je.prototype.slice=function(t,e){var n=this.size;return s(t,e,n)?this:new Je(this._value,f(e,n)-c(t,n))},Je.prototype.reverse=function(){return this},Je.prototype.indexOf=function(t){return W(this._value,t)?0:-1},Je.prototype.lastIndexOf=function(t){return W(this._value,t)?this.size:-1},Je.prototype.__iterate=function(t,e){for(var n=0;nt?this.count():this.size);var r=this.slice(0,t);return Ct(this,1===n?r:r.concat(i(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var n=this.toKeyedSeq().findLastKey(t,e);return void 0===n?-1:n},first:function(){return this.get(0)},flatten:function(t){return Ct(this,bt(this,t,!1))},get:function(t,e){return t=u(this,t),0>t||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,n){return n===t},void 0,e)},has:function(t){return t=u(this,t),t>=0&&(void 0!==this.size?this.size===1/0||t-1&&t%1===0&&t<=Number.MAX_VALUE}var i=Function.prototype.bind;e.isString=function(t){return"string"==typeof t||"[object String]"===n(t)},e.isArray=Array.isArray||function(t){return"[object Array]"===n(t)},"function"!=typeof/./&&"object"!=typeof Int8Array?e.isFunction=function(t){return"function"==typeof t||!1}:e.isFunction=function(t){return"[object Function]"===toString.call(t)},e.isObject=function(t){var e=typeof t;return"function"===e||"object"===e&&!!t},e.extend=function(t){var e=arguments.length;if(!t||2>e)return t||{};for(var n=1;e>n;n++)for(var r=arguments[n],i=Object.keys(r),o=i.length,u=0;o>u;u++){var a=i[u];t[a]=r[a]}return t},e.clone=function(t){return e.isObject(t)?e.isArray(t)?t.slice():e.extend({},t):t},e.each=function(t,e,n){var i,o,u=t?t.length:0,a=-1;if(n&&(o=e,e=function(t,e,r){return o.call(n,t,e,r)}),r(u))for(;++ar;r++)n[r]=arguments[r];return new(i.apply(t,[null].concat(n)))};return e.__proto__=t,e.prototype=t.prototype,e}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return c["default"].Iterable.isIterable(t)}function o(t){return i(t)||!(0,f.isObject)(t)}function u(t){return i(t)?t.toJS():t}function a(t){return i(t)?t:c["default"].fromJS(t)}Object.defineProperty(e,"__esModule",{value:!0}),e.isImmutable=i,e.isImmutableValue=o,e.toJS=u,e.toImmutable=a;var s=n(3),c=r(s),f=n(4)},function(t,e,n){"use strict";function r(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e["default"]=t,e}function i(t){return t&&t.__esModule?t:{"default":t}}function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var a=function(){function t(t,e){for(var n=0;n0)){var e=this.reactorState.get("dirtyStores");if(0!==e.size){var n=c["default"].Set().withMutations(function(n){n.union(t.observerState.get("any")),e.forEach(function(e){var r=t.observerState.getIn(["stores",e]); +r&&n.union(r)})});n.forEach(function(e){var n=t.observerState.getIn(["observersMap",e]);if(n){var r=n.get("getter"),i=n.get("handler"),o=_.evaluate(t.prevReactorState,r),u=_.evaluate(t.reactorState,r);t.prevReactorState=o.reactorState,t.reactorState=u.reactorState;var a=o.result,s=u.result;c["default"].is(a,s)||i.call(null,s)}});var r=_.resetDirtyStores(this.reactorState);this.prevReactorState=r,this.reactorState=r}}}},{key:"batchStart",value:function(){this.__batchDepth++}},{key:"batchEnd",value:function(){if(this.__batchDepth--,this.__batchDepth<=0){this.__isDispatching=!0;try{this.__notify()}catch(t){throw this.__isDispatching=!1,t}this.__isDispatching=!1}}}]),t}();e["default"]=(0,y.toFactory)(g),t.exports=e["default"]},function(t,e,n){"use strict";function r(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function i(t,e){var n={};return(0,o.each)(e,function(e,r){n[r]=t.evaluate(e)}),n}Object.defineProperty(e,"__esModule",{value:!0});var o=n(4);e["default"]=function(t){return{getInitialState:function(){return i(t,this.getDataBindings())},componentDidMount:function(){var e=this;this.__unwatchFns=[],(0,o.each)(this.getDataBindings(),function(n,i){var o=t.observe(n,function(t){e.setState(r({},i,t))});e.__unwatchFns.push(o)})},componentWillUnmount:function(){for(;this.__unwatchFns.length;)this.__unwatchFns.shift()()}}},t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t,e){return new k({result:t,reactorState:e})}function o(t,e){return t.withMutations(function(t){(0,R.each)(e,function(e,n){t.getIn(["stores",n])&&console.warn("Store already defined for id = "+n);var r=e.getInitialState();if(void 0===r&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store getInitialState() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(r))throw new Error("Store getInitialState() must return an immutable value, did you forget to call toImmutable");t.update("stores",function(t){return t.set(n,e)}).update("state",function(t){return t.set(n,r)}).update("dirtyStores",function(t){return t.add(n)}).update("storeStates",function(t){return w(t,[n])})}),b(t)})}function u(t,e){return t.withMutations(function(t){(0,R.each)(e,function(e,n){t.update("stores",function(t){return t.set(n,e)})})})}function a(t,e,n){if(void 0===e&&f(t,"throwOnUndefinedActionType"))throw new Error("`dispatch` cannot be called with an `undefined` action type.");var r=t.get("state"),i=t.get("dirtyStores"),o=r.withMutations(function(r){A["default"].dispatchStart(t,e,n),t.get("stores").forEach(function(o,u){var a=r.get(u),s=void 0;try{s=o.handle(a,e,n)}catch(c){throw A["default"].dispatchError(t,c.message),c}if(void 0===s&&f(t,"throwOnUndefinedStoreReturnValue")){var h="Store handler must return a value, did you forget a return statement";throw A["default"].dispatchError(t,h),new Error(h)}r.set(u,s),a!==s&&(i=i.add(u))}),A["default"].dispatchEnd(t,r,i)}),u=t.set("state",o).set("dirtyStores",i).update("storeStates",function(t){return w(t,i)});return b(u)}function s(t,e){var n=[],r=(0,D.toImmutable)({}).withMutations(function(r){(0,R.each)(e,function(e,i){var o=t.getIn(["stores",i]);if(o){var u=o.deserialize(e);void 0!==u&&(r.set(i,u),n.push(i))}})}),i=T["default"].Set(n);return t.update("state",function(t){return t.merge(r)}).update("dirtyStores",function(t){return t.union(i)}).update("storeStates",function(t){return w(t,n)})}function c(t,e,n){var r=e;(0,M.isKeyPath)(e)&&(e=(0,C.fromKeyPath)(e));var i=t.get("nextId"),o=(0,C.getStoreDeps)(e),u=T["default"].Map({id:i,storeDeps:o,getterKey:r,getter:e,handler:n}),a=void 0;return a=0===o.size?t.update("any",function(t){return t.add(i)}):t.withMutations(function(t){o.forEach(function(e){var n=["stores",e];t.hasIn(n)||t.setIn(n,T["default"].Set()),t.updateIn(["stores",e],function(t){return t.add(i)})})}),a=a.set("nextId",i+1).setIn(["observersMap",i],u),{observerState:a,entry:u}}function f(t,e){var n=t.getIn(["options",e]);if(void 0===n)throw new Error("Invalid option: "+e);return n}function h(t,e,n){var r=t.get("observersMap").filter(function(t){var r=t.get("getterKey"),i=!n||t.get("handler")===n;return i?(0,M.isKeyPath)(e)&&(0,M.isKeyPath)(r)?(0,M.isEqual)(e,r):e===r:!1});return t.withMutations(function(t){r.forEach(function(e){return l(t,e)})})}function l(t,e){return t.withMutations(function(t){var n=e.get("id"),r=e.get("storeDeps");0===r.size?t.update("any",function(t){return t.remove(n)}):r.forEach(function(e){t.updateIn(["stores",e],function(t){return t?t.remove(n):t})}),t.removeIn(["observersMap",n])})}function _(t){var e=t.get("state");return t.withMutations(function(t){var n=t.get("stores"),r=n.keySeq().toJS();n.forEach(function(n,r){var i=e.get(r),o=n.handleReset(i);if(void 0===o&&f(t,"throwOnUndefinedStoreReturnValue"))throw new Error("Store handleReset() must return a value, did you forget a return statement");if(f(t,"throwOnNonImmutableStore")&&!(0,D.isImmutableValue)(o))throw new Error("Store reset state must be an immutable value, did you forget to call toImmutable");t.setIn(["state",r],o)}),t.update("storeStates",function(t){return w(t,r)}),v(t)})}function p(t,e){var n=t.get("state");if((0,M.isKeyPath)(e))return i(n.getIn(e),t);if(!(0,C.isGetter)(e))throw new Error("evaluate must be passed a keyPath or Getter");if(g(t,e))return i(E(t,e),t);var r=(0,C.getDeps)(e).map(function(e){return p(t,e).result}),o=(0,C.getComputeFn)(e).apply(null,r);return i(o,m(t,e,o))}function d(t){var e={};return t.get("stores").forEach(function(n,r){var i=t.getIn(["state",r]),o=n.serialize(i);void 0!==o&&(e[r]=o)}),e}function v(t){return t.set("dirtyStores",T["default"].Set())}function y(t){return t}function S(t,e){var n=y(e);return t.getIn(["cache",n])}function g(t,e){var n=S(t,e);if(!n)return!1;var r=n.get("storeStates");return 0===r.size?!1:r.every(function(e,n){return t.getIn(["storeStates",n])===e})}function m(t,e,n){var r=y(e),i=t.get("dispatchId"),o=(0,C.getStoreDeps)(e),u=(0,D.toImmutable)({}).withMutations(function(e){o.forEach(function(n){var r=t.getIn(["storeStates",n]);e.set(n,r)})});return t.setIn(["cache",r],T["default"].Map({value:n,storeStates:u,dispatchId:i}))}function E(t,e){var n=y(e);return t.getIn(["cache",n,"value"])}function b(t){return t.update("dispatchId",function(t){return t+1})}function w(t,e){return t.withMutations(function(t){e.forEach(function(e){var n=t.has(e)?t.get(e)+1:1;t.set(e,n)})})}Object.defineProperty(e,"__esModule",{value:!0}),e.registerStores=o,e.replaceStores=u,e.dispatch=a,e.loadState=s,e.addObserver=c,e.getOption=f,e.removeObserver=h,e.removeObserverByEntry=l,e.reset=_,e.evaluate=p,e.serialize=d,e.resetDirtyStores=v;var I=n(3),T=r(I),O=n(9),A=r(O),D=n(5),C=n(10),M=n(11),R=n(4),k=T["default"].Record({result:null,reactorState:null})},function(t,e,n){"use strict";var r=n(8);e.dispatchStart=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.groupCollapsed("Dispatch: %s",e),console.group("payload"),console.debug(n),console.groupEnd())},e.dispatchError=function(t,e){(0,r.getOption)(t,"logDispatches")&&console.group&&(console.debug("Dispatch error: "+e),console.groupEnd())},e.dispatchEnd=function(t,e,n){(0,r.getOption)(t,"logDispatches")&&console.group&&((0,r.getOption)(t,"logDirtyStores")&&console.log("Stores updated:",n.toList().toJS()),(0,r.getOption)(t,"logAppState")&&console.debug("Dispatch done, new state: ",e.toJS()),console.groupEnd())}},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return(0,l.isArray)(t)&&(0,l.isFunction)(t[t.length-1])}function o(t){return t[t.length-1]}function u(t){return t.slice(0,t.length-1)}function a(t,e){e||(e=h["default"].Set());var n=h["default"].Set().withMutations(function(e){if(!i(t))throw new Error("getFlattenedDeps must be passed a Getter");u(t).forEach(function(t){if((0,_.isKeyPath)(t))e.add((0,f.List)(t));else{if(!i(t))throw new Error("Invalid getter, each dependency must be a KeyPath or Getter");e.union(a(t))}})});return e.union(n)}function s(t){if(!(0,_.isKeyPath)(t))throw new Error("Cannot create Getter from KeyPath: "+t);return[t,p]}function c(t){if(t.hasOwnProperty("__storeDeps"))return t.__storeDeps;var e=a(t).map(function(t){return t.first()}).filter(function(t){return!!t});return Object.defineProperty(t,"__storeDeps",{enumerable:!1,configurable:!1,writable:!1,value:e}),e}Object.defineProperty(e,"__esModule",{value:!0});var f=n(3),h=r(f),l=n(4),_=n(11),p=function(t){return t};e["default"]={isGetter:i,getComputeFn:o,getFlattenedDeps:a,getStoreDeps:c,getDeps:u,fromKeyPath:s},t.exports=e["default"]},function(t,e,n){"use strict";function r(t){return t&&t.__esModule?t:{"default":t}}function i(t){return(0,s.isArray)(t)&&!(0,s.isFunction)(t[t.length-1])}function o(t,e){var n=a["default"].List(t),r=a["default"].List(e);return a["default"].is(n,r)}Object.defineProperty(e,"__esModule",{value:!0}),e.isKeyPath=i,e.isEqual=o;var u=n(3),a=r(u),s=n(4)},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(3),i=(0,r.Map)({logDispatches:!1,logAppState:!1,logDirtyStores:!1,throwOnUndefinedActionType:!1,throwOnUndefinedStoreReturnValue:!1,throwOnNonImmutableStore:!1,throwOnDispatchInDispatch:!1});e.PROD_OPTIONS=i;var o=(0,r.Map)({logDispatches:!0,logAppState:!0,logDirtyStores:!0,throwOnUndefinedActionType:!0,throwOnUndefinedStoreReturnValue:!0,throwOnNonImmutableStore:!0,throwOnDispatchInDispatch:!0});e.DEBUG_OPTIONS=o;var u=(0,r.Record)({dispatchId:0,state:(0,r.Map)(),stores:(0,r.Map)(),cache:(0,r.Map)(),storeStates:(0,r.Map)(),dirtyStores:(0,r.Set)(),debug:!1,options:i});e.ReactorState=u;var a=(0,r.Record)({any:(0,r.Set)(),stores:(0,r.Map)({}),observersMap:(0,r.Map)({}),nextId:1});e.ObserverState=a}])})},function(t,e){"use strict";var n=function(t){var e,n={};if(!(t instanceof Object)||Array.isArray(t))throw new Error("keyMirror(...): Argument must be an object.");for(e in t)t.hasOwnProperty(e)&&(n[e]=e);return n};t.exports=n},function(t,e,n){"use strict";var r=n(65);n.d(e,"a",function(){return i});var i=r.a},function(t,e,n){"use strict";var r=n(81),i=n(83);n.d(e,"actions",function(){return o}),n.d(e,"getters",function(){return u});var o=r.a,u=i},,function(t,e,n){"use strict";function r(t){t.registerStores({restApiCache:c.a})}function i(t){return[["restApiCache",t.entity],function(t){return!!t}]}function o(t){return[["restApiCache",t.entity],function(t){return t||n.i(a.toImmutable)({})}]}function u(t){return function(e){return["restApiCache",t.entity,e]}}var a=n(1),s=a&&a.__esModule?function(){return a["default"]}:function(){return a};n.d(s,"a",s);var c=n(108),f=n(107);n.d(e,"createApiActions",function(){return h}),e.register=r,e.createHasDataGetter=i,e.createEntityMapGetter=o,e.createByIdGetter=u;var h=f.a},function(t,e,n){"use strict";var r=n(2),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i),e.a=i()({ENTITY_HISTORY_DATE_SELECTED:null,ENTITY_HISTORY_FETCH_START:null,ENTITY_HISTORY_FETCH_ERROR:null,ENTITY_HISTORY_FETCH_SUCCESS:null,RECENT_ENTITY_HISTORY_FETCH_START:null,RECENT_ENTITY_HISTORY_FETCH_ERROR:null,RECENT_ENTITY_HISTORY_FETCH_SUCCESS:null,LOG_OUT:null})},function(t,e,n){"use strict";var r=n(2),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i),e.a=i()({LOGBOOK_DATE_SELECTED:null,LOGBOOK_ENTRIES_FETCH_START:null,LOGBOOK_ENTRIES_FETCH_ERROR:null,LOGBOOK_ENTRIES_FETCH_SUCCESS:null})},function(t,e,n){"use strict";var r=n(109),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i);var o=n(39);n.d(e,"actions",function(){return u}),n.d(e,"getters",function(){return a});var u=i.a,a=o},function(t,e,n){"use strict";var r=n(2),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i),e.a=i()({VALIDATING_AUTH_TOKEN:null,VALID_AUTH_TOKEN:null,INVALID_AUTH_TOKEN:null,LOG_OUT:null})},function(t,e,n){"use strict";function r(t){t.registerStores({authAttempt:i.a,authCurrent:o.a,rememberAuth:u.a})}var i=n(68),o=n(69),u=n(70),a=n(66),s=n(67);e.register=r,n.d(e,"actions",function(){return c}),n.d(e,"getters",function(){return f});var c=a,f=s},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(82),c=n(26),f=n(3),h=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var u,a=t[Symbol.iterator]();!(r=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);r=!0);}catch(s){i=!0,o=s}finally{try{!r&&a["return"]&&a["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),l=function(){function t(t,e){for(var n=0;nn;n++)e["_"+String.fromCharCode(n)]=n;var r=Object.getOwnPropertyNames(e).map(function(t){return e[t]});if("0123456789"!==r.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(t){i[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(o){return!1}}var i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;t.exports=r()?Object.assign:function(t,e){for(var r,u,a=n(t),s=1;s6e4}e.a=r},,,,,,,,function(t,e,n){var r=n(181);t.exports=function(t,e,n){function i(){var f=r()-s;e>f&&f>0?o=setTimeout(i,e-f):(o=null,n||(c=t.apply(a,u),o||(a=u=null)))}var o,u,a,s,c;return null==e&&(e=100),function(){a=this,u=arguments,s=r();var f=n&&!o;return o||(o=setTimeout(i,e)),f&&(c=t.apply(a,u),a=u=null),c}}},,,,function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=n(105),o=n(130),u=n(132),a=n(134),s=n(11),c=n(17),f=n(4),h=n(31),l=n(85),_=n(18),p=n(90),d=n(34),v=n(37),y=n(20),S=n(44),g=n(9),m=n(22),E=n(24),b=n(121),w=n(127),I=n(6),T=function O(){r(this,O);var t=n.i(o.a)();Object.defineProperties(this,{demo:{value:1,enumerable:!0},localStoragePreferences:{value:i.a,enumerable:!0},reactor:{value:t,enumerable:!0},util:{value:a.a,enumerable:!0},startLocalStoragePreferencesSync:{value:i.a.startSync.bind(i.a,t)},startUrlSync:{value:v.urlSync.startSync.bind(null,t)},stopUrlSync:{value:v.urlSync.stopSync.bind(null,t)}}),n.i(u.a)(this,t,{auth:s,config:c,entity:f,entityHistory:h,errorLog:l,event:_,logbook:p,moreInfo:d,navigation:v,notification:y,view:S,service:g,stream:m,sync:E,template:b,voice:w,restApi:I})};e.a=T},,,,,,,function(t,e,n){"use strict";function r(t,e,n){var r=arguments.length<=3||void 0===arguments[3]?null:arguments[3],u=t.evaluate(i.getters.authInfo),a=u.host+"/api/"+n,s=function(){var t=n.split("/",1)[0],e=void 0;switch(t){case"bootstrap":e=window.hassDemoData.bootstrap;break;case"logbook":e=window.hassDemoData.logbook;break;case"history":e=window.hassDemoData.stateHistory;break;default:e=!1}return{v:new Promise(function(t,n){e?t(e):n("Request not allowed in demo mode.")})}}();return"object"===("undefined"==typeof s?"undefined":o(s))?s.v:new Promise(function(t,n){var i=new XMLHttpRequest;i.open(e,a,!0),i.setRequestHeader("X-HA-access",u.authToken),i.onload=function(){var e=void 0;try{e="application/json"===i.getResponseHeader("content-type")?JSON.parse(i.responseText):i.responseText}catch(r){e=i.responseText}i.status>199&&i.status<300?t(e):n(e)},i.onerror=function(){return n({})},r?i.send(JSON.stringify(r)):i.send()})}var i=n(11);e.a=r;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t}},function(t,e,n){"use strict";function r(t,e){var n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2],r=n.useStreaming,i=(void 0===r?t.evaluate(u.getters.isSupported):r,n.rememberAuth),c=void 0===i?!1:i,f=n.host,h=void 0===f?"":f;h="/demo",t.dispatch(o.a.VALIDATING_AUTH_TOKEN,{authToken:e,host:h}),a.actions.fetchAll(t).then(function(){return t.dispatch(o.a.VALID_AUTH_TOKEN,{authToken:e,host:h,rememberAuth:c}),void t.dispatch("STREAM_START")},function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=e.message,r=void 0===n?s:n;t.dispatch(o.a.INVALID_AUTH_TOKEN,{errorMessage:r})})}function i(t){t.dispatch(o.a.LOG_OUT,{})}var o=n(10),u=n(22),a=n(24);e.validate=r,e.logOut=i;var s="Unexpected result from API"},function(t,e,n){"use strict";n.d(e,"isValidating",function(){return r}),n.d(e,"isInvalidAttempt",function(){return i}),n.d(e,"attemptErrorMessage",function(){return o}),n.d(e,"rememberAuth",function(){return u}),n.d(e,"attemptAuthInfo",function(){return a}),n.d(e,"currentAuthToken",function(){return s}),n.d(e,"currentAuthInfo",function(){return c}),n.d(e,"authToken",function(){return f}),n.d(e,"authInfo",function(){return h});var r=["authAttempt","isValidating"],i=["authAttempt","isInvalid"],o=["authAttempt","errorMessage"],u=["rememberAuth"],a=[["authAttempt","authToken"],["authAttempt","host"],function(t,e){return{authToken:t,host:e}}],s=["authCurrent","authToken"],c=[s,["authCurrent","host"],function(t,e){return{authToken:t,host:e}}],f=[r,["authAttempt","authToken"],["authCurrent","authToken"],function(t,e,n){return t?e:n}],h=[r,a,c,function(t,e,n){return t?e:n}]},function(t,e,n){"use strict";function r(t,e){var r=e.authToken,i=e.host;return n.i(u.toImmutable)({authToken:r,host:i,isValidating:!0,isInvalid:!1,errorMessage:""})}function i(){return c.getInitialState()}function o(t,e){var n=e.errorMessage;return t.withMutations(function(t){return t.set("isValidating",!1).set("isInvalid",!0).set("errorMessage",n)})}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(10),c=new u.Store({getInitialState:function(){return n.i(u.toImmutable)({isValidating:!1,authToken:!1,host:null,isInvalid:!1,errorMessage:""})},initialize:function(){this.on(s.a.VALIDATING_AUTH_TOKEN,r),this.on(s.a.VALID_AUTH_TOKEN,i),this.on(s.a.INVALID_AUTH_TOKEN,o)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var r=e.authToken,i=e.host;return n.i(o.toImmutable)({authToken:r,host:i})}function i(){return s.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(10),s=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({authToken:null,host:""})},initialize:function(){this.on(a.a.VALID_AUTH_TOKEN,r),this.on(a.a.LOG_OUT,i)}});e.a=s},function(t,e,n){"use strict";function r(t,e){var n=e.rememberAuth;return n}var i=n(1),o=i&&i.__esModule?function(){return i["default"]}:function(){return i};n.d(o,"a",o);var u=n(10),a=new i.Store({getInitialState:function(){return!0},initialize:function(){this.on(u.a.VALID_AUTH_TOKEN,r)}});e.a=a},function(t,e,n){"use strict";function r(t,e){t.dispatch(a.a.SERVER_CONFIG_LOADED,e)}function i(t){n.i(u.a)(t,"GET","config").then(function(e){return r(t,e)})}function o(t,e){t.dispatch(a.a.COMPONENT_LOADED,{component:e})}var u=n(3),a=n(16);e.configLoaded=r,e.fetchAll=i,e.componentLoaded=o},function(t,e,n){"use strict";function r(t){return[["serverComponent"],function(e){return e.contains(t)}]}n.d(e,"locationGPS",function(){return i}),n.d(e,"locationName",function(){return o}),n.d(e,"serverVersion",function(){return u}),e.isComponentLoaded=r;var i=[["serverConfig","latitude"],["serverConfig","longitude"],function(t,e){return{latitude:t,longitude:e}}],o=["serverConfig","location_name"],u=["serverConfig","serverVersion"]},function(t,e,n){"use strict";function r(t,e){var n=e.component;return t.push(n)}function i(t,e){var r=e.components;return n.i(u.toImmutable)(r)}function o(){return c.getInitialState()}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(16),c=new u.Store({getInitialState:function(){return n.i(u.toImmutable)([])},initialize:function(){this.on(s.a.COMPONENT_LOADED,r),this.on(s.a.SERVER_CONFIG_LOADED,i),this.on(s.a.LOG_OUT,o)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var r=e.latitude,i=e.longitude,u=e.location_name,a=e.temperature_unit,s=e.time_zone,c=e.version;return n.i(o.toImmutable)({latitude:r,longitude:i,location_name:u,temperature_unit:a, +time_zone:s,serverVersion:c})}function i(){return s.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(16),s=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({latitude:null,longitude:null,location_name:"Home",temperature_unit:"°C",time_zone:"UTC",serverVersion:"unknown"})},initialize:function(){this.on(a.a.SERVER_CONFIG_LOADED,r),this.on(a.a.LOG_OUT,i)}});e.a=s},function(t,e,n){"use strict";function r(t,e){t.dispatch(s.a.ENTITY_HISTORY_DATE_SELECTED,{date:e})}function i(t){var e=arguments.length<=1||void 0===arguments[1]?null:arguments[1];t.dispatch(s.a.RECENT_ENTITY_HISTORY_FETCH_START,{});var r="history/period";return null!==e&&(r+="?filter_entity_id="+e),n.i(a.a)(t,"GET",r).then(function(e){return t.dispatch(s.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,{stateHistory:e})},function(){return t.dispatch(s.a.RECENT_ENTITY_HISTORY_FETCH_ERROR,{})})}function o(t,e){return t.dispatch(s.a.ENTITY_HISTORY_FETCH_START,{date:e}),n.i(a.a)(t,"GET","history/period/"+e).then(function(n){return t.dispatch(s.a.ENTITY_HISTORY_FETCH_SUCCESS,{date:e,stateHistory:n})},function(){return t.dispatch(s.a.ENTITY_HISTORY_FETCH_ERROR,{})})}function u(t){var e=t.evaluate(c.currentDate);return o(t,e)}var a=n(3),s=n(7),c=n(30);e.changeCurrentDate=r,e.fetchRecent=i,e.fetchDate=o,e.fetchSelectedDate=u},function(t,e,n){"use strict";function r(t,e){var r=e.date;return n.i(a.a)(r)}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(25),s=n(7),c=new o.Store({getInitialState:function(){var t=new Date;return t.setDate(t.getUTCDate()-1),n.i(a.a)(t)},initialize:function(){this.on(s.a.ENTITY_HISTORY_DATE_SELECTED,r),this.on(s.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var r=e.date,i=e.stateHistory;return 0===i.length?t.set(r,n.i(o.toImmutable)({})):t.withMutations(function(t){i.forEach(function(e){return t.setIn([r,e[0].entity_id],n.i(o.toImmutable)(e.map(s.a.fromJSON)))})})}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(7),s=n(12),c=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({})},initialize:function(){this.on(a.a.ENTITY_HISTORY_FETCH_SUCCESS,r),this.on(a.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";var r=n(1),i=r&&r.__esModule?function(){return r["default"]}:function(){return r};n.d(i,"a",i);var o=n(7),u=new r.Store({getInitialState:function(){return!1},initialize:function(){this.on(o.a.ENTITY_HISTORY_FETCH_START,function(){return!0}),this.on(o.a.ENTITY_HISTORY_FETCH_SUCCESS,function(){return!1}),this.on(o.a.ENTITY_HISTORY_FETCH_ERROR,function(){return!1}),this.on(o.a.RECENT_ENTITY_HISTORY_FETCH_START,function(){return!0}),this.on(o.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,function(){return!1}),this.on(o.a.RECENT_ENTITY_HISTORY_FETCH_ERROR,function(){return!1}),this.on(o.a.LOG_OUT,function(){return!1})}});e.a=u},function(t,e,n){"use strict";function r(t,e){var r=e.stateHistory;return t.withMutations(function(t){r.forEach(function(e){return t.set(e[0].entity_id,n.i(o.toImmutable)(e.map(s.a.fromJSON)))})})}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(7),s=n(12),c=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({})},initialize:function(){this.on(a.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,r),this.on(a.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";function r(t,e){var n=e.stateHistory,r=(new Date).getTime();return t.withMutations(function(t){n.forEach(function(e){return t.set(e[0].entity_id,r)}),history.length>1&&t.set(s,r)})}function i(){return c.getInitialState()}var o=n(1),u=o&&o.__esModule?function(){return o["default"]}:function(){return o};n.d(u,"a",u);var a=n(7),s="ALL_ENTRY_FETCH",c=new o.Store({getInitialState:function(){return n.i(o.toImmutable)({})},initialize:function(){this.on(a.a.RECENT_ENTITY_HISTORY_FETCH_SUCCESS,r),this.on(a.a.LOG_OUT,i)}});e.a=c},function(t,e,n){"use strict";var r=n(6),i=n(12),o=n.i(r.createApiActions)(i.a);e.a=o},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var i=function(){function t(t,e){for(var n=0;nu}var i=n(1),o=i&&i.__esModule?function(){return i["default"]}:function(){return i};n.d(o,"a",o),n.d(e,"currentDate",function(){return a}),n.d(e,"isCurrentStale",function(){return s}),n.d(e,"currentEntries",function(){return c}),n.d(e,"isLoadingEntries",function(){return f});var u=6e4,a=["currentLogbookDate"],s=[a,["logbookEntriesUpdated"],function(t,e){return r(e.get(t))}],c=[a,["logbookEntries"],function(t,e){return e.get(t)||n.i(i.toImmutable)([])}],f=["isLoadingLogbookEntries"]},function(t,e,n){"use strict";function r(t){t.registerStores({currentLogbookDate:i.a,isLoadingLogbookEntries:o.a,logbookEntries:u.a,logbookEntriesUpdated:a.a})}var i=n(92),o=n(93),u=n(94),a=n(95),s=n(88),c=n(89);e.register=r,n.d(e,"actions",function(){return f}),n.d(e,"getters",function(){return h});var f=s,h=c},function(t,e,n){"use strict";function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var u=n(1),a=u&&u.__esModule?function(){return u["default"]}:function(){return u};n.d(a,"a",a);var s=n(26),c=function(){function t(t,e){for(var n=0;nn;n++)t["_"+String.fromCharCode(n)]=n;var o=Object.getOwnPropertyNames(t).map(function(e){return t[e]});if("0123456789"!==o.join(""))return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(e){i[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},i)).join("")}catch(r){return!1}}var i=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=o()?Object.assign:function(e,t){for(var o,a,s=n(e),d=1;do&&(e=t[o]);o++)e._distributeContent();this.shadyRoot._dirtyRoots=[]},_finishDistribute:function(){if(this._useContent){if(this.shadyRoot._distributionClean=!0,h.hasInsertionPoint(this.shadyRoot))this._composeTree(),d(this.shadyRoot);else if(this.shadyRoot._hasDistributed){var e=this._composeNode(this);this._updateChildNodes(this,e)}else u.Composed.clearChildNodes(this),this.appendChild(this.shadyRoot);this.shadyRoot._hasDistributed||a(this),this.shadyRoot._hasDistributed=!0}},elementMatches:function(e,t){return t=t||this,h.matchesSelector.call(t,e)},_resetDistribution:function(){for(var e=u.Logical.getChildNodes(this),o=0;os&&(i=n[s]);s++)this._distributeInsertionPoint(i,t),o(i,this)},_distributeInsertionPoint:function(t,o){for(var i,n=!1,s=0,r=o.length;r>s;s++)i=o[s],i&&this._matchesContentSelect(i,t)&&(e(i,t),o[s]=void 0,n=!0);if(!n)for(var d=u.Logical.getChildNodes(t),a=0;ai&&(e=o[i]);i++)t=u.Logical.getParentNode(e),t._useContent||t===this||t===this.shadyRoot||this._updateChildNodes(t,this._composeNode(t))},_composeNode:function(e){for(var t=[],o=u.Logical.getChildNodes(e.shadyRoot||e),s=0;s0?~setTimeout(e,t):(this._twiddle.textContent=this._twiddleContent++,this._callbacks.push(e),this._currVal++)},cancel:function(e){if(0>e)clearTimeout(~e);else{var t=e-this._lastVal;if(t>=0){if(!this._callbacks[t])throw"invalid async handle: "+e;this._callbacks[t]=null}}},_atEndOfMicrotask:function(){for(var e=this._callbacks.length,t=0;e>t;t++){var o=this._callbacks[t];if(o)try{o()}catch(i){throw t++,this._callbacks.splice(0,t),this._lastVal+=t,this._twiddle.textContent=this._twiddleContent++,i}}this._callbacks.splice(0,e),this._lastVal+=e}},new window.MutationObserver(function(){Polymer.Async._atEndOfMicrotask()}).observe(Polymer.Async._twiddle,{characterData:!0}),Polymer.Debounce=function(){function e(e,t,i){return e?e.stop():e=new o(this),e.go(t,i),e}var t=Polymer.Async,o=function(e){this.context=e;var t=this;this.boundComplete=function(){t.complete()}};return o.prototype={go:function(e,o){var i;this.finish=function(){t.cancel(i)},i=t.run(this.boundComplete,o),this.callback=e},stop:function(){this.finish&&(this.finish(),this.finish=null)},complete:function(){this.finish&&(this.stop(),this.callback.call(this.context))}},e}(),Polymer.Base._addFeature({_setupDebouncers:function(){this._debouncers={}},debounce:function(e,t,o){return this._debouncers[e]=Polymer.Debounce.call(this,this._debouncers[e],t,o)},isDebouncerActive:function(e){var t=this._debouncers[e];return!(!t||!t.finish)},flushDebouncer:function(e){var t=this._debouncers[e];t&&t.complete()},cancelDebouncer:function(e){var t=this._debouncers[e];t&&t.stop()}}),Polymer.DomModule=document.createElement("dom-module"),Polymer.Base._addFeature({_registerFeatures:function(){this._prepIs(),this._prepBehaviors(),this._prepConstructor(),this._prepTemplate(),this._prepShady(),this._prepPropertyInfo()},_prepBehavior:function(e){this._addHostAttributes(e.hostAttributes)},_initFeatures:function(){this._registerHost(),this._template&&(this._poolContent(),this._beginHosting(),this._stampTemplate(),this._endHosting()),this._marshalHostAttributes(),this._setupDebouncers(),this._marshalBehaviors(),this._tryReady()},_marshalBehavior:function(e){}})- \ No newline at end of file + clear: both;white-space:pre-wrap} \ No newline at end of file diff --git a/source/demo/index.html b/source/demo/index.html index 093351d1ce3..764c1145f30 100644 --- a/source/demo/index.html +++ b/source/demo/index.html @@ -86,6 +86,7 @@ } + diff --git a/source/getting-started/installation-raspberry-pi-all-in-one.markdown b/source/getting-started/installation-raspberry-pi-all-in-one.markdown index e054f5091a7..b6672febf9d 100644 --- a/source/getting-started/installation-raspberry-pi-all-in-one.markdown +++ b/source/getting-started/installation-raspberry-pi-all-in-one.markdown @@ -19,13 +19,13 @@ $ wget -Nnv https://raw.githubusercontent.com/home-assistant/fabric-home-assista ``` *Note this command is one line and not run as sudo* -Installation will take approx. 1-2 hours depending on the Raspberry Pi model the installer is being run against. +Installation will take approx. 1-2 hours depending on the Raspberry Pi model the installer is being run against. The installer will identitfy what Raspberry PI hardware revision you are using and adjust commands accordingly. A complete log of the install is located at: `/home/pi/fabric-home-assistant/installation_report.txt` The installer has been updated to simply log any errors encountered, but resume installing. Please consult the "installation report" if your install encountered issues. [BRUH automation](http://www.bruhautomation.com) has created [a tutorial video](https://www.youtube.com/watch?v=VGl3KTrYo6s) explaining how to install Raspbian on your Raspberry Pi and install Home Assistant using the All-In-One Installer. Once rebooted, your Raspberry Pi will be up and running with Home Assistant. You can access it at [http://your_raspberry_pi_ip:8123](http://your_raspberry_pi_ip:8123). -The Home Assistant configuration is located at `/home/hass`. The virtualenv with the Home Assistant installation is located at `/srv/hass/hass_venv`. As part of the secure installation, a new user is added to your Raspberry Pi to run Home Assistant as named, **hass**. This is a system account and does not have login or other abilities by design. When editing your configuration.yaml files, you will need to run the commands with "sudo" or by switching user. +The Home Assistant configuration is located at `/home/hass/.homeassistant`. The virtualenv with the Home Assistant installation is located at `/srv/hass/hass_venv`. As part of the secure installation, a new user is added to your Raspberry Pi to run Home Assistant as named, **hass**. This is a system account and does not have login or other abilities by design. When editing your configuration.yaml files, you will need to run the commands with "sudo" or by switching user. *Windows users* - Setting up WinSCP to allow this seemlessly is detailed below. By default, installation makes use of a Python Virtualenv. If you wish to not follow this recommendation, you may add the flag `-n` to the end of the install command specified above. @@ -38,18 +38,24 @@ The All-In-One Installer script will do the following automatically: * Setup a python virtualenv to run Home Assistant and components inside. * Run as `hass` service account * Install Home Assistant in a virtualenv -* Build and install Mosquitto from source with websocket support running on ports 1883 and 9001 +* Build and install Mosquitto v1.4.9 from source with websocket support running on ports 1883 and 9001 * Build and Install Python-openzwave in the Home Assistant virtualenv * Build openzwave-control-panel in `/srv/hass/src/open-zwave-control-panel` * Add both Home Assistant and Mosquitto to systemd services to start at boot -To upgrade the All-In-One setup: +To upgrade the All-In-One setup manually: * Login to Raspberry Pi ```ssh pi@your_raspberry_pi_ip``` * Change to hass user `sudo su -s /bin/bash hass` * Change to virtual enviroment `source /srv/hass/hass_venv/bin/activate` * Update HA `pip3 install --upgrade homeassistant` + +To upgrade with fabric: + +* Login to Raspberry Pi ```ssh pi@your_raspberry_pi_ip``` +* Change to `cd ~/fabric-home-assistant` +* Run `fab upgrade_homeassistant` To launch the OZWCP webapp: diff --git a/source/images/blog/2016-06-pycon/crew.jpg b/source/images/blog/2016-06-pycon/crew.jpg new file mode 100644 index 00000000000..bb6ad9631ce Binary files /dev/null and b/source/images/blog/2016-06-pycon/crew.jpg differ diff --git a/source/images/blog/2016-06-pycon/sprint.jpg b/source/images/blog/2016-06-pycon/sprint.jpg new file mode 100644 index 00000000000..5cd8e777dd2 Binary files /dev/null and b/source/images/blog/2016-06-pycon/sprint.jpg differ diff --git a/source/index.html b/source/index.html index ee631ccff22..3c0ddf5b551 100644 --- a/source/index.html +++ b/source/index.html @@ -22,7 +22,7 @@ hide_github_edit: true
-

Latest blog items

+

Recent Blog Posts

{% for post in site.posts limit: 3 %}