text: (function() {
    'use strict';
  
    var globals = typeof window === 'undefined' ? global : window;
    if (typeof globals.require === 'function') return;
  
    var modules = {};
    var cache = {};
    var aliases = {};
    var has = ({}).hasOwnProperty;
  
    var expRe = /^\.\.?(\/|$)/;
    var expand = function(root, name) {
      var results = [], part;
      var parts = (expRe.test(name) ? root + '/' + name : name).split('/');
      for (var i = 0, length = parts.length; i < length; i++) {
        part = parts[i];
        if (part === '..') {
          results.pop();
        } else if (part !== '.' && part !== '') {
          results.push(part);
        }
      }
      return results.join('/');
    };
  
    var dirname = function(path) {
      return path.split('/').slice(0, -1).join('/');
    };
  
    var localRequire = function(path) {
      return function expanded(name) {
        var absolute = expand(dirname(path), name);
        return globals.require(absolute, path);
      };
    };
  
    var initModule = function(name, definition) {
      var hot = null;
      hot = hmr && hmr.createHot(name);
      var module = {id: name, exports: {}, hot: hot};
      cache[name] = module;
      definition(module.exports, localRequire(name), module);
      return module.exports;
    };
  
    var expandAlias = function(name) {
      return aliases[name] ? expandAlias(aliases[name]) : name;
    };
  
    var _resolve = function(name, dep) {
      return expandAlias(expand(dirname(name), dep));
    };
  
    var require = function(name, loaderPath) {
      if (loaderPath == null) loaderPath = '/';
      var path = expandAlias(name);
  
      if (has.call(cache, path)) return cache[path].exports;
      if (has.call(modules, path)) return initModule(path, modules[path]);
  
      throw new Error("Cannot find module '" + name + "' from '" + loaderPath + "'");
    };
  
    require.alias = function(from, to) {
      aliases[to] = from;
    };
  
    var extRe = /\.[^.\/]+$/;
    var indexRe = /\/index(\.[^\/]+)?$/;
    var addExtensions = function(bundle) {
      if (extRe.test(bundle)) {
        var alias = bundle.replace(extRe, '');
        if (!has.call(aliases, alias) || aliases[alias].replace(extRe, '') === alias + '/index') {
          aliases[alias] = bundle;
        }
      }
  
      if (indexRe.test(bundle)) {
        var iAlias = bundle.replace(indexRe, '');
        if (!has.call(aliases, iAlias)) {
          aliases[iAlias] = bundle;
        }
      }
    };
  
    require.register = require.define = function(bundle, fn) {
      if (typeof bundle === 'object') {
        for (var key in bundle) {
          if (has.call(bundle, key)) {
            require.register(key, bundle[key]);
          }
        }
      } else {
        modules[bundle] = fn;
        delete cache[bundle];
        addExtensions(bundle);
      }
    };
  
    require.list = function() {
      var list = [];
      for (var item in modules) {
        if (has.call(modules, item)) {
          list.push(item);
        }
      }
      return list;
    };
  
    var hmr = globals._hmr && new globals._hmr(_resolve, require, modules, cache);
    require._cache = cache;
    require.hmr = hmr && hmr.wrap;
    require.brunch = true;
    globals.require = require;
  })();
  
  (function() {
  var global = window;
  var process;
  var __makeRelativeRequire = function(require, mappings, pref) {
    var none = {};
    var tryReq = function(name, pref) {
      var val;
      try {
        val = require(pref + '/node_modules/' + name);
        return val;
      } catch (e) {
        if (e.toString().indexOf('Cannot find module') === -1) {
          throw e;
        }
  
        if (pref.indexOf('node_modules') !== -1) {
          var s = pref.split('/');
          var i = s.lastIndexOf('node_modules');
          var newPref = s.slice(0, i).join('/');
          return tryReq(name, newPref);
        }
      }
      return none;
    };
    return function(name) {
      if (name in mappings) name = mappings[name];
      if (!name) return;
      if (name[0] !== '.' && pref) {
        var val = tryReq(name, pref);
        if (val !== none) return val;
      }
      return require(name);
    }
  };
  
  require.register("phoenix/priv/static/phoenix.js", function(exports, require, module) {
    require = __makeRelativeRequire(require, {}, "phoenix");
    (function() {
      (function(exports){
  "use strict";
  
  var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
  
  var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
  
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
  
  // Phoenix Channels JavaScript client
  //
  // ## Socket Connection
  //
  // A single connection is established to the server and
  // channels are multiplexed over the connection.
  // Connect to the server using the `Socket` class:
  //
  //     let socket = new Socket("/ws", {params: {userToken: "123"}})
  //     socket.connect()
  //
  // The `Socket` constructor takes the mount point of the socket,
  // the authentication params, as well as options that can be found in
  // the Socket docs, such as configuring the `LongPoll` transport, and
  // heartbeat.
  //
  // ## Channels
  //
  // Channels are isolated, concurrent processes on the server that
  // subscribe to topics and broker events between the client and server.
  // To join a channel, you must provide the topic, and channel params for
  // authorization. Here's an example chat room example where `"new_msg"`
  // events are listened for, messages are pushed to the server, and
  // the channel is joined with ok/error/timeout matches:
  //
  //     let channel = socket.channel("room:123", {token: roomToken})
  //     channel.on("new_msg", msg => console.log("Got message", msg) )
  //     $input.onEnter( e => {
  //       channel.push("new_msg", {body: e.target.val}, 10000)
  //        .receive("ok", (msg) => console.log("created message", msg) )
  //        .receive("error", (reasons) => console.log("create failed", reasons) )
  //        .receive("timeout", () => console.log("Networking issue...") )
  //     })
  //     channel.join()
  //       .receive("ok", ({messages}) => console.log("catching up", messages) )
  //       .receive("error", ({reason}) => console.log("failed join", reason) )
  //       .receive("timeout", () => console.log("Networking issue. Still waiting...") )
  //
  //
  // ## Joining
  //
  // Creating a channel with `socket.channel(topic, params)`, binds the params to
  // `channel.params`, which are sent up on `channel.join()`.
  // Subsequent rejoins will send up the modified params for
  // updating authorization params, or passing up last_message_id information.
  // Successful joins receive an "ok" status, while unsuccessful joins
  // receive "error".
  //
  // ## Duplicate Join Subscriptions
  //
  // While the client may join any number of topics on any number of channels,
  // the client may only hold a single subscription for each unique topic at any
  // given time. When attempting to create a duplicate subscription,
  // the server will close the existing channel, log a warning, and
  // spawn a new channel for the topic. The client will have their
  // `channel.onClose` callbacks fired for the existing channel, and the new
  // channel join will have its receive hooks processed as normal.
  //
  // ## Pushing Messages
  //
  // From the previous example, we can see that pushing messages to the server
  // can be done with `channel.push(eventName, payload)` and we can optionally
  // receive responses from the push. Additionally, we can use
  // `receive("timeout", callback)` to abort waiting for our other `receive` hooks
  //  and take action after some period of waiting. The default timeout is 5000ms.
  //
  //
  // ## Socket Hooks
  //
  // Lifecycle events of the multiplexed connection can be hooked into via
  // `socket.onError()` and `socket.onClose()` events, ie:
  //
  //     socket.onError( () => console.log("there was an error with the connection!") )
  //     socket.onClose( () => console.log("the connection dropped") )
  //
  //
  // ## Channel Hooks
  //
  // For each joined channel, you can bind to `onError` and `onClose` events
  // to monitor the channel lifecycle, ie:
  //
  //     channel.onError( () => console.log("there was an error!") )
  //     channel.onClose( () => console.log("the channel has gone away gracefully") )
  //
  // ### onError hooks
  //
  // `onError` hooks are invoked if the socket connection drops, or the channel
  // crashes on the server. In either case, a channel rejoin is attempted
  // automatically in an exponential backoff manner.
  //
  // ### onClose hooks
  //
  // `onClose` hooks are invoked only in two cases. 1) the channel explicitly
  // closed on the server, or 2). The client explicitly closed, by calling
  // `channel.leave()`
  //
  //
  // ## Presence
  //
  // The `Presence` object provides features for syncing presence information
  // from the server with the client and handling presences joining and leaving.
  //
  // ### Syncing initial state from the server
  //
  // `Presence.syncState` is used to sync the list of presences on the server
  // with the client's state. An optional `onJoin` and `onLeave` callback can
  // be provided to react to changes in the client's local presences across
  // disconnects and reconnects with the server.
  //
  // `Presence.syncDiff` is used to sync a diff of presence join and leave
  // events from the server, as they happen. Like `syncState`, `syncDiff`
  // accepts optional `onJoin` and `onLeave` callbacks to react to a user
  // joining or leaving from a device.
  //
  // ### Listing Presences
  //
  // `Presence.list` is used to return a list of presence information
  // based on the local state of metadata. By default, all presence
  // metadata is returned, but a `listBy` function can be supplied to
  // allow the client to select which metadata to use for a given presence.
  // For example, you may have a user online from different devices with a
  // a metadata status of "online", but they have set themselves to "away"
  // on another device. In this case, they app may choose to use the "away"
  // status for what appears on the UI. The example below defines a `listBy`
  // function which prioritizes the first metadata which was registered for
  // each user. This could be the first tab they opened, or the first device
  // they came online from:
  //
  //     let state = {}
  //     state = Presence.syncState(state, stateFromServer)
  //     let listBy = (id, {metas: [first, ...rest]}) => {
  //       first.count = rest.length + 1 // count of this user's presences
  //       first.id = id
  //       return first
  //     }
  //     let onlineUsers = Presence.list(state, listBy)
  //
  //
  // ### Example Usage
  //
  //     // detect if user has joined for the 1st time or from another tab/device
  //     let onJoin = (id, current, newPres) => {
  //       if(!current){
  //         console.log("user has entered for the first time", newPres)
  //       } else {
  //         console.log("user additional presence", newPres)
  //       }
  //     }
  //     // detect if user has left from all tabs/devices, or is still present
  //     let onLeave = (id, current, leftPres) => {
  //       if(current.metas.length === 0){
  //         console.log("user has left from all devices", leftPres)
  //       } else {
  //         console.log("user left from a device", leftPres)
  //       }
  //     }
  //     let presences = {} // client's initial empty presence state
  //     // receive initial presence data from server, sent after join
  //     myChannel.on("presences", state => {
  //       presences = Presence.syncState(presences, state, onJoin, onLeave)
  //       displayUsers(Presence.list(presences))
  //     })
  //     // receive "presence_diff" from server, containing join/leave events
  //     myChannel.on("presence_diff", diff => {
  //       presences = Presence.syncDiff(presences, diff, onJoin, onLeave)
  //       this.setState({users: Presence.list(room.presences, listBy)})
  //     })
  //
  var VSN = "1.0.0";
  var SOCKET_STATES = { connecting: 0, open: 1, closing: 2, closed: 3 };
  var DEFAULT_TIMEOUT = 10000;
  var CHANNEL_STATES = {
    closed: "closed",
    errored: "errored",
    joined: "joined",
    joining: "joining",
    leaving: "leaving"
  };
  var CHANNEL_EVENTS = {
    close: "phx_close",
    error: "phx_error",
    join: "phx_join",
    reply: "phx_reply",
    leave: "phx_leave"
  };
  var TRANSPORTS = {
    longpoll: "longpoll",
    websocket: "websocket"
  };
  
  var Push = function () {
  
    // Initializes the Push
    //
    // channel - The Channel
    // event - The event, for example `"phx_join"`
    // payload - The payload, for example `{user_id: 123}`
    // timeout - The push timeout in milliseconds
    //
  
    function Push(channel, event, payload, timeout) {
      _classCallCheck(this, Push);
  
      this.channel = channel;
      this.event = event;
      this.payload = payload || {};
      this.receivedResp = null;
      this.timeout = timeout;
      this.timeoutTimer = null;
      this.recHooks = [];
      this.sent = false;
    }
  
    _createClass(Push, [{
      key: "resend",
      value: function resend(timeout) {
        this.timeout = timeout;
        this.cancelRefEvent();
        this.ref = null;
        this.refEvent = null;
        this.receivedResp = null;
        this.sent = false;
        this.send();
      }
    }, {
      key: "send",
      value: function send() {
        if (this.hasReceived("timeout")) {
          return;
        }
        this.startTimeout();
        this.sent = true;
        this.channel.socket.push({
          topic: this.channel.topic,
          event: this.event,
          payload: this.payload,
          ref: this.ref
        });
      }
    }, {
      key: "receive",
      value: function receive(status, callback) {
        if (this.hasReceived(status)) {
          callback(this.receivedResp.response);
        }
  
        this.recHooks.push({ status: status, callback: callback });
        return this;
      }
  
      // private
  
    }, {
      key: "matchReceive",
      value: function matchReceive(_ref) {
        var status = _ref.status;
        var response = _ref.response;
        var ref = _ref.ref;
  
        this.recHooks.filter(function (h) {
          return h.status === status;
        }).forEach(function (h) {
          return h.callback(response);
        });
      }
    }, {
      key: "cancelRefEvent",
      value: function cancelRefEvent() {
        if (!this.refEvent) {
          return;
        }
        this.channel.off(this.refEvent);
      }
    }, {
      key: "cancelTimeout",
      value: function cancelTimeout() {
        clearTimeout(this.timeoutTimer);
        this.timeoutTimer = null;
      }
    }, {
      key: "startTimeout",
      value: function startTimeout() {
        var _this = this;
  
        if (this.timeoutTimer) {
          return;
        }
        this.ref = this.channel.socket.makeRef();
        this.refEvent = this.channel.replyEventName(this.ref);
  
        this.channel.on(this.refEvent, function (payload) {
          _this.cancelRefEvent();
          _this.cancelTimeout();
          _this.receivedResp = payload;
          _this.matchReceive(payload);
        });
  
        this.timeoutTimer = setTimeout(function () {
          _this.trigger("timeout", {});
        }, this.timeout);
      }
    }, {
      key: "hasReceived",
      value: function hasReceived(status) {
        return this.receivedResp && this.receivedResp.status === status;
      }
    }, {
      key: "trigger",
      value: function trigger(status, response) {
        this.channel.trigger(this.refEvent, { status: status, response: response });
      }
    }]);
  
    return Push;
  }();
  
  var Channel = exports.Channel = function () {
    function Channel(topic, params, socket) {
      var _this2 = this;
  
      _classCallCheck(this, Channel);
  
      this.state = CHANNEL_STATES.closed;
      this.topic = topic;
      this.params = params || {};
      this.socket = socket;
      this.bindings = [];
      this.timeout = this.socket.timeout;
      this.joinedOnce = false;
      this.joinPush = new Push(this, CHANNEL_EVENTS.join, this.params, this.timeout);
      this.pushBuffer = [];
      this.rejoinTimer = new Timer(function () {
        return _this2.rejoinUntilConnected();
      }, this.socket.reconnectAfterMs);
      this.joinPush.receive("ok", function () {
        _this2.state = CHANNEL_STATES.joined;
        _this2.rejoinTimer.reset();
        _this2.pushBuffer.forEach(function (pushEvent) {
          return pushEvent.send();
        });
        _this2.pushBuffer = [];
      });
      this.onClose(function () {
        _this2.rejoinTimer.reset();
        _this2.socket.log("channel", "close " + _this2.topic + " " + _this2.joinRef());
        _this2.state = CHANNEL_STATES.closed;
        _this2.socket.remove(_this2);
      });
      this.onError(function (reason) {
        if (_this2.isLeaving() || _this2.isClosed()) {
          return;
        }
        _this2.socket.log("channel", "error " + _this2.topic, reason);
        _this2.state = CHANNEL_STATES.errored;
        _this2.rejoinTimer.scheduleTimeout();
      });
      this.joinPush.receive("timeout", function () {
        if (!_this2.isJoining()) {
          return;
        }
        _this2.socket.log("channel", "timeout " + _this2.topic, _this2.joinPush.timeout);
        _this2.state = CHANNEL_STATES.errored;
        _this2.rejoinTimer.scheduleTimeout();
      });
      this.on(CHANNEL_EVENTS.reply, function (payload, ref) {
        _this2.trigger(_this2.replyEventName(ref), payload);
      });
    }
  
    _createClass(Channel, [{
      key: "rejoinUntilConnected",
      value: function rejoinUntilConnected() {
        this.rejoinTimer.scheduleTimeout();
        if (this.socket.isConnected()) {
          this.rejoin();
        }
      }
    }, {
      key: "join",
      value: function join() {
        var timeout = arguments.length <= 0 || arguments[0] === undefined ? this.timeout : arguments[0];
  
        if (this.joinedOnce) {
          throw "tried to join multiple times. 'join' can only be called a single time per channel instance";
        } else {
          this.joinedOnce = true;
          this.rejoin(timeout);
          return this.joinPush;
        }
      }
    }, {
      key: "onClose",
      value: function onClose(callback) {
        this.on(CHANNEL_EVENTS.close, callback);
      }
    }, {
      key: "onError",
      value: function onError(callback) {
        this.on(CHANNEL_EVENTS.error, function (reason) {
          return callback(reason);
        });
      }
    }, {
      key: "on",
      value: function on(event, callback) {
        this.bindings.push({ event: event, callback: callback });
      }
    }, {
      key: "off",
      value: function off(event) {
        this.bindings = this.bindings.filter(function (bind) {
          return bind.event !== event;
        });
      }
    }, {
      key: "canPush",
      value: function canPush() {
        return this.socket.isConnected() && this.isJoined();
      }
    }, {
      key: "push",
      value: function push(event, payload) {
        var timeout = arguments.length <= 2 || arguments[2] === undefined ? this.timeout : arguments[2];
  
        if (!this.joinedOnce) {
          throw "tried to push '" + event + "' to '" + this.topic + "' before joining. Use channel.join() before pushing events";
        }
        var pushEvent = new Push(this, event, payload, timeout);
        if (this.canPush()) {
          pushEvent.send();
        } else {
          pushEvent.startTimeout();
          this.pushBuffer.push(pushEvent);
        }
  
        return pushEvent;
      }
  
      // Leaves the channel
      //
      // Unsubscribes from server events, and
      // instructs channel to terminate on server
      //
      // Triggers onClose() hooks
      //
      // To receive leave acknowledgements, use the a `receive`
      // hook to bind to the server ack, ie:
      //
      //     channel.leave().receive("ok", () => alert("left!") )
      //
  
    }, {
      key: "leave",
      value: function leave() {
        var _this3 = this;
  
        var timeout = arguments.length <= 0 || arguments[0] === undefined ? this.timeout : arguments[0];
  
        this.state = CHANNEL_STATES.leaving;
        var onClose = function onClose() {
          _this3.socket.log("channel", "leave " + _this3.topic);
          _this3.trigger(CHANNEL_EVENTS.close, "leave", _this3.joinRef());
        };
        var leavePush = new Push(this, CHANNEL_EVENTS.leave, {}, timeout);
        leavePush.receive("ok", function () {
          return onClose();
        }).receive("timeout", function () {
          return onClose();
        });
        leavePush.send();
        if (!this.canPush()) {
          leavePush.trigger("ok", {});
        }
  
        return leavePush;
      }
  
      // Overridable message hook
      //
      // Receives all events for specialized message handling
      // before dispatching to the channel callbacks.
      //
      // Must return the payload, modified or unmodified
  
    }, {
      key: "onMessage",
      value: function onMessage(event, payload, ref) {
        return payload;
      }
  
      // private
  
    }, {
      key: "isMember",
      value: function isMember(topic) {
        return this.topic === topic;
      }
    }, {
      key: "joinRef",
      value: function joinRef() {
        return this.joinPush.ref;
      }
    }, {
      key: "sendJoin",
      value: function sendJoin(timeout) {
        this.state = CHANNEL_STATES.joining;
        this.joinPush.resend(timeout);
      }
    }, {
      key: "rejoin",
      value: function rejoin() {
        var timeout = arguments.length <= 0 || arguments[0] === undefined ? this.timeout : arguments[0];
        if (this.isLeaving()) {
          return;
        }
        this.sendJoin(timeout);
      }
    }, {
      key: "trigger",
      value: function trigger(event, payload, ref) {
        var close = CHANNEL_EVENTS.close;
        var error = CHANNEL_EVENTS.error;
        var leave = CHANNEL_EVENTS.leave;
        var join = CHANNEL_EVENTS.join;
  
        if (ref && [close, error, leave, join].indexOf(event) >= 0 && ref !== this.joinRef()) {
          return;
        }
        var handledPayload = this.onMessage(event, payload, ref);
        if (payload && !handledPayload) {
          throw "channel onMessage callbacks must return the payload, modified or unmodified";
        }
  
        this.bindings.filter(function (bind) {
          return bind.event === event;
        }).map(function (bind) {
          return bind.callback(handledPayload, ref);
        });
      }
    }, {
      key: "replyEventName",
      value: function replyEventName(ref) {
        return "chan_reply_" + ref;
      }
    }, {
      key: "isClosed",
      value: function isClosed() {
        return this.state === CHANNEL_STATES.closed;
      }
    }, {
      key: "isErrored",
      value: function isErrored() {
        return this.state === CHANNEL_STATES.errored;
      }
    }, {
      key: "isJoined",
      value: function isJoined() {
        return this.state === CHANNEL_STATES.joined;
      }
    }, {
      key: "isJoining",
      value: function isJoining() {
        return this.state === CHANNEL_STATES.joining;
      }
    }, {
      key: "isLeaving",
      value: function isLeaving() {
        return this.state === CHANNEL_STATES.leaving;
      }
    }]);
  
    return Channel;
  }();
  
  var Socket = exports.Socket = function () {
  
    // Initializes the Socket
    //
    // endPoint - The string WebSocket endpoint, ie, "ws://example.com/ws",
    //                                               "wss://example.com"
    //                                               "/ws" (inherited host & protocol)
    // opts - Optional configuration
    //   transport - The Websocket Transport, for example WebSocket or Phoenix.LongPoll.
    //               Defaults to WebSocket with automatic LongPoll fallback.
    //   timeout - The default timeout in milliseconds to trigger push timeouts.
    //             Defaults `DEFAULT_TIMEOUT`
    //   heartbeatIntervalMs - The millisec interval to send a heartbeat message
    //   reconnectAfterMs - The optional function that returns the millsec
    //                      reconnect interval. Defaults to stepped backoff of:
    //
    //     function(tries){
    //       return [1000, 5000, 10000][tries - 1] || 10000
    //     }
    //
    //   logger - The optional function for specialized logging, ie:
    //     `logger: (kind, msg, data) => { console.log(`${kind}: ${msg}`, data) }
    //
    //   longpollerTimeout - The maximum timeout of a long poll AJAX request.
    //                        Defaults to 20s (double the server long poll timer).
    //
    //   params - The optional params to pass when connecting
    //
    // For IE8 support use an ES5-shim (https://github.com/es-shims/es5-shim)
    //
  
    function Socket(endPoint) {
      var _this4 = this;
  
      var opts = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
  
      _classCallCheck(this, Socket);
  
      this.stateChangeCallbacks = { open: [], close: [], error: [], message: [] };
      this.channels = [];
      this.sendBuffer = [];
      this.ref = 0;
      this.timeout = opts.timeout || DEFAULT_TIMEOUT;
      this.transport = opts.transport || window.WebSocket || LongPoll;
      this.heartbeatIntervalMs = opts.heartbeatIntervalMs || 30000;
      this.reconnectAfterMs = opts.reconnectAfterMs || function (tries) {
        return [1000, 2000, 5000, 10000][tries - 1] || 10000;
      };
      this.logger = opts.logger || function () {}; // noop
      this.longpollerTimeout = opts.longpollerTimeout || 20000;
      this.params = opts.params || {};
      this.endPoint = endPoint + "/" + TRANSPORTS.websocket;
      this.reconnectTimer = new Timer(function () {
        _this4.disconnect(function () {
          return _this4.connect();
        });
      }, this.reconnectAfterMs);
    }
  
    _createClass(Socket, [{
      key: "protocol",
      value: function protocol() {
        return location.protocol.match(/^https/) ? "wss" : "ws";
      }
    }, {
      key: "endPointURL",
      value: function endPointURL() {
        var uri = Ajax.appendParams(Ajax.appendParams(this.endPoint, this.params), { vsn: VSN });
        if (uri.charAt(0) !== "/") {
          return uri;
        }
        if (uri.charAt(1) === "/") {
          return this.protocol() + ":" + uri;
        }
  
        return this.protocol() + "://" + location.host + uri;
      }
    }, {
      key: "disconnect",
      value: function disconnect(callback, code, reason) {
        if (this.conn) {
          this.conn.onclose = function () {}; // noop
          if (code) {
            this.conn.close(code, reason || "");
          } else {
            this.conn.close();
          }
          this.conn = null;
        }
        callback && callback();
      }
  
      // params - The params to send when connecting, for example `{user_id: userToken}`
  
    }, {
      key: "connect",
      value: function connect(params) {
        var _this5 = this;
  
        if (params) {
          console && console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor");
          this.params = params;
        }
        if (this.conn) {
          return;
        }
  
        this.conn = new this.transport(this.endPointURL());
        this.conn.timeout = this.longpollerTimeout;
        this.conn.onopen = function () {
          return _this5.onConnOpen();
        };
        this.conn.onerror = function (error) {
          return _this5.onConnError(error);
        };
        this.conn.onmessage = function (event) {
          return _this5.onConnMessage(event);
        };
        this.conn.onclose = function (event) {
          return _this5.onConnClose(event);
        };
      }
  
      // Logs the message. Override `this.logger` for specialized logging. noops by default
  
    }, {
      key: "log",
      value: function log(kind, msg, data) {
        this.logger(kind, msg, data);
      }
  
      // Registers callbacks for connection state change events
      //
      // Examples
      //
      //    socket.onError(function(error){ alert("An error occurred") })
      //
  
    }, {
      key: "onOpen",
      value: function onOpen(callback) {
        this.stateChangeCallbacks.open.push(callback);
      }
    }, {
      key: "onClose",
      value: function onClose(callback) {
        this.stateChangeCallbacks.close.push(callback);
      }
    }, {
      key: "onError",
      value: function onError(callback) {
        this.stateChangeCallbacks.error.push(callback);
      }
    }, {
      key: "onMessage",
      value: function onMessage(callback) {
        this.stateChangeCallbacks.message.push(callback);
      }
    }, {
      key: "onConnOpen",
      value: function onConnOpen() {
        var _this6 = this;
  
        this.log("transport", "connected to " + this.endPointURL(), this.transport.prototype);
        this.flushSendBuffer();
        this.reconnectTimer.reset();
        if (!this.conn.skipHeartbeat) {
          clearInterval(this.heartbeatTimer);
          this.heartbeatTimer = setInterval(function () {
            return _this6.sendHeartbeat();
          }, this.heartbeatIntervalMs);
        }
        this.stateChangeCallbacks.open.forEach(function (callback) {
          return callback();
        });
      }
    }, {
      key: "onConnClose",
      value: function onConnClose(event) {
        this.log("transport", "close", event);
        this.triggerChanError();
        clearInterval(this.heartbeatTimer);
        this.reconnectTimer.scheduleTimeout();
        this.stateChangeCallbacks.close.forEach(function (callback) {
          return callback(event);
        });
      }
    }, {
      key: "onConnError",
      value: function onConnError(error) {
        this.log("transport", error);
        this.triggerChanError();
        this.stateChangeCallbacks.error.forEach(function (callback) {
          return callback(error);
        });
      }
    }, {
      key: "triggerChanError",
      value: function triggerChanError() {
        this.channels.forEach(function (channel) {
          return channel.trigger(CHANNEL_EVENTS.error);
        });
      }
    }, {
      key: "connectionState",
      value: function connectionState() {
        switch (this.conn && this.conn.readyState) {
          case SOCKET_STATES.connecting:
            return "connecting";
          case SOCKET_STATES.open:
            return "open";
          case SOCKET_STATES.closing:
            return "closing";
          default:
            return "closed";
        }
      }
    }, {
      key: "isConnected",
      value: function isConnected() {
        return this.connectionState() === "open";
      }
    }, {
      key: "remove",
      value: function remove(channel) {
        this.channels = this.channels.filter(function (c) {
          return c.joinRef() !== channel.joinRef();
        });
      }
    }, {
      key: "channel",
      value: function channel(topic) {
        var chanParams = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
  
        var chan = new Channel(topic, chanParams, this);
        this.channels.push(chan);
        return chan;
      }
    }, {
      key: "push",
      value: function push(data) {
        var _this7 = this;
  
        var topic = data.topic;
        var event = data.event;
        var payload = data.payload;
        var ref = data.ref;
  
        var callback = function callback() {
          return _this7.conn.send(JSON.stringify(data));
        };
        this.log("push", topic + " " + event + " (" + ref + ")", payload);
        if (this.isConnected()) {
          callback();
        } else {
          this.sendBuffer.push(callback);
        }
      }
  
      // Return the next message ref, accounting for overflows
  
    }, {
      key: "makeRef",
      value: function makeRef() {
        var newRef = this.ref + 1;
        if (newRef === this.ref) {
          this.ref = 0;
        } else {
          this.ref = newRef;
        }
  
        return this.ref.toString();
      }
    }, {
      key: "sendHeartbeat",
      value: function sendHeartbeat() {
        if (!this.isConnected()) {
          return;
        }
        this.push({ topic: "phoenix", event: "heartbeat", payload: {}, ref: this.makeRef() });
      }
    }, {
      key: "flushSendBuffer",
      value: function flushSendBuffer() {
        if (this.isConnected() && this.sendBuffer.length > 0) {
          this.sendBuffer.forEach(function (callback) {
            return callback();
          });
          this.sendBuffer = [];
        }
      }
    }, {
      key: "onConnMessage",
      value: function onConnMessage(rawMessage) {
        var msg = JSON.parse(rawMessage.data);
        var topic = msg.topic;
        var event = msg.event;
        var payload = msg.payload;
        var ref = msg.ref;
  
        this.log("receive", (payload.status || "") + " " + topic + " " + event + " " + (ref && "(" + ref + ")" || ""), payload);
        this.channels.filter(function (channel) {
          return channel.isMember(topic);
        }).forEach(function (channel) {
          return channel.trigger(event, payload, ref);
        });
        this.stateChangeCallbacks.message.forEach(function (callback) {
          return callback(msg);
        });
      }
    }]);
  
    return Socket;
  }();
  
  var LongPoll = exports.LongPoll = function () {
    function LongPoll(endPoint) {
      _classCallCheck(this, LongPoll);
  
      this.endPoint = null;
      this.token = null;
      this.skipHeartbeat = true;
      this.onopen = function () {}; // noop
      this.onerror = function () {}; // noop
      this.onmessage = function () {}; // noop
      this.onclose = function () {}; // noop
      this.pollEndpoint = this.normalizeEndpoint(endPoint);
      this.readyState = SOCKET_STATES.connecting;
  
      this.poll();
    }
  
    _createClass(LongPoll, [{
      key: "normalizeEndpoint",
      value: function normalizeEndpoint(endPoint) {
        return endPoint.replace("ws://", "http://").replace("wss://", "https://").replace(new RegExp("(.*)\/" + TRANSPORTS.websocket), "$1/" + TRANSPORTS.longpoll);
      }
    }, {
      key: "endpointURL",
      value: function endpointURL() {
        return Ajax.appendParams(this.pollEndpoint, { token: this.token });
      }
    }, {
      key: "closeAndRetry",
      value: function closeAndRetry() {
        this.close();
        this.readyState = SOCKET_STATES.connecting;
      }
    }, {
      key: "ontimeout",
      value: function ontimeout() {
        this.onerror("timeout");
        this.closeAndRetry();
      }
    }, {
      key: "poll",
      value: function poll() {
        var _this8 = this;
  
        if (!(this.readyState === SOCKET_STATES.open || this.readyState === SOCKET_STATES.connecting)) {
          return;
        }
  
        Ajax.request("GET", this.endpointURL(), "application/json", null, this.timeout, this.ontimeout.bind(this), function (resp) {
          if (resp) {
            var status = resp.status;
            var token = resp.token;
            var messages = resp.messages;
  
            _this8.token = token;
          } else {
            var status = 0;
          }
  
          switch (status) {
            case 200:
              messages.forEach(function (msg) {
                return _this8.onmessage({ data: JSON.stringify(msg) });
              });
              _this8.poll();
              break;
            case 204:
              _this8.poll();
              break;
            case 410:
              _this8.readyState = SOCKET_STATES.open;
              _this8.onopen();
              _this8.poll();
              break;
            case 0:
            case 500:
              _this8.onerror();
              _this8.closeAndRetry();
              break;
            default:
              throw "unhandled poll status " + status;
          }
        });
      }
    }, {
      key: "send",
      value: function send(body) {
        var _this9 = this;
  
        Ajax.request("POST", this.endpointURL(), "application/json", body, this.timeout, this.onerror.bind(this, "timeout"), function (resp) {
          if (!resp || resp.status !== 200) {
            _this9.onerror(status);
            _this9.closeAndRetry();
          }
        });
      }
    }, {
      key: "close",
      value: function close(code, reason) {
        this.readyState = SOCKET_STATES.closed;
        this.onclose();
      }
    }]);
  
    return LongPoll;
  }();
  
  var Ajax = exports.Ajax = function () {
    function Ajax() {
      _classCallCheck(this, Ajax);
    }
  
    _createClass(Ajax, null, [{
      key: "request",
      value: function request(method, endPoint, accept, body, timeout, ontimeout, callback) {
        if (window.XDomainRequest) {
          var req = new XDomainRequest(); // IE8, IE9
          this.xdomainRequest(req, method, endPoint, body, timeout, ontimeout, callback);
        } else {
          var req = window.XMLHttpRequest ? new XMLHttpRequest() : // IE7+, Firefox, Chrome, Opera, Safari
          new ActiveXObject("Microsoft.XMLHTTP"); // IE6, IE5
          this.xhrRequest(req, method, endPoint, accept, body, timeout, ontimeout, callback);
        }
      }
    }, {
      key: "xdomainRequest",
      value: function xdomainRequest(req, method, endPoint, body, timeout, ontimeout, callback) {
        var _this10 = this;
  
        req.timeout = timeout;
        req.open(method, endPoint);
        req.onload = function () {
          var response = _this10.parseJSON(req.responseText);
          callback && callback(response);
        };
        if (ontimeout) {
          req.ontimeout = ontimeout;
        }
  
        // Work around bug in IE9 that requires an attached onprogress handler
        req.onprogress = function () {};
  
        req.send(body);
      }
    }, {
      key: "xhrRequest",
      value: function xhrRequest(req, method, endPoint, accept, body, timeout, ontimeout, callback) {
        var _this11 = this;
  
        req.timeout = timeout;
        req.open(method, endPoint, true);
        req.setRequestHeader("Content-Type", accept);
        req.onerror = function () {
          callback && callback(null);
        };
        req.onreadystatechange = function () {
          if (req.readyState === _this11.states.complete && callback) {
            var response = _this11.parseJSON(req.responseText);
            callback(response);
          }
        };
        if (ontimeout) {
          req.ontimeout = ontimeout;
        }
  
        req.send(body);
      }
    }, {
      key: "parseJSON",
      value: function parseJSON(resp) {
        return resp && resp !== "" ? JSON.parse(resp) : null;
      }
    }, {
      key: "serialize",
      value: function serialize(obj, parentKey) {
        var queryStr = [];
        for (var key in obj) {
          if (!obj.hasOwnProperty(key)) {
            continue;
          }
          var paramKey = parentKey ? parentKey + "[" + key + "]" : key;
          var paramVal = obj[key];
          if ((typeof paramVal === "undefined" ? "undefined" : _typeof(paramVal)) === "object") {
            queryStr.push(this.serialize(paramVal, paramKey));
          } else {
            queryStr.push(encodeURIComponent(paramKey) + "=" + encodeURIComponent(paramVal));
          }
        }
        return queryStr.join("&");
      }
    }, {
      key: "appendParams",
      value: function appendParams(url, params) {
        if (Object.keys(params).length === 0) {
          return url;
        }
  
        var prefix = url.match(/\?/) ? "&" : "?";
        return "" + url + prefix + this.serialize(params);
      }
    }]);
  
    return Ajax;
  }();
  
  Ajax.states = { complete: 4 };
  
  var Presence = exports.Presence = {
    syncState: function syncState(currentState, newState, onJoin, onLeave) {
      var _this12 = this;
  
      var state = this.clone(currentState);
      var joins = {};
      var leaves = {};
  
      this.map(state, function (key, presence) {
        if (!newState[key]) {
          leaves[key] = presence;
        }
      });
      this.map(newState, function (key, newPresence) {
        var currentPresence = state[key];
        if (currentPresence) {
          (function () {
            var newRefs = newPresence.metas.map(function (m) {
              return m.phx_ref;
            });
            var curRefs = currentPresence.metas.map(function (m) {
              return m.phx_ref;
            });
            var joinedMetas = newPresence.metas.filter(function (m) {
              return curRefs.indexOf(m.phx_ref) < 0;
            });
            var leftMetas = currentPresence.metas.filter(function (m) {
              return newRefs.indexOf(m.phx_ref) < 0;
            });
            if (joinedMetas.length > 0) {
              joins[key] = newPresence;
              joins[key].metas = joinedMetas;
            }
            if (leftMetas.length > 0) {
              leaves[key] = _this12.clone(currentPresence);
              leaves[key].metas = leftMetas;
            }
          })();
        } else {
          joins[key] = newPresence;
        }
      });
      return this.syncDiff(state, { joins: joins, leaves: leaves }, onJoin, onLeave);
    },
    syncDiff: function syncDiff(currentState, _ref2, onJoin, onLeave) {
      var joins = _ref2.joins;
      var leaves = _ref2.leaves;
  
      var state = this.clone(currentState);
      if (!onJoin) {
        onJoin = function onJoin() {};
      }
      if (!onLeave) {
        onLeave = function onLeave() {};
      }
  
      this.map(joins, function (key, newPresence) {
        var currentPresence = state[key];
        state[key] = newPresence;
        if (currentPresence) {
          var _state$key$metas;
  
          (_state$key$metas = state[key].metas).unshift.apply(_state$key$metas, _toConsumableArray(currentPresence.metas));
        }
        onJoin(key, currentPresence, newPresence);
      });
      this.map(leaves, function (key, leftPresence) {
        var currentPresence = state[key];
        if (!currentPresence) {
          return;
        }
        var refsToRemove = leftPresence.metas.map(function (m) {
          return m.phx_ref;
        });
        currentPresence.metas = currentPresence.metas.filter(function (p) {
          return refsToRemove.indexOf(p.phx_ref) < 0;
        });
        onLeave(key, currentPresence, leftPresence);
        if (currentPresence.metas.length === 0) {
          delete state[key];
        }
      });
      return state;
    },
    list: function list(presences, chooser) {
      if (!chooser) {
        chooser = function chooser(key, pres) {
          return pres;
        };
      }
  
      return this.map(presences, function (key, presence) {
        return chooser(key, presence);
      });
    },
  
    // private
  
    map: function map(obj, func) {
      return Object.getOwnPropertyNames(obj).map(function (key) {
        return func(key, obj[key]);
      });
    },
    clone: function clone(obj) {
      return JSON.parse(JSON.stringify(obj));
    }
  };
  
  // Creates a timer that accepts a `timerCalc` function to perform
  // calculated timeout retries, such as exponential backoff.
  //
  // ## Examples
  //
  //    let reconnectTimer = new Timer(() => this.connect(), function(tries){
  //      return [1000, 5000, 10000][tries - 1] || 10000
  //    })
  //    reconnectTimer.scheduleTimeout() // fires after 1000
  //    reconnectTimer.scheduleTimeout() // fires after 5000
  //    reconnectTimer.reset()
  //    reconnectTimer.scheduleTimeout() // fires after 1000
  //
  
  var Timer = function () {
    function Timer(callback, timerCalc) {
      _classCallCheck(this, Timer);
  
      this.callback = callback;
      this.timerCalc = timerCalc;
      this.timer = null;
      this.tries = 0;
    }
  
    _createClass(Timer, [{
      key: "reset",
      value: function reset() {
        this.tries = 0;
        clearTimeout(this.timer);
      }
  
      // Cancels any previous scheduleTimeout and schedules callback
  
    }, {
      key: "scheduleTimeout",
      value: function scheduleTimeout() {
        var _this13 = this;
  
        clearTimeout(this.timer);
  
        this.timer = setTimeout(function () {
          _this13.tries = _this13.tries + 1;
          _this13.callback();
        }, this.timerCalc(this.tries + 1));
      }
    }]);
  
    return Timer;
  }();
  
  })(typeof(exports) === "undefined" ? window.Phoenix = window.Phoenix || {} : exports);
    })();
  });
  
  require.register("phoenix_html/priv/static/phoenix_html.js", function(exports, require, module) {
    require = __makeRelativeRequire(require, {}, "phoenix_html");
    (function() {
      'use strict';
  
  function isLinkToSubmitParent(element) {
    var isLinkTag = element.tagName === 'A';
    var shouldSubmitParent = element.getAttribute('data-submit') === 'parent';
  
    return isLinkTag && shouldSubmitParent;
  }
  
  function didHandleSubmitLinkClick(element) {
    while (element && element.getAttribute) {
      if (isLinkToSubmitParent(element)) {
        var message = element.getAttribute('data-confirm');
        if (message === null || confirm(message)) {
          element.parentNode.submit();
        };
        return true;
      } else {
        element = element.parentNode;
      }
    }
    return false;
  }
  
  // for links with HTTP methods other than GET
  window.addEventListener('click', function (event) {
    if (event.target && didHandleSubmitLinkClick(event.target)) {
      event.preventDefault();
      return false;
    }
  }, false);
    })();
  });
  
  require.register("process/browser.js", function(exports, require, module) {
    require = __makeRelativeRequire(require, {}, "process");
    (function() {
      // shim for using process in browser
  var process = module.exports = {};
  
  // cached from whatever global is present so that test runners that stub it
  // don't break things.  But we need to wrap it in a try catch in case it is
  // wrapped in strict mode code which doesn't define any globals.  It's inside a
  // function because try/catches deoptimize in certain engines.
  
  var cachedSetTimeout;
  var cachedClearTimeout;
  
  function defaultSetTimout() {
      throw new Error('setTimeout has not been defined');
  }
  function defaultClearTimeout () {
      throw new Error('clearTimeout has not been defined');
  }
  (function () {
      try {
          if (typeof setTimeout === 'function') {
              cachedSetTimeout = setTimeout;
          } else {
              cachedSetTimeout = defaultSetTimout;
          }
      } catch (e) {
          cachedSetTimeout = defaultSetTimout;
      }
      try {
          if (typeof clearTimeout === 'function') {
              cachedClearTimeout = clearTimeout;
          } else {
              cachedClearTimeout = defaultClearTimeout;
          }
      } catch (e) {
          cachedClearTimeout = defaultClearTimeout;
      }
  } ())
  function runTimeout(fun) {
      if (cachedSetTimeout === setTimeout) {
          //normal enviroments in sane situations
          return setTimeout(fun, 0);
      }
      // if setTimeout wasn't available but was latter defined
      if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
          cachedSetTimeout = setTimeout;
          return setTimeout(fun, 0);
      }
      try {
          // when when somebody has screwed with setTimeout but no I.E. maddness
          return cachedSetTimeout(fun, 0);
      } catch(e){
          try {
              // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
              return cachedSetTimeout.call(null, fun, 0);
          } catch(e){
              // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
              return cachedSetTimeout.call(this, fun, 0);
          }
      }
  
  
  }
  function runClearTimeout(marker) {
      if (cachedClearTimeout === clearTimeout) {
          //normal enviroments in sane situations
          return clearTimeout(marker);
      }
      // if clearTimeout wasn't available but was latter defined
      if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
          cachedClearTimeout = clearTimeout;
          return clearTimeout(marker);
      }
      try {
          // when when somebody has screwed with setTimeout but no I.E. maddness
          return cachedClearTimeout(marker);
      } catch (e){
          try {
              // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally
              return cachedClearTimeout.call(null, marker);
          } catch (e){
              // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
              // Some versions of I.E. have different rules for clearTimeout vs setTimeout
              return cachedClearTimeout.call(this, marker);
          }
      }
  
  
  
  }
  var queue = [];
  var draining = false;
  var currentQueue;
  var queueIndex = -1;
  
  function cleanUpNextTick() {
      if (!draining || !currentQueue) {
          return;
      }
      draining = false;
      if (currentQueue.length) {
          queue = currentQueue.concat(queue);
      } else {
          queueIndex = -1;
      }
      if (queue.length) {
          drainQueue();
      }
  }
  
  function drainQueue() {
      if (draining) {
          return;
      }
      var timeout = runTimeout(cleanUpNextTick);
      draining = true;
  
      var len = queue.length;
      while(len) {
          currentQueue = queue;
          queue = [];
          while (++queueIndex < len) {
              if (currentQueue) {
                  currentQueue[queueIndex].run();
              }
          }
          queueIndex = -1;
          len = queue.length;
      }
      currentQueue = null;
      draining = false;
      runClearTimeout(timeout);
  }
  
  process.nextTick = function (fun) {
      var args = new Array(arguments.length - 1);
      if (arguments.length > 1) {
          for (var i = 1; i < arguments.length; i++) {
              args[i - 1] = arguments[i];
          }
      }
      queue.push(new Item(fun, args));
      if (queue.length === 1 && !draining) {
          runTimeout(drainQueue);
      }
  };
  
  // v8 likes predictible objects
  function Item(fun, array) {
      this.fun = fun;
      this.array = array;
  }
  Item.prototype.run = function () {
      this.fun.apply(null, this.array);
  };
  process.title = 'browser';
  process.browser = true;
  process.env = {};
  process.argv = [];
  process.version = ''; // empty string to avoid regexp issues
  process.versions = {};
  
  function noop() {}
  
  process.on = noop;
  process.addListener = noop;
  process.once = noop;
  process.off = noop;
  process.removeListener = noop;
  process.removeAllListeners = noop;
  process.emit = noop;
  
  process.binding = function (name) {
      throw new Error('process.binding is not supported');
  };
  
  process.cwd = function () { return '/' };
  process.chdir = function (dir) {
      throw new Error('process.chdir is not supported');
  };
  process.umask = function() { return 0; };
    })();
  });
  require.register("web/static/elm/Main.elm", function(exports, require, module) {
  
  });
  
  ;require.register("web/static/elm/Model.elm", function(exports, require, module) {
  
  });
  
  ;require.register("web/static/elm/Routes.elm", function(exports, require, module) {
  
  });
  
  ;require.register("web/static/elm/View.elm", function(exports, require, module) {
  
  });
  
  ;require.register("web/static/js/app.js", function(exports, require, module) {
  'use strict';
  
  require('phoenix_html');
  
  var _main = require('./main');
  
  var _main2 = _interopRequireDefault(_main);
  
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  
  // Brunch automatically concatenates all files in your
  // watched paths. Those paths can be configured at
  // config.paths.watched in "brunch-config.js".
  //
  // However, those files will only be executed if
  // explicitly imported. The only exception are files
  // in vendor, which are never wrapped in imports and
  // therefore are always executed.
  
  // Import dependencies
  //
  // If you no longer want to use a dependency, remember
  // to also remove its path from "config.paths.watched".
  var div = document.getElementById('main');
  
  // Import local files
  //
  // Local files can be imported directly using relative
  // paths "./socket" or full ones "web/static/js/socket".
  
  // import socket from "./socket"
  
  div.innerHTML = '';
  _main2.default.Main.embed(div);
  });
  
  ;require.register("web/static/js/main.js", function(exports, require, module) {
  'use strict';var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj;}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj;};(function(){'use strict';function F2(fun){function wrapper(a){return function(b){return fun(a,b);};}wrapper.arity=2;wrapper.func=fun;return wrapper;}function F3(fun){function wrapper(a){return function(b){return function(c){return fun(a,b,c);};};}wrapper.arity=3;wrapper.func=fun;return wrapper;}function F4(fun){function wrapper(a){return function(b){return function(c){return function(d){return fun(a,b,c,d);};};};}wrapper.arity=4;wrapper.func=fun;return wrapper;}function F5(fun){function wrapper(a){return function(b){return function(c){return function(d){return function(e){return fun(a,b,c,d,e);};};};};}wrapper.arity=5;wrapper.func=fun;return wrapper;}function F6(fun){function wrapper(a){return function(b){return function(c){return function(d){return function(e){return function(f){return fun(a,b,c,d,e,f);};};};};};}wrapper.arity=6;wrapper.func=fun;return wrapper;}function F7(fun){function wrapper(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return fun(a,b,c,d,e,f,g);};};};};};};}wrapper.arity=7;wrapper.func=fun;return wrapper;}function F8(fun){function wrapper(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return fun(a,b,c,d,e,f,g,h);};};};};};};};}wrapper.arity=8;wrapper.func=fun;return wrapper;}function F9(fun){function wrapper(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return function(i){return fun(a,b,c,d,e,f,g,h,i);};};};};};};};};}wrapper.arity=9;wrapper.func=fun;return wrapper;}function A2(fun,a,b){return fun.arity===2?fun.func(a,b):fun(a)(b);}function A3(fun,a,b,c){return fun.arity===3?fun.func(a,b,c):fun(a)(b)(c);}function A4(fun,a,b,c,d){return fun.arity===4?fun.func(a,b,c,d):fun(a)(b)(c)(d);}function A5(fun,a,b,c,d,e){return fun.arity===5?fun.func(a,b,c,d,e):fun(a)(b)(c)(d)(e);}function A6(fun,a,b,c,d,e,f){return fun.arity===6?fun.func(a,b,c,d,e,f):fun(a)(b)(c)(d)(e)(f);}function A7(fun,a,b,c,d,e,f,g){return fun.arity===7?fun.func(a,b,c,d,e,f,g):fun(a)(b)(c)(d)(e)(f)(g);}function A8(fun,a,b,c,d,e,f,g,h){return fun.arity===8?fun.func(a,b,c,d,e,f,g,h):fun(a)(b)(c)(d)(e)(f)(g)(h);}function A9(fun,a,b,c,d,e,f,g,h,i){return fun.arity===9?fun.func(a,b,c,d,e,f,g,h,i):fun(a)(b)(c)(d)(e)(f)(g)(h)(i);}//import Native.Utils //
  var _elm_lang$core$Native_Basics=function(){function div(a,b){return a/b|0;}function rem(a,b){return a%b;}function mod(a,b){if(b===0){throw new Error('Cannot perform mod 0. Division by zero error.');}var r=a%b;var m=a===0?0:b>0?a>=0?r:r+b:-mod(-a,-b);return m===b?0:m;}function logBase(base,n){return Math.log(n)/Math.log(base);}function negate(n){return-n;}function abs(n){return n<0?-n:n;}function min(a,b){return _elm_lang$core$Native_Utils.cmp(a,b)<0?a:b;}function max(a,b){return _elm_lang$core$Native_Utils.cmp(a,b)>0?a:b;}function clamp(lo,hi,n){return _elm_lang$core$Native_Utils.cmp(n,lo)<0?lo:_elm_lang$core$Native_Utils.cmp(n,hi)>0?hi:n;}var ord=['LT','EQ','GT'];function compare(x,y){return{ctor:ord[_elm_lang$core$Native_Utils.cmp(x,y)+1]};}function xor(a,b){return a!==b;}function not(b){return!b;}function isInfinite(n){return n===Infinity||n===-Infinity;}function truncate(n){return n|0;}function degrees(d){return d*Math.PI/180;}function turns(t){return 2*Math.PI*t;}function fromPolar(point){var r=point._0;var t=point._1;return _elm_lang$core$Native_Utils.Tuple2(r*Math.cos(t),r*Math.sin(t));}function toPolar(point){var x=point._0;var y=point._1;return _elm_lang$core$Native_Utils.Tuple2(Math.sqrt(x*x+y*y),Math.atan2(y,x));}return{div:F2(div),rem:F2(rem),mod:F2(mod),pi:Math.PI,e:Math.E,cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:F2(Math.atan2),degrees:degrees,turns:turns,fromPolar:fromPolar,toPolar:toPolar,sqrt:Math.sqrt,logBase:F2(logBase),negate:negate,abs:abs,min:F2(min),max:F2(max),clamp:F3(clamp),compare:F2(compare),xor:F2(xor),not:not,truncate:truncate,ceiling:Math.ceil,floor:Math.floor,round:Math.round,toFloat:function toFloat(x){return x;},isNaN:isNaN,isInfinite:isInfinite};}();//import //
  var _elm_lang$core$Native_Utils=function(){// COMPARISONS
  function eq(x,y){var stack=[];var isEqual=eqHelp(x,y,0,stack);var pair;while(isEqual&&(pair=stack.pop())){isEqual=eqHelp(pair.x,pair.y,0,stack);}return isEqual;}function eqHelp(x,y,depth,stack){if(depth>100){stack.push({x:x,y:y});return true;}if(x===y){return true;}if((typeof x==='undefined'?'undefined':_typeof(x))!=='object'){if(typeof x==='function'){throw new Error('Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense.'+' Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#=='+' which describes why it is this way and what the better version will look like.');}return false;}if(x===null||y===null){return false;}if(x instanceof Date){return x.getTime()===y.getTime();}if(!('ctor'in x)){for(var key in x){if(!eqHelp(x[key],y[key],depth+1,stack)){return false;}}return true;}// convert Dicts and Sets to lists
  if(x.ctor==='RBNode_elm_builtin'||x.ctor==='RBEmpty_elm_builtin'){x=_elm_lang$core$Dict$toList(x);y=_elm_lang$core$Dict$toList(y);}if(x.ctor==='Set_elm_builtin'){x=_elm_lang$core$Set$toList(x);y=_elm_lang$core$Set$toList(y);}// check if lists are equal without recursion
  if(x.ctor==='::'){var a=x;var b=y;while(a.ctor==='::'&&b.ctor==='::'){if(!eqHelp(a._0,b._0,depth+1,stack)){return false;}a=a._1;b=b._1;}return a.ctor===b.ctor;}// check if Arrays are equal
  if(x.ctor==='_Array'){var xs=_elm_lang$core$Native_Array.toJSArray(x);var ys=_elm_lang$core$Native_Array.toJSArray(y);if(xs.length!==ys.length){return false;}for(var i=0;i<xs.length;i++){if(!eqHelp(xs[i],ys[i],depth+1,stack)){return false;}}return true;}if(!eqHelp(x.ctor,y.ctor,depth+1,stack)){return false;}for(var key in x){if(!eqHelp(x[key],y[key],depth+1,stack)){return false;}}return true;}// Code in Generate/JavaScript.hs, Basics.js, and List.js depends on
  // the particular integer values assigned to LT, EQ, and GT.
  var LT=-1,EQ=0,GT=1;function cmp(x,y){if((typeof x==='undefined'?'undefined':_typeof(x))!=='object'){return x===y?EQ:x<y?LT:GT;}if(x instanceof String){var a=x.valueOf();var b=y.valueOf();return a===b?EQ:a<b?LT:GT;}if(x.ctor==='::'||x.ctor==='[]'){while(x.ctor==='::'&&y.ctor==='::'){var ord=cmp(x._0,y._0);if(ord!==EQ){return ord;}x=x._1;y=y._1;}return x.ctor===y.ctor?EQ:x.ctor==='[]'?LT:GT;}if(x.ctor.slice(0,6)==='_Tuple'){var ord;var n=x.ctor.slice(6)-0;var err='cannot compare tuples with more than 6 elements.';if(n===0)return EQ;if(n>=1){ord=cmp(x._0,y._0);if(ord!==EQ)return ord;if(n>=2){ord=cmp(x._1,y._1);if(ord!==EQ)return ord;if(n>=3){ord=cmp(x._2,y._2);if(ord!==EQ)return ord;if(n>=4){ord=cmp(x._3,y._3);if(ord!==EQ)return ord;if(n>=5){ord=cmp(x._4,y._4);if(ord!==EQ)return ord;if(n>=6){ord=cmp(x._5,y._5);if(ord!==EQ)return ord;if(n>=7)throw new Error('Comparison error: '+err);}}}}}}return EQ;}throw new Error('Comparison error: comparison is only defined on ints, '+'floats, times, chars, strings, lists of comparable values, '+'and tuples of comparable values.');}// COMMON VALUES
  var Tuple0={ctor:'_Tuple0'};function Tuple2(x,y){return{ctor:'_Tuple2',_0:x,_1:y};}function chr(c){return new String(c);}// GUID
  var count=0;function guid(_){return count++;}// RECORDS
  function update(oldRecord,updatedFields){var newRecord={};for(var key in oldRecord){newRecord[key]=oldRecord[key];}for(var key in updatedFields){newRecord[key]=updatedFields[key];}return newRecord;}//// LIST STUFF ////
  var Nil={ctor:'[]'};function Cons(hd,tl){return{ctor:'::',_0:hd,_1:tl};}function append(xs,ys){// append Strings
  if(typeof xs==='string'){return xs+ys;}// append Lists
  if(xs.ctor==='[]'){return ys;}var root=Cons(xs._0,Nil);var curr=root;xs=xs._1;while(xs.ctor!=='[]'){curr._1=Cons(xs._0,Nil);xs=xs._1;curr=curr._1;}curr._1=ys;return root;}// CRASHES
  function crash(moduleName,region){return function(message){throw new Error('Ran into a `Debug.crash` in module `'+moduleName+'` '+regionToString(region)+'\n'+'The message provided by the code author is:\n\n    '+message);};}function crashCase(moduleName,region,value){return function(message){throw new Error('Ran into a `Debug.crash` in module `'+moduleName+'`\n\n'+'This was caused by the `case` expression '+regionToString(region)+'.\n'+'One of the branches ended with a crash and the following value got through:\n\n    '+toString(value)+'\n\n'+'The message provided by the code author is:\n\n    '+message);};}function regionToString(region){if(region.start.line==region.end.line){return'on line '+region.start.line;}return'between lines '+region.start.line+' and '+region.end.line;}// TO STRING
  function toString(v){var type=typeof v==='undefined'?'undefined':_typeof(v);if(type==='function'){var name=v.func?v.func.name:v.name;return'<function'+(name===''?'':':')+name+'>';}if(type==='boolean'){return v?'True':'False';}if(type==='number'){return v+'';}if(v instanceof String){return'\''+addSlashes(v,true)+'\'';}if(type==='string'){return'"'+addSlashes(v,false)+'"';}if(v===null){return'null';}if(type==='object'&&'ctor'in v){var ctorStarter=v.ctor.substring(0,5);if(ctorStarter==='_Tupl'){var output=[];for(var k in v){if(k==='ctor')continue;output.push(toString(v[k]));}return'('+output.join(',')+')';}if(ctorStarter==='_Task'){return'<task>';}if(v.ctor==='_Array'){var list=_elm_lang$core$Array$toList(v);return'Array.fromList '+toString(list);}if(v.ctor==='<decoder>'){return'<decoder>';}if(v.ctor==='_Process'){return'<process:'+v.id+'>';}if(v.ctor==='::'){var output='['+toString(v._0);v=v._1;while(v.ctor==='::'){output+=','+toString(v._0);v=v._1;}return output+']';}if(v.ctor==='[]'){return'[]';}if(v.ctor==='Set_elm_builtin'){return'Set.fromList '+toString(_elm_lang$core$Set$toList(v));}if(v.ctor==='RBNode_elm_builtin'||v.ctor==='RBEmpty_elm_builtin'){return'Dict.fromList '+toString(_elm_lang$core$Dict$toList(v));}var output='';for(var i in v){if(i==='ctor')continue;var str=toString(v[i]);var c0=str[0];var parenless=c0==='{'||c0==='('||c0==='<'||c0==='"'||str.indexOf(' ')<0;output+=' '+(parenless?str:'('+str+')');}return v.ctor+output;}if(type==='object'){if(v instanceof Date){return'<'+v.toString()+'>';}if(v.elm_web_socket){return'<websocket>';}var output=[];for(var k in v){output.push(k+' = '+toString(v[k]));}if(output.length===0){return'{}';}return'{ '+output.join(', ')+' }';}return'<internal structure>';}function addSlashes(str,isChar){var s=str.replace(/\\/g,'\\\\').replace(/\n/g,'\\n').replace(/\t/g,'\\t').replace(/\r/g,'\\r').replace(/\v/g,'\\v').replace(/\0/g,'\\0');if(isChar){return s.replace(/\'/g,'\\\'');}else{return s.replace(/\"/g,'\\"');}}return{eq:eq,cmp:cmp,Tuple0:Tuple0,Tuple2:Tuple2,chr:chr,update:update,guid:guid,append:F2(append),crash:crash,crashCase:crashCase,toString:toString};}();var _elm_lang$core$Basics$never=function _elm_lang$core$Basics$never(_p0){never:while(true){var _p1=_p0;var _v1=_p1._0;_p0=_v1;continue never;}};var _elm_lang$core$Basics$uncurry=F2(function(f,_p2){var _p3=_p2;return A2(f,_p3._0,_p3._1);});var _elm_lang$core$Basics$curry=F3(function(f,a,b){return f({ctor:'_Tuple2',_0:a,_1:b});});var _elm_lang$core$Basics$flip=F3(function(f,b,a){return A2(f,a,b);});var _elm_lang$core$Basics$always=F2(function(a,_p4){return a;});var _elm_lang$core$Basics$identity=function _elm_lang$core$Basics$identity(x){return x;};var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['<|']=F2(function(f,x){return f(x);});var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['|>']=F2(function(x,f){return f(x);});var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['>>']=F3(function(f,g,x){return g(f(x));});var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['<<']=F3(function(g,f,x){return g(f(x));});var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['++']=_elm_lang$core$Native_Utils.append;var _elm_lang$core$Basics$toString=_elm_lang$core$Native_Utils.toString;var _elm_lang$core$Basics$isInfinite=_elm_lang$core$Native_Basics.isInfinite;var _elm_lang$core$Basics$isNaN=_elm_lang$core$Native_Basics.isNaN;var _elm_lang$core$Basics$toFloat=_elm_lang$core$Native_Basics.toFloat;var _elm_lang$core$Basics$ceiling=_elm_lang$core$Native_Basics.ceiling;var _elm_lang$core$Basics$floor=_elm_lang$core$Native_Basics.floor;var _elm_lang$core$Basics$truncate=_elm_lang$core$Native_Basics.truncate;var _elm_lang$core$Basics$round=_elm_lang$core$Native_Basics.round;var _elm_lang$core$Basics$not=_elm_lang$core$Native_Basics.not;var _elm_lang$core$Basics$xor=_elm_lang$core$Native_Basics.xor;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['||']=_elm_lang$core$Native_Basics.or;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['&&']=_elm_lang$core$Native_Basics.and;var _elm_lang$core$Basics$max=_elm_lang$core$Native_Basics.max;var _elm_lang$core$Basics$min=_elm_lang$core$Native_Basics.min;var _elm_lang$core$Basics$compare=_elm_lang$core$Native_Basics.compare;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['>=']=_elm_lang$core$Native_Basics.ge;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['<=']=_elm_lang$core$Native_Basics.le;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['>']=_elm_lang$core$Native_Basics.gt;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['<']=_elm_lang$core$Native_Basics.lt;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['/=']=_elm_lang$core$Native_Basics.neq;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['==']=_elm_lang$core$Native_Basics.eq;var _elm_lang$core$Basics$e=_elm_lang$core$Native_Basics.e;var _elm_lang$core$Basics$pi=_elm_lang$core$Native_Basics.pi;var _elm_lang$core$Basics$clamp=_elm_lang$core$Native_Basics.clamp;var _elm_lang$core$Basics$logBase=_elm_lang$core$Native_Basics.logBase;var _elm_lang$core$Basics$abs=_elm_lang$core$Native_Basics.abs;var _elm_lang$core$Basics$negate=_elm_lang$core$Native_Basics.negate;var _elm_lang$core$Basics$sqrt=_elm_lang$core$Native_Basics.sqrt;var _elm_lang$core$Basics$atan2=_elm_lang$core$Native_Basics.atan2;var _elm_lang$core$Basics$atan=_elm_lang$core$Native_Basics.atan;var _elm_lang$core$Basics$asin=_elm_lang$core$Native_Basics.asin;var _elm_lang$core$Basics$acos=_elm_lang$core$Native_Basics.acos;var _elm_lang$core$Basics$tan=_elm_lang$core$Native_Basics.tan;var _elm_lang$core$Basics$sin=_elm_lang$core$Native_Basics.sin;var _elm_lang$core$Basics$cos=_elm_lang$core$Native_Basics.cos;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['^']=_elm_lang$core$Native_Basics.exp;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['%']=_elm_lang$core$Native_Basics.mod;var _elm_lang$core$Basics$rem=_elm_lang$core$Native_Basics.rem;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['//']=_elm_lang$core$Native_Basics.div;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['/']=_elm_lang$core$Native_Basics.floatDiv;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['*']=_elm_lang$core$Native_Basics.mul;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['-']=_elm_lang$core$Native_Basics.sub;var _elm_lang$core$Basics_ops=_elm_lang$core$Basics_ops||{};_elm_lang$core$Basics_ops['+']=_elm_lang$core$Native_Basics.add;var _elm_lang$core$Basics$toPolar=_elm_lang$core$Native_Basics.toPolar;var _elm_lang$core$Basics$fromPolar=_elm_lang$core$Native_Basics.fromPolar;var _elm_lang$core$Basics$turns=_elm_lang$core$Native_Basics.turns;var _elm_lang$core$Basics$degrees=_elm_lang$core$Native_Basics.degrees;var _elm_lang$core$Basics$radians=function _elm_lang$core$Basics$radians(t){return t;};var _elm_lang$core$Basics$GT={ctor:'GT'};var _elm_lang$core$Basics$EQ={ctor:'EQ'};var _elm_lang$core$Basics$LT={ctor:'LT'};var _elm_lang$core$Basics$JustOneMore=function _elm_lang$core$Basics$JustOneMore(a){return{ctor:'JustOneMore',_0:a};};//import Native.Utils //
  var _elm_lang$core$Native_Debug=function(){function log(tag,value){var msg=tag+': '+_elm_lang$core$Native_Utils.toString(value);var process=process||{};if(process.stdout){process.stdout.write(msg);}else{console.log(msg);}return value;}function crash(message){throw new Error(message);}return{crash:crash,log:F2(log)};}();var _elm_lang$core$Debug$crash=_elm_lang$core$Native_Debug.crash;var _elm_lang$core$Debug$log=_elm_lang$core$Native_Debug.log;var _elm_lang$core$Maybe$withDefault=F2(function($default,maybe){var _p0=maybe;if(_p0.ctor==='Just'){return _p0._0;}else{return $default;}});var _elm_lang$core$Maybe$Nothing={ctor:'Nothing'};var _elm_lang$core$Maybe$andThen=F2(function(callback,maybeValue){var _p1=maybeValue;if(_p1.ctor==='Just'){return callback(_p1._0);}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_lang$core$Maybe$Just=function _elm_lang$core$Maybe$Just(a){return{ctor:'Just',_0:a};};var _elm_lang$core$Maybe$map=F2(function(f,maybe){var _p2=maybe;if(_p2.ctor==='Just'){return _elm_lang$core$Maybe$Just(f(_p2._0));}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_lang$core$Maybe$map2=F3(function(func,ma,mb){var _p3={ctor:'_Tuple2',_0:ma,_1:mb};if(_p3.ctor==='_Tuple2'&&_p3._0.ctor==='Just'&&_p3._1.ctor==='Just'){return _elm_lang$core$Maybe$Just(A2(func,_p3._0._0,_p3._1._0));}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_lang$core$Maybe$map3=F4(function(func,ma,mb,mc){var _p4={ctor:'_Tuple3',_0:ma,_1:mb,_2:mc};if(_p4.ctor==='_Tuple3'&&_p4._0.ctor==='Just'&&_p4._1.ctor==='Just'&&_p4._2.ctor==='Just'){return _elm_lang$core$Maybe$Just(A3(func,_p4._0._0,_p4._1._0,_p4._2._0));}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_lang$core$Maybe$map4=F5(function(func,ma,mb,mc,md){var _p5={ctor:'_Tuple4',_0:ma,_1:mb,_2:mc,_3:md};if(_p5.ctor==='_Tuple4'&&_p5._0.ctor==='Just'&&_p5._1.ctor==='Just'&&_p5._2.ctor==='Just'&&_p5._3.ctor==='Just'){return _elm_lang$core$Maybe$Just(A4(func,_p5._0._0,_p5._1._0,_p5._2._0,_p5._3._0));}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_lang$core$Maybe$map5=F6(function(func,ma,mb,mc,md,me){var _p6={ctor:'_Tuple5',_0:ma,_1:mb,_2:mc,_3:md,_4:me};if(_p6.ctor==='_Tuple5'&&_p6._0.ctor==='Just'&&_p6._1.ctor==='Just'&&_p6._2.ctor==='Just'&&_p6._3.ctor==='Just'&&_p6._4.ctor==='Just'){return _elm_lang$core$Maybe$Just(A5(func,_p6._0._0,_p6._1._0,_p6._2._0,_p6._3._0,_p6._4._0));}else{return _elm_lang$core$Maybe$Nothing;}});//import Native.Utils //
  var _elm_lang$core$Native_List=function(){var Nil={ctor:'[]'};function Cons(hd,tl){return{ctor:'::',_0:hd,_1:tl};}function fromArray(arr){var out=Nil;for(var i=arr.length;i--;){out=Cons(arr[i],out);}return out;}function toArray(xs){var out=[];while(xs.ctor!=='[]'){out.push(xs._0);xs=xs._1;}return out;}function foldr(f,b,xs){var arr=toArray(xs);var acc=b;for(var i=arr.length;i--;){acc=A2(f,arr[i],acc);}return acc;}function map2(f,xs,ys){var arr=[];while(xs.ctor!=='[]'&&ys.ctor!=='[]'){arr.push(A2(f,xs._0,ys._0));xs=xs._1;ys=ys._1;}return fromArray(arr);}function map3(f,xs,ys,zs){var arr=[];while(xs.ctor!=='[]'&&ys.ctor!=='[]'&&zs.ctor!=='[]'){arr.push(A3(f,xs._0,ys._0,zs._0));xs=xs._1;ys=ys._1;zs=zs._1;}return fromArray(arr);}function map4(f,ws,xs,ys,zs){var arr=[];while(ws.ctor!=='[]'&&xs.ctor!=='[]'&&ys.ctor!=='[]'&&zs.ctor!=='[]'){arr.push(A4(f,ws._0,xs._0,ys._0,zs._0));ws=ws._1;xs=xs._1;ys=ys._1;zs=zs._1;}return fromArray(arr);}function map5(f,vs,ws,xs,ys,zs){var arr=[];while(vs.ctor!=='[]'&&ws.ctor!=='[]'&&xs.ctor!=='[]'&&ys.ctor!=='[]'&&zs.ctor!=='[]'){arr.push(A5(f,vs._0,ws._0,xs._0,ys._0,zs._0));vs=vs._1;ws=ws._1;xs=xs._1;ys=ys._1;zs=zs._1;}return fromArray(arr);}function sortBy(f,xs){return fromArray(toArray(xs).sort(function(a,b){return _elm_lang$core$Native_Utils.cmp(f(a),f(b));}));}function sortWith(f,xs){return fromArray(toArray(xs).sort(function(a,b){var ord=f(a)(b).ctor;return ord==='EQ'?0:ord==='LT'?-1:1;}));}return{Nil:Nil,Cons:Cons,cons:F2(Cons),toArray:toArray,fromArray:fromArray,foldr:F3(foldr),map2:F3(map2),map3:F4(map3),map4:F5(map4),map5:F6(map5),sortBy:F2(sortBy),sortWith:F2(sortWith)};}();var _elm_lang$core$List$sortWith=_elm_lang$core$Native_List.sortWith;var _elm_lang$core$List$sortBy=_elm_lang$core$Native_List.sortBy;var _elm_lang$core$List$sort=function _elm_lang$core$List$sort(xs){return A2(_elm_lang$core$List$sortBy,_elm_lang$core$Basics$identity,xs);};var _elm_lang$core$List$drop=F2(function(n,list){drop:while(true){if(_elm_lang$core$Native_Utils.cmp(n,0)<1){return list;}else{var _p0=list;if(_p0.ctor==='[]'){return list;}else{var _v1=n-1,_v2=_p0._1;n=_v1;list=_v2;continue drop;}}}});var _elm_lang$core$List$map5=_elm_lang$core$Native_List.map5;var _elm_lang$core$List$map4=_elm_lang$core$Native_List.map4;var _elm_lang$core$List$map3=_elm_lang$core$Native_List.map3;var _elm_lang$core$List$map2=_elm_lang$core$Native_List.map2;var _elm_lang$core$List$any=F2(function(isOkay,list){any:while(true){var _p1=list;if(_p1.ctor==='[]'){return false;}else{if(isOkay(_p1._0)){return true;}else{var _v4=isOkay,_v5=_p1._1;isOkay=_v4;list=_v5;continue any;}}}});var _elm_lang$core$List$all=F2(function(isOkay,list){return!A2(_elm_lang$core$List$any,function(_p2){return!isOkay(_p2);},list);});var _elm_lang$core$List$foldr=_elm_lang$core$Native_List.foldr;var _elm_lang$core$List$foldl=F3(function(func,acc,list){foldl:while(true){var _p3=list;if(_p3.ctor==='[]'){return acc;}else{var _v7=func,_v8=A2(func,_p3._0,acc),_v9=_p3._1;func=_v7;acc=_v8;list=_v9;continue foldl;}}});var _elm_lang$core$List$length=function _elm_lang$core$List$length(xs){return A3(_elm_lang$core$List$foldl,F2(function(_p4,i){return i+1;}),0,xs);};var _elm_lang$core$List$sum=function _elm_lang$core$List$sum(numbers){return A3(_elm_lang$core$List$foldl,F2(function(x,y){return x+y;}),0,numbers);};var _elm_lang$core$List$product=function _elm_lang$core$List$product(numbers){return A3(_elm_lang$core$List$foldl,F2(function(x,y){return x*y;}),1,numbers);};var _elm_lang$core$List$maximum=function _elm_lang$core$List$maximum(list){var _p5=list;if(_p5.ctor==='::'){return _elm_lang$core$Maybe$Just(A3(_elm_lang$core$List$foldl,_elm_lang$core$Basics$max,_p5._0,_p5._1));}else{return _elm_lang$core$Maybe$Nothing;}};var _elm_lang$core$List$minimum=function _elm_lang$core$List$minimum(list){var _p6=list;if(_p6.ctor==='::'){return _elm_lang$core$Maybe$Just(A3(_elm_lang$core$List$foldl,_elm_lang$core$Basics$min,_p6._0,_p6._1));}else{return _elm_lang$core$Maybe$Nothing;}};var _elm_lang$core$List$member=F2(function(x,xs){return A2(_elm_lang$core$List$any,function(a){return _elm_lang$core$Native_Utils.eq(a,x);},xs);});var _elm_lang$core$List$isEmpty=function _elm_lang$core$List$isEmpty(xs){var _p7=xs;if(_p7.ctor==='[]'){return true;}else{return false;}};var _elm_lang$core$List$tail=function _elm_lang$core$List$tail(list){var _p8=list;if(_p8.ctor==='::'){return _elm_lang$core$Maybe$Just(_p8._1);}else{return _elm_lang$core$Maybe$Nothing;}};var _elm_lang$core$List$head=function _elm_lang$core$List$head(list){var _p9=list;if(_p9.ctor==='::'){return _elm_lang$core$Maybe$Just(_p9._0);}else{return _elm_lang$core$Maybe$Nothing;}};var _elm_lang$core$List_ops=_elm_lang$core$List_ops||{};_elm_lang$core$List_ops['::']=_elm_lang$core$Native_List.cons;var _elm_lang$core$List$map=F2(function(f,xs){return A3(_elm_lang$core$List$foldr,F2(function(x,acc){return{ctor:'::',_0:f(x),_1:acc};}),{ctor:'[]'},xs);});var _elm_lang$core$List$filter=F2(function(pred,xs){var conditionalCons=F2(function(front,back){return pred(front)?{ctor:'::',_0:front,_1:back}:back;});return A3(_elm_lang$core$List$foldr,conditionalCons,{ctor:'[]'},xs);});var _elm_lang$core$List$maybeCons=F3(function(f,mx,xs){var _p10=f(mx);if(_p10.ctor==='Just'){return{ctor:'::',_0:_p10._0,_1:xs};}else{return xs;}});var _elm_lang$core$List$filterMap=F2(function(f,xs){return A3(_elm_lang$core$List$foldr,_elm_lang$core$List$maybeCons(f),{ctor:'[]'},xs);});var _elm_lang$core$List$reverse=function _elm_lang$core$List$reverse(list){return A3(_elm_lang$core$List$foldl,F2(function(x,y){return{ctor:'::',_0:x,_1:y};}),{ctor:'[]'},list);};var _elm_lang$core$List$scanl=F3(function(f,b,xs){var scan1=F2(function(x,accAcc){var _p11=accAcc;if(_p11.ctor==='::'){return{ctor:'::',_0:A2(f,x,_p11._0),_1:accAcc};}else{return{ctor:'[]'};}});return _elm_lang$core$List$reverse(A3(_elm_lang$core$List$foldl,scan1,{ctor:'::',_0:b,_1:{ctor:'[]'}},xs));});var _elm_lang$core$List$append=F2(function(xs,ys){var _p12=ys;if(_p12.ctor==='[]'){return xs;}else{return A3(_elm_lang$core$List$foldr,F2(function(x,y){return{ctor:'::',_0:x,_1:y};}),ys,xs);}});var _elm_lang$core$List$concat=function _elm_lang$core$List$concat(lists){return A3(_elm_lang$core$List$foldr,_elm_lang$core$List$append,{ctor:'[]'},lists);};var _elm_lang$core$List$concatMap=F2(function(f,list){return _elm_lang$core$List$concat(A2(_elm_lang$core$List$map,f,list));});var _elm_lang$core$List$partition=F2(function(pred,list){var step=F2(function(x,_p13){var _p14=_p13;var _p16=_p14._0;var _p15=_p14._1;return pred(x)?{ctor:'_Tuple2',_0:{ctor:'::',_0:x,_1:_p16},_1:_p15}:{ctor:'_Tuple2',_0:_p16,_1:{ctor:'::',_0:x,_1:_p15}};});return A3(_elm_lang$core$List$foldr,step,{ctor:'_Tuple2',_0:{ctor:'[]'},_1:{ctor:'[]'}},list);});var _elm_lang$core$List$unzip=function _elm_lang$core$List$unzip(pairs){var step=F2(function(_p18,_p17){var _p19=_p18;var _p20=_p17;return{ctor:'_Tuple2',_0:{ctor:'::',_0:_p19._0,_1:_p20._0},_1:{ctor:'::',_0:_p19._1,_1:_p20._1}};});return A3(_elm_lang$core$List$foldr,step,{ctor:'_Tuple2',_0:{ctor:'[]'},_1:{ctor:'[]'}},pairs);};var _elm_lang$core$List$intersperse=F2(function(sep,xs){var _p21=xs;if(_p21.ctor==='[]'){return{ctor:'[]'};}else{var step=F2(function(x,rest){return{ctor:'::',_0:sep,_1:{ctor:'::',_0:x,_1:rest}};});var spersed=A3(_elm_lang$core$List$foldr,step,{ctor:'[]'},_p21._1);return{ctor:'::',_0:_p21._0,_1:spersed};}});var _elm_lang$core$List$takeReverse=F3(function(n,list,taken){takeReverse:while(true){if(_elm_lang$core$Native_Utils.cmp(n,0)<1){return taken;}else{var _p22=list;if(_p22.ctor==='[]'){return taken;}else{var _v23=n-1,_v24=_p22._1,_v25={ctor:'::',_0:_p22._0,_1:taken};n=_v23;list=_v24;taken=_v25;continue takeReverse;}}}});var _elm_lang$core$List$takeTailRec=F2(function(n,list){return _elm_lang$core$List$reverse(A3(_elm_lang$core$List$takeReverse,n,list,{ctor:'[]'}));});var _elm_lang$core$List$takeFast=F3(function(ctr,n,list){if(_elm_lang$core$Native_Utils.cmp(n,0)<1){return{ctor:'[]'};}else{var _p23={ctor:'_Tuple2',_0:n,_1:list};_v26_5:do{_v26_1:do{if(_p23.ctor==='_Tuple2'){if(_p23._1.ctor==='[]'){return list;}else{if(_p23._1._1.ctor==='::'){switch(_p23._0){case 1:break _v26_1;case 2:return{ctor:'::',_0:_p23._1._0,_1:{ctor:'::',_0:_p23._1._1._0,_1:{ctor:'[]'}}};case 3:if(_p23._1._1._1.ctor==='::'){return{ctor:'::',_0:_p23._1._0,_1:{ctor:'::',_0:_p23._1._1._0,_1:{ctor:'::',_0:_p23._1._1._1._0,_1:{ctor:'[]'}}}};}else{break _v26_5;}default:if(_p23._1._1._1.ctor==='::'&&_p23._1._1._1._1.ctor==='::'){var _p28=_p23._1._1._1._0;var _p27=_p23._1._1._0;var _p26=_p23._1._0;var _p25=_p23._1._1._1._1._0;var _p24=_p23._1._1._1._1._1;return _elm_lang$core$Native_Utils.cmp(ctr,1000)>0?{ctor:'::',_0:_p26,_1:{ctor:'::',_0:_p27,_1:{ctor:'::',_0:_p28,_1:{ctor:'::',_0:_p25,_1:A2(_elm_lang$core$List$takeTailRec,n-4,_p24)}}}}:{ctor:'::',_0:_p26,_1:{ctor:'::',_0:_p27,_1:{ctor:'::',_0:_p28,_1:{ctor:'::',_0:_p25,_1:A3(_elm_lang$core$List$takeFast,ctr+1,n-4,_p24)}}}};}else{break _v26_5;}}}else{if(_p23._0===1){break _v26_1;}else{break _v26_5;}}}}else{break _v26_5;}}while(false);return{ctor:'::',_0:_p23._1._0,_1:{ctor:'[]'}};}while(false);return list;}});var _elm_lang$core$List$take=F2(function(n,list){return A3(_elm_lang$core$List$takeFast,0,n,list);});var _elm_lang$core$List$repeatHelp=F3(function(result,n,value){repeatHelp:while(true){if(_elm_lang$core$Native_Utils.cmp(n,0)<1){return result;}else{var _v27={ctor:'::',_0:value,_1:result},_v28=n-1,_v29=value;result=_v27;n=_v28;value=_v29;continue repeatHelp;}}});var _elm_lang$core$List$repeat=F2(function(n,value){return A3(_elm_lang$core$List$repeatHelp,{ctor:'[]'},n,value);});var _elm_lang$core$List$rangeHelp=F3(function(lo,hi,list){rangeHelp:while(true){if(_elm_lang$core$Native_Utils.cmp(lo,hi)<1){var _v30=lo,_v31=hi-1,_v32={ctor:'::',_0:hi,_1:list};lo=_v30;hi=_v31;list=_v32;continue rangeHelp;}else{return list;}}});var _elm_lang$core$List$range=F2(function(lo,hi){return A3(_elm_lang$core$List$rangeHelp,lo,hi,{ctor:'[]'});});var _elm_lang$core$List$indexedMap=F2(function(f,xs){return A3(_elm_lang$core$List$map2,f,A2(_elm_lang$core$List$range,0,_elm_lang$core$List$length(xs)-1),xs);});var _elm_lang$core$Result$toMaybe=function _elm_lang$core$Result$toMaybe(result){var _p0=result;if(_p0.ctor==='Ok'){return _elm_lang$core$Maybe$Just(_p0._0);}else{return _elm_lang$core$Maybe$Nothing;}};var _elm_lang$core$Result$withDefault=F2(function(def,result){var _p1=result;if(_p1.ctor==='Ok'){return _p1._0;}else{return def;}});var _elm_lang$core$Result$Err=function _elm_lang$core$Result$Err(a){return{ctor:'Err',_0:a};};var _elm_lang$core$Result$andThen=F2(function(callback,result){var _p2=result;if(_p2.ctor==='Ok'){return callback(_p2._0);}else{return _elm_lang$core$Result$Err(_p2._0);}});var _elm_lang$core$Result$Ok=function _elm_lang$core$Result$Ok(a){return{ctor:'Ok',_0:a};};var _elm_lang$core$Result$map=F2(function(func,ra){var _p3=ra;if(_p3.ctor==='Ok'){return _elm_lang$core$Result$Ok(func(_p3._0));}else{return _elm_lang$core$Result$Err(_p3._0);}});var _elm_lang$core$Result$map2=F3(function(func,ra,rb){var _p4={ctor:'_Tuple2',_0:ra,_1:rb};if(_p4._0.ctor==='Ok'){if(_p4._1.ctor==='Ok'){return _elm_lang$core$Result$Ok(A2(func,_p4._0._0,_p4._1._0));}else{return _elm_lang$core$Result$Err(_p4._1._0);}}else{return _elm_lang$core$Result$Err(_p4._0._0);}});var _elm_lang$core$Result$map3=F4(function(func,ra,rb,rc){var _p5={ctor:'_Tuple3',_0:ra,_1:rb,_2:rc};if(_p5._0.ctor==='Ok'){if(_p5._1.ctor==='Ok'){if(_p5._2.ctor==='Ok'){return _elm_lang$core$Result$Ok(A3(func,_p5._0._0,_p5._1._0,_p5._2._0));}else{return _elm_lang$core$Result$Err(_p5._2._0);}}else{return _elm_lang$core$Result$Err(_p5._1._0);}}else{return _elm_lang$core$Result$Err(_p5._0._0);}});var _elm_lang$core$Result$map4=F5(function(func,ra,rb,rc,rd){var _p6={ctor:'_Tuple4',_0:ra,_1:rb,_2:rc,_3:rd};if(_p6._0.ctor==='Ok'){if(_p6._1.ctor==='Ok'){if(_p6._2.ctor==='Ok'){if(_p6._3.ctor==='Ok'){return _elm_lang$core$Result$Ok(A4(func,_p6._0._0,_p6._1._0,_p6._2._0,_p6._3._0));}else{return _elm_lang$core$Result$Err(_p6._3._0);}}else{return _elm_lang$core$Result$Err(_p6._2._0);}}else{return _elm_lang$core$Result$Err(_p6._1._0);}}else{return _elm_lang$core$Result$Err(_p6._0._0);}});var _elm_lang$core$Result$map5=F6(function(func,ra,rb,rc,rd,re){var _p7={ctor:'_Tuple5',_0:ra,_1:rb,_2:rc,_3:rd,_4:re};if(_p7._0.ctor==='Ok'){if(_p7._1.ctor==='Ok'){if(_p7._2.ctor==='Ok'){if(_p7._3.ctor==='Ok'){if(_p7._4.ctor==='Ok'){return _elm_lang$core$Result$Ok(A5(func,_p7._0._0,_p7._1._0,_p7._2._0,_p7._3._0,_p7._4._0));}else{return _elm_lang$core$Result$Err(_p7._4._0);}}else{return _elm_lang$core$Result$Err(_p7._3._0);}}else{return _elm_lang$core$Result$Err(_p7._2._0);}}else{return _elm_lang$core$Result$Err(_p7._1._0);}}else{return _elm_lang$core$Result$Err(_p7._0._0);}});var _elm_lang$core$Result$mapError=F2(function(f,result){var _p8=result;if(_p8.ctor==='Ok'){return _elm_lang$core$Result$Ok(_p8._0);}else{return _elm_lang$core$Result$Err(f(_p8._0));}});var _elm_lang$core$Result$fromMaybe=F2(function(err,maybe){var _p9=maybe;if(_p9.ctor==='Just'){return _elm_lang$core$Result$Ok(_p9._0);}else{return _elm_lang$core$Result$Err(err);}});//import Maybe, Native.List, Native.Utils, Result //
  var _elm_lang$core$Native_String=function(){function isEmpty(str){return str.length===0;}function cons(chr,str){return chr+str;}function uncons(str){var hd=str[0];if(hd){return _elm_lang$core$Maybe$Just(_elm_lang$core$Native_Utils.Tuple2(_elm_lang$core$Native_Utils.chr(hd),str.slice(1)));}return _elm_lang$core$Maybe$Nothing;}function append(a,b){return a+b;}function concat(strs){return _elm_lang$core$Native_List.toArray(strs).join('');}function length(str){return str.length;}function map(f,str){var out=str.split('');for(var i=out.length;i--;){out[i]=f(_elm_lang$core$Native_Utils.chr(out[i]));}return out.join('');}function filter(pred,str){return str.split('').map(_elm_lang$core$Native_Utils.chr).filter(pred).join('');}function reverse(str){return str.split('').reverse().join('');}function foldl(f,b,str){var len=str.length;for(var i=0;i<len;++i){b=A2(f,_elm_lang$core$Native_Utils.chr(str[i]),b);}return b;}function foldr(f,b,str){for(var i=str.length;i--;){b=A2(f,_elm_lang$core$Native_Utils.chr(str[i]),b);}return b;}function split(sep,str){return _elm_lang$core$Native_List.fromArray(str.split(sep));}function join(sep,strs){return _elm_lang$core$Native_List.toArray(strs).join(sep);}function repeat(n,str){var result='';while(n>0){if(n&1){result+=str;}n>>=1,str+=str;}return result;}function slice(start,end,str){return str.slice(start,end);}function left(n,str){return n<1?'':str.slice(0,n);}function right(n,str){return n<1?'':str.slice(-n);}function dropLeft(n,str){return n<1?str:str.slice(n);}function dropRight(n,str){return n<1?str:str.slice(0,-n);}function pad(n,chr,str){var half=(n-str.length)/2;return repeat(Math.ceil(half),chr)+str+repeat(half|0,chr);}function padRight(n,chr,str){return str+repeat(n-str.length,chr);}function padLeft(n,chr,str){return repeat(n-str.length,chr)+str;}function trim(str){return str.trim();}function trimLeft(str){return str.replace(/^\s+/,'');}function trimRight(str){return str.replace(/\s+$/,'');}function words(str){return _elm_lang$core$Native_List.fromArray(str.trim().split(/\s+/g));}function lines(str){return _elm_lang$core$Native_List.fromArray(str.split(/\r\n|\r|\n/g));}function toUpper(str){return str.toUpperCase();}function toLower(str){return str.toLowerCase();}function any(pred,str){for(var i=str.length;i--;){if(pred(_elm_lang$core$Native_Utils.chr(str[i]))){return true;}}return false;}function all(pred,str){for(var i=str.length;i--;){if(!pred(_elm_lang$core$Native_Utils.chr(str[i]))){return false;}}return true;}function contains(sub,str){return str.indexOf(sub)>-1;}function startsWith(sub,str){return str.indexOf(sub)===0;}function endsWith(sub,str){return str.length>=sub.length&&str.lastIndexOf(sub)===str.length-sub.length;}function indexes(sub,str){var subLen=sub.length;if(subLen<1){return _elm_lang$core$Native_List.Nil;}var i=0;var is=[];while((i=str.indexOf(sub,i))>-1){is.push(i);i=i+subLen;}return _elm_lang$core$Native_List.fromArray(is);}function toInt(s){var len=s.length;if(len===0){return _elm_lang$core$Result$Err("could not convert string '"+s+"' to an Int");}var start=0;if(s[0]==='-'){if(len===1){return _elm_lang$core$Result$Err("could not convert string '"+s+"' to an Int");}start=1;}for(var i=start;i<len;++i){var c=s[i];if(c<'0'||'9'<c){return _elm_lang$core$Result$Err("could not convert string '"+s+"' to an Int");}}return _elm_lang$core$Result$Ok(parseInt(s,10));}function toFloat(s){var len=s.length;if(len===0){return _elm_lang$core$Result$Err("could not convert string '"+s+"' to a Float");}var start=0;if(s[0]==='-'){if(len===1){return _elm_lang$core$Result$Err("could not convert string '"+s+"' to a Float");}start=1;}var dotCount=0;for(var i=start;i<len;++i){var c=s[i];if('0'<=c&&c<='9'){continue;}if(c==='.'){dotCount+=1;if(dotCount<=1){continue;}}return _elm_lang$core$Result$Err("could not convert string '"+s+"' to a Float");}return _elm_lang$core$Result$Ok(parseFloat(s));}function toList(str){return _elm_lang$core$Native_List.fromArray(str.split('').map(_elm_lang$core$Native_Utils.chr));}function fromList(chars){return _elm_lang$core$Native_List.toArray(chars).join('');}return{isEmpty:isEmpty,cons:F2(cons),uncons:uncons,append:F2(append),concat:concat,length:length,map:F2(map),filter:F2(filter),reverse:reverse,foldl:F3(foldl),foldr:F3(foldr),split:F2(split),join:F2(join),repeat:F2(repeat),slice:F3(slice),left:F2(left),right:F2(right),dropLeft:F2(dropLeft),dropRight:F2(dropRight),pad:F3(pad),padLeft:F3(padLeft),padRight:F3(padRight),trim:trim,trimLeft:trimLeft,trimRight:trimRight,words:words,lines:lines,toUpper:toUpper,toLower:toLower,any:F2(any),all:F2(all),contains:F2(contains),startsWith:F2(startsWith),endsWith:F2(endsWith),indexes:F2(indexes),toInt:toInt,toFloat:toFloat,toList:toList,fromList:fromList};}();//import Native.Utils //
  var _elm_lang$core$Native_Char=function(){return{fromCode:function fromCode(c){return _elm_lang$core$Native_Utils.chr(String.fromCharCode(c));},toCode:function toCode(c){return c.charCodeAt(0);},toUpper:function toUpper(c){return _elm_lang$core$Native_Utils.chr(c.toUpperCase());},toLower:function toLower(c){return _elm_lang$core$Native_Utils.chr(c.toLowerCase());},toLocaleUpper:function toLocaleUpper(c){return _elm_lang$core$Native_Utils.chr(c.toLocaleUpperCase());},toLocaleLower:function toLocaleLower(c){return _elm_lang$core$Native_Utils.chr(c.toLocaleLowerCase());}};}();var _elm_lang$core$Char$fromCode=_elm_lang$core$Native_Char.fromCode;var _elm_lang$core$Char$toCode=_elm_lang$core$Native_Char.toCode;var _elm_lang$core$Char$toLocaleLower=_elm_lang$core$Native_Char.toLocaleLower;var _elm_lang$core$Char$toLocaleUpper=_elm_lang$core$Native_Char.toLocaleUpper;var _elm_lang$core$Char$toLower=_elm_lang$core$Native_Char.toLower;var _elm_lang$core$Char$toUpper=_elm_lang$core$Native_Char.toUpper;var _elm_lang$core$Char$isBetween=F3(function(low,high,$char){var code=_elm_lang$core$Char$toCode($char);return _elm_lang$core$Native_Utils.cmp(code,_elm_lang$core$Char$toCode(low))>-1&&_elm_lang$core$Native_Utils.cmp(code,_elm_lang$core$Char$toCode(high))<1;});var _elm_lang$core$Char$isUpper=A2(_elm_lang$core$Char$isBetween,_elm_lang$core$Native_Utils.chr('A'),_elm_lang$core$Native_Utils.chr('Z'));var _elm_lang$core$Char$isLower=A2(_elm_lang$core$Char$isBetween,_elm_lang$core$Native_Utils.chr('a'),_elm_lang$core$Native_Utils.chr('z'));var _elm_lang$core$Char$isDigit=A2(_elm_lang$core$Char$isBetween,_elm_lang$core$Native_Utils.chr('0'),_elm_lang$core$Native_Utils.chr('9'));var _elm_lang$core$Char$isOctDigit=A2(_elm_lang$core$Char$isBetween,_elm_lang$core$Native_Utils.chr('0'),_elm_lang$core$Native_Utils.chr('7'));var _elm_lang$core$Char$isHexDigit=function _elm_lang$core$Char$isHexDigit($char){return _elm_lang$core$Char$isDigit($char)||A3(_elm_lang$core$Char$isBetween,_elm_lang$core$Native_Utils.chr('a'),_elm_lang$core$Native_Utils.chr('f'),$char)||A3(_elm_lang$core$Char$isBetween,_elm_lang$core$Native_Utils.chr('A'),_elm_lang$core$Native_Utils.chr('F'),$char);};var _elm_lang$core$String$fromList=_elm_lang$core$Native_String.fromList;var _elm_lang$core$String$toList=_elm_lang$core$Native_String.toList;var _elm_lang$core$String$toFloat=_elm_lang$core$Native_String.toFloat;var _elm_lang$core$String$toInt=_elm_lang$core$Native_String.toInt;var _elm_lang$core$String$indices=_elm_lang$core$Native_String.indexes;var _elm_lang$core$String$indexes=_elm_lang$core$Native_String.indexes;var _elm_lang$core$String$endsWith=_elm_lang$core$Native_String.endsWith;var _elm_lang$core$String$startsWith=_elm_lang$core$Native_String.startsWith;var _elm_lang$core$String$contains=_elm_lang$core$Native_String.contains;var _elm_lang$core$String$all=_elm_lang$core$Native_String.all;var _elm_lang$core$String$any=_elm_lang$core$Native_String.any;var _elm_lang$core$String$toLower=_elm_lang$core$Native_String.toLower;var _elm_lang$core$String$toUpper=_elm_lang$core$Native_String.toUpper;var _elm_lang$core$String$lines=_elm_lang$core$Native_String.lines;var _elm_lang$core$String$words=_elm_lang$core$Native_String.words;var _elm_lang$core$String$trimRight=_elm_lang$core$Native_String.trimRight;var _elm_lang$core$String$trimLeft=_elm_lang$core$Native_String.trimLeft;var _elm_lang$core$String$trim=_elm_lang$core$Native_String.trim;var _elm_lang$core$String$padRight=_elm_lang$core$Native_String.padRight;var _elm_lang$core$String$padLeft=_elm_lang$core$Native_String.padLeft;var _elm_lang$core$String$pad=_elm_lang$core$Native_String.pad;var _elm_lang$core$String$dropRight=_elm_lang$core$Native_String.dropRight;var _elm_lang$core$String$dropLeft=_elm_lang$core$Native_String.dropLeft;var _elm_lang$core$String$right=_elm_lang$core$Native_String.right;var _elm_lang$core$String$left=_elm_lang$core$Native_String.left;var _elm_lang$core$String$slice=_elm_lang$core$Native_String.slice;var _elm_lang$core$String$repeat=_elm_lang$core$Native_String.repeat;var _elm_lang$core$String$join=_elm_lang$core$Native_String.join;var _elm_lang$core$String$split=_elm_lang$core$Native_String.split;var _elm_lang$core$String$foldr=_elm_lang$core$Native_String.foldr;var _elm_lang$core$String$foldl=_elm_lang$core$Native_String.foldl;var _elm_lang$core$String$reverse=_elm_lang$core$Native_String.reverse;var _elm_lang$core$String$filter=_elm_lang$core$Native_String.filter;var _elm_lang$core$String$map=_elm_lang$core$Native_String.map;var _elm_lang$core$String$length=_elm_lang$core$Native_String.length;var _elm_lang$core$String$concat=_elm_lang$core$Native_String.concat;var _elm_lang$core$String$append=_elm_lang$core$Native_String.append;var _elm_lang$core$String$uncons=_elm_lang$core$Native_String.uncons;var _elm_lang$core$String$cons=_elm_lang$core$Native_String.cons;var _elm_lang$core$String$fromChar=function _elm_lang$core$String$fromChar($char){return A2(_elm_lang$core$String$cons,$char,'');};var _elm_lang$core$String$isEmpty=_elm_lang$core$Native_String.isEmpty;var _elm_lang$core$Tuple$mapSecond=F2(function(func,_p0){var _p1=_p0;return{ctor:'_Tuple2',_0:_p1._0,_1:func(_p1._1)};});var _elm_lang$core$Tuple$mapFirst=F2(function(func,_p2){var _p3=_p2;return{ctor:'_Tuple2',_0:func(_p3._0),_1:_p3._1};});var _elm_lang$core$Tuple$second=function _elm_lang$core$Tuple$second(_p4){var _p5=_p4;return _p5._1;};var _elm_lang$core$Tuple$first=function _elm_lang$core$Tuple$first(_p6){var _p7=_p6;return _p7._0;};//import //
  var _elm_lang$core$Native_Platform=function(){// PROGRAMS
  function program(impl){return function(flagDecoder){return function(object,moduleName){object['worker']=function worker(flags){if(typeof flags!=='undefined'){throw new Error('The `'+moduleName+'` module does not need flags.\n'+'Call '+moduleName+'.worker() with no arguments and you should be all set!');}return initialize(impl.init,impl.update,impl.subscriptions,renderer);};};};}function programWithFlags(impl){return function(flagDecoder){return function(object,moduleName){object['worker']=function worker(flags){if(typeof flagDecoder==='undefined'){throw new Error('Are you trying to sneak a Never value into Elm? Trickster!\n'+'It looks like '+moduleName+'.main is defined with `programWithFlags` but has type `Program Never`.\n'+'Use `program` instead if you do not want flags.');}var result=A2(_elm_lang$core$Native_Json.run,flagDecoder,flags);if(result.ctor==='Err'){throw new Error(moduleName+'.worker(...) was called with an unexpected argument.\n'+'I tried to convert it to an Elm value, but ran into this problem:\n\n'+result._0);}return initialize(impl.init(result._0),impl.update,impl.subscriptions,renderer);};};};}function renderer(enqueue,_){return function(_){};}// HTML TO PROGRAM
  function htmlToProgram(vnode){var emptyBag=batch(_elm_lang$core$Native_List.Nil);var noChange=_elm_lang$core$Native_Utils.Tuple2(_elm_lang$core$Native_Utils.Tuple0,emptyBag);return _elm_lang$virtual_dom$VirtualDom$program({init:noChange,view:function view(model){return main;},update:F2(function(msg,model){return noChange;}),subscriptions:function subscriptions(model){return emptyBag;}});}// INITIALIZE A PROGRAM
  function initialize(init,update,subscriptions,renderer){// ambient state
  var managers={};var updateView;// init and update state in main process
  var initApp=_elm_lang$core$Native_Scheduler.nativeBinding(function(callback){var model=init._0;updateView=renderer(enqueue,model);var cmds=init._1;var subs=subscriptions(model);dispatchEffects(managers,cmds,subs);callback(_elm_lang$core$Native_Scheduler.succeed(model));});function onMessage(msg,model){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){var results=A2(update,msg,model);model=results._0;updateView(model);var cmds=results._1;var subs=subscriptions(model);dispatchEffects(managers,cmds,subs);callback(_elm_lang$core$Native_Scheduler.succeed(model));});}var mainProcess=spawnLoop(initApp,onMessage);function enqueue(msg){_elm_lang$core$Native_Scheduler.rawSend(mainProcess,msg);}var ports=setupEffects(managers,enqueue);return ports?{ports:ports}:{};}// EFFECT MANAGERS
  var effectManagers={};function setupEffects(managers,callback){var ports;// setup all necessary effect managers
  for(var key in effectManagers){var manager=effectManagers[key];if(manager.isForeign){ports=ports||{};ports[key]=manager.tag==='cmd'?setupOutgoingPort(key):setupIncomingPort(key,callback);}managers[key]=makeManager(manager,callback);}return ports;}function makeManager(info,callback){var router={main:callback,self:undefined};var tag=info.tag;var onEffects=info.onEffects;var onSelfMsg=info.onSelfMsg;function onMessage(msg,state){if(msg.ctor==='self'){return A3(onSelfMsg,router,msg._0,state);}var fx=msg._0;switch(tag){case'cmd':return A3(onEffects,router,fx.cmds,state);case'sub':return A3(onEffects,router,fx.subs,state);case'fx':return A4(onEffects,router,fx.cmds,fx.subs,state);}}var process=spawnLoop(info.init,onMessage);router.self=process;return process;}function sendToApp(router,msg){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){router.main(msg);callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0));});}function sendToSelf(router,msg){return A2(_elm_lang$core$Native_Scheduler.send,router.self,{ctor:'self',_0:msg});}// HELPER for STATEFUL LOOPS
  function spawnLoop(init,onMessage){var andThen=_elm_lang$core$Native_Scheduler.andThen;function loop(state){var handleMsg=_elm_lang$core$Native_Scheduler.receive(function(msg){return onMessage(msg,state);});return A2(andThen,loop,handleMsg);}var task=A2(andThen,loop,init);return _elm_lang$core$Native_Scheduler.rawSpawn(task);}// BAGS
  function leaf(home){return function(value){return{type:'leaf',home:home,value:value};};}function batch(list){return{type:'node',branches:list};}function map(tagger,bag){return{type:'map',tagger:tagger,tree:bag};}// PIPE BAGS INTO EFFECT MANAGERS
  function dispatchEffects(managers,cmdBag,subBag){var effectsDict={};gatherEffects(true,cmdBag,effectsDict,null);gatherEffects(false,subBag,effectsDict,null);for(var home in managers){var fx=home in effectsDict?effectsDict[home]:{cmds:_elm_lang$core$Native_List.Nil,subs:_elm_lang$core$Native_List.Nil};_elm_lang$core$Native_Scheduler.rawSend(managers[home],{ctor:'fx',_0:fx});}}function gatherEffects(isCmd,bag,effectsDict,taggers){switch(bag.type){case'leaf':var home=bag.home;var effect=toEffect(isCmd,home,taggers,bag.value);effectsDict[home]=insert(isCmd,effect,effectsDict[home]);return;case'node':var list=bag.branches;while(list.ctor!=='[]'){gatherEffects(isCmd,list._0,effectsDict,taggers);list=list._1;}return;case'map':gatherEffects(isCmd,bag.tree,effectsDict,{tagger:bag.tagger,rest:taggers});return;}}function toEffect(isCmd,home,taggers,value){function applyTaggers(x){var temp=taggers;while(temp){x=temp.tagger(x);temp=temp.rest;}return x;}var map=isCmd?effectManagers[home].cmdMap:effectManagers[home].subMap;return A2(map,applyTaggers,value);}function insert(isCmd,newEffect,effects){effects=effects||{cmds:_elm_lang$core$Native_List.Nil,subs:_elm_lang$core$Native_List.Nil};if(isCmd){effects.cmds=_elm_lang$core$Native_List.Cons(newEffect,effects.cmds);return effects;}effects.subs=_elm_lang$core$Native_List.Cons(newEffect,effects.subs);return effects;}// PORTS
  function checkPortName(name){if(name in effectManagers){throw new Error('There can only be one port named `'+name+'`, but your program has multiple.');}}// OUTGOING PORTS
  function outgoingPort(name,converter){checkPortName(name);effectManagers[name]={tag:'cmd',cmdMap:outgoingPortMap,converter:converter,isForeign:true};return leaf(name);}var outgoingPortMap=F2(function cmdMap(tagger,value){return value;});function setupOutgoingPort(name){var subs=[];var converter=effectManagers[name].converter;// CREATE MANAGER
  var init=_elm_lang$core$Native_Scheduler.succeed(null);function onEffects(router,cmdList,state){while(cmdList.ctor!=='[]'){// grab a separate reference to subs in case unsubscribe is called
  var currentSubs=subs;var value=converter(cmdList._0);for(var i=0;i<currentSubs.length;i++){currentSubs[i](value);}cmdList=cmdList._1;}return init;}effectManagers[name].init=init;effectManagers[name].onEffects=F3(onEffects);// PUBLIC API
  function subscribe(callback){subs.push(callback);}function unsubscribe(callback){// copy subs into a new array in case unsubscribe is called within a
  // subscribed callback
  subs=subs.slice();var index=subs.indexOf(callback);if(index>=0){subs.splice(index,1);}}return{subscribe:subscribe,unsubscribe:unsubscribe};}// INCOMING PORTS
  function incomingPort(name,converter){checkPortName(name);effectManagers[name]={tag:'sub',subMap:incomingPortMap,converter:converter,isForeign:true};return leaf(name);}var incomingPortMap=F2(function subMap(tagger,finalTagger){return function(value){return tagger(finalTagger(value));};});function setupIncomingPort(name,callback){var sentBeforeInit=[];var subs=_elm_lang$core$Native_List.Nil;var converter=effectManagers[name].converter;var currentOnEffects=preInitOnEffects;var currentSend=preInitSend;// CREATE MANAGER
  var init=_elm_lang$core$Native_Scheduler.succeed(null);function preInitOnEffects(router,subList,state){var postInitResult=postInitOnEffects(router,subList,state);for(var i=0;i<sentBeforeInit.length;i++){postInitSend(sentBeforeInit[i]);}sentBeforeInit=null;// to release objects held in queue
  currentSend=postInitSend;currentOnEffects=postInitOnEffects;return postInitResult;}function postInitOnEffects(router,subList,state){subs=subList;return init;}function onEffects(router,subList,state){return currentOnEffects(router,subList,state);}effectManagers[name].init=init;effectManagers[name].onEffects=F3(onEffects);// PUBLIC API
  function preInitSend(value){sentBeforeInit.push(value);}function postInitSend(incomingValue){var result=A2(_elm_lang$core$Json_Decode$decodeValue,converter,incomingValue);if(result.ctor==='Err'){throw new Error('Trying to send an unexpected type of value through port `'+name+'`:\n'+result._0);}var value=result._0;var temp=subs;while(temp.ctor!=='[]'){callback(temp._0(value));temp=temp._1;}}function send(incomingValue){currentSend(incomingValue);}return{send:send};}return{// routers
  sendToApp:F2(sendToApp),sendToSelf:F2(sendToSelf),// global setup
  effectManagers:effectManagers,outgoingPort:outgoingPort,incomingPort:incomingPort,htmlToProgram:htmlToProgram,program:program,programWithFlags:programWithFlags,initialize:initialize,// effect bags
  leaf:leaf,batch:batch,map:F2(map)};}();//import Native.Utils //
  var _elm_lang$core$Native_Scheduler=function(){var MAX_STEPS=10000;// TASKS
  function succeed(value){return{ctor:'_Task_succeed',value:value};}function fail(error){return{ctor:'_Task_fail',value:error};}function nativeBinding(callback){return{ctor:'_Task_nativeBinding',callback:callback,cancel:null};}function andThen(callback,task){return{ctor:'_Task_andThen',callback:callback,task:task};}function onError(callback,task){return{ctor:'_Task_onError',callback:callback,task:task};}function receive(callback){return{ctor:'_Task_receive',callback:callback};}// PROCESSES
  function rawSpawn(task){var process={ctor:'_Process',id:_elm_lang$core$Native_Utils.guid(),root:task,stack:null,mailbox:[]};enqueue(process);return process;}function spawn(task){return nativeBinding(function(callback){var process=rawSpawn(task);callback(succeed(process));});}function rawSend(process,msg){process.mailbox.push(msg);enqueue(process);}function send(process,msg){return nativeBinding(function(callback){rawSend(process,msg);callback(succeed(_elm_lang$core$Native_Utils.Tuple0));});}function kill(process){return nativeBinding(function(callback){var root=process.root;if(root.ctor==='_Task_nativeBinding'&&root.cancel){root.cancel();}process.root=null;callback(succeed(_elm_lang$core$Native_Utils.Tuple0));});}function sleep(time){return nativeBinding(function(callback){var id=setTimeout(function(){callback(succeed(_elm_lang$core$Native_Utils.Tuple0));},time);return function(){clearTimeout(id);};});}// STEP PROCESSES
  function step(numSteps,process){while(numSteps<MAX_STEPS){var ctor=process.root.ctor;if(ctor==='_Task_succeed'){while(process.stack&&process.stack.ctor==='_Task_onError'){process.stack=process.stack.rest;}if(process.stack===null){break;}process.root=process.stack.callback(process.root.value);process.stack=process.stack.rest;++numSteps;continue;}if(ctor==='_Task_fail'){while(process.stack&&process.stack.ctor==='_Task_andThen'){process.stack=process.stack.rest;}if(process.stack===null){break;}process.root=process.stack.callback(process.root.value);process.stack=process.stack.rest;++numSteps;continue;}if(ctor==='_Task_andThen'){process.stack={ctor:'_Task_andThen',callback:process.root.callback,rest:process.stack};process.root=process.root.task;++numSteps;continue;}if(ctor==='_Task_onError'){process.stack={ctor:'_Task_onError',callback:process.root.callback,rest:process.stack};process.root=process.root.task;++numSteps;continue;}if(ctor==='_Task_nativeBinding'){process.root.cancel=process.root.callback(function(newRoot){process.root=newRoot;enqueue(process);});break;}if(ctor==='_Task_receive'){var mailbox=process.mailbox;if(mailbox.length===0){break;}process.root=process.root.callback(mailbox.shift());++numSteps;continue;}throw new Error(ctor);}if(numSteps<MAX_STEPS){return numSteps+1;}enqueue(process);return numSteps;}// WORK QUEUE
  var working=false;var workQueue=[];function enqueue(process){workQueue.push(process);if(!working){setTimeout(work,0);working=true;}}function work(){var numSteps=0;var process;while(numSteps<MAX_STEPS&&(process=workQueue.shift())){if(process.root){numSteps=step(numSteps,process);}}if(!process){working=false;return;}setTimeout(work,0);}return{succeed:succeed,fail:fail,nativeBinding:nativeBinding,andThen:F2(andThen),onError:F2(onError),receive:receive,spawn:spawn,kill:kill,sleep:sleep,send:F2(send),rawSpawn:rawSpawn,rawSend:rawSend};}();var _elm_lang$core$Platform_Cmd$batch=_elm_lang$core$Native_Platform.batch;var _elm_lang$core$Platform_Cmd$none=_elm_lang$core$Platform_Cmd$batch({ctor:'[]'});var _elm_lang$core$Platform_Cmd_ops=_elm_lang$core$Platform_Cmd_ops||{};_elm_lang$core$Platform_Cmd_ops['!']=F2(function(model,commands){return{ctor:'_Tuple2',_0:model,_1:_elm_lang$core$Platform_Cmd$batch(commands)};});var _elm_lang$core$Platform_Cmd$map=_elm_lang$core$Native_Platform.map;var _elm_lang$core$Platform_Cmd$Cmd={ctor:'Cmd'};var _elm_lang$core$Platform_Sub$batch=_elm_lang$core$Native_Platform.batch;var _elm_lang$core$Platform_Sub$none=_elm_lang$core$Platform_Sub$batch({ctor:'[]'});var _elm_lang$core$Platform_Sub$map=_elm_lang$core$Native_Platform.map;var _elm_lang$core$Platform_Sub$Sub={ctor:'Sub'};var _elm_lang$core$Platform$hack=_elm_lang$core$Native_Scheduler.succeed;var _elm_lang$core$Platform$sendToSelf=_elm_lang$core$Native_Platform.sendToSelf;var _elm_lang$core$Platform$sendToApp=_elm_lang$core$Native_Platform.sendToApp;var _elm_lang$core$Platform$programWithFlags=_elm_lang$core$Native_Platform.programWithFlags;var _elm_lang$core$Platform$program=_elm_lang$core$Native_Platform.program;var _elm_lang$core$Platform$Program={ctor:'Program'};var _elm_lang$core$Platform$Task={ctor:'Task'};var _elm_lang$core$Platform$ProcessId={ctor:'ProcessId'};var _elm_lang$core$Platform$Router={ctor:'Router'};var _elm_community$easing_functions$Ease$reverse=F2(function(easing,time){return easing(1-time);});var _elm_community$easing_functions$Ease$flip=F2(function(easing,time){return 1-easing(1-time);});var _elm_community$easing_functions$Ease$retour=F2(function(easing,time){return _elm_lang$core$Native_Utils.cmp(time,0.5)<0?easing(time*2):A2(_elm_community$easing_functions$Ease$flip,easing,(time-0.5)*2);});var _elm_community$easing_functions$Ease$inOut=F3(function(e1,e2,time){return _elm_lang$core$Native_Utils.cmp(time,0.5)<0?e1(time*2)/2:0.5+e2((time-0.5)*2)/2;});var _elm_community$easing_functions$Ease$inElastic=function _elm_community$easing_functions$Ease$inElastic(time){if(_elm_lang$core$Native_Utils.eq(time,0.0)){return 0.0;}else{var t=time-1;var p=0.3;var s=7.5e-2;return 0-Math.pow(2,10*t)*_elm_lang$core$Basics$sin((t-s)*(2*_elm_lang$core$Basics$pi)/p);}};var _elm_community$easing_functions$Ease$outElastic=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inElastic);var _elm_community$easing_functions$Ease$inOutElastic=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inElastic,_elm_community$easing_functions$Ease$outElastic);var _elm_community$easing_functions$Ease$outBounce=function _elm_community$easing_functions$Ease$outBounce(time){var t4=time-2.625/2.75;var t3=time-2.25/2.75;var t2=time-1.5/2.75;var a=7.5625;return _elm_lang$core$Native_Utils.cmp(time,1/2.75)<0?a*time*time:_elm_lang$core$Native_Utils.cmp(time,2/2.75)<0?a*t2*t2+0.75:_elm_lang$core$Native_Utils.cmp(time,2.5/2.75)<0?a*t3*t3+0.9375:a*t4*t4+0.984375;};var _elm_community$easing_functions$Ease$inBounce=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$outBounce);var _elm_community$easing_functions$Ease$inOutBounce=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inBounce,_elm_community$easing_functions$Ease$outBounce);var _elm_community$easing_functions$Ease$inBack=function _elm_community$easing_functions$Ease$inBack(time){return time*time*(2.70158*time-1.70158);};var _elm_community$easing_functions$Ease$outBack=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inBack);var _elm_community$easing_functions$Ease$inOutBack=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inBack,_elm_community$easing_functions$Ease$outBack);var _elm_community$easing_functions$Ease$outCirc=function _elm_community$easing_functions$Ease$outCirc(time){return _elm_lang$core$Basics$sqrt(1-Math.pow(time-1,2));};var _elm_community$easing_functions$Ease$inCirc=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$outCirc);var _elm_community$easing_functions$Ease$inOutCirc=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inCirc,_elm_community$easing_functions$Ease$outCirc);var _elm_community$easing_functions$Ease$inExpo=function _elm_community$easing_functions$Ease$inExpo(time){return _elm_lang$core$Native_Utils.eq(time,0.0)?0.0:Math.pow(2,10*(time-1));};var _elm_community$easing_functions$Ease$outExpo=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inExpo);var _elm_community$easing_functions$Ease$inOutExpo=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inExpo,_elm_community$easing_functions$Ease$outExpo);var _elm_community$easing_functions$Ease$outSine=function _elm_community$easing_functions$Ease$outSine(time){return _elm_lang$core$Basics$sin(time*(_elm_lang$core$Basics$pi/2));};var _elm_community$easing_functions$Ease$inSine=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$outSine);var _elm_community$easing_functions$Ease$inOutSine=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inSine,_elm_community$easing_functions$Ease$outSine);var _elm_community$easing_functions$Ease$inQuint=function _elm_community$easing_functions$Ease$inQuint(time){return Math.pow(time,5);};var _elm_community$easing_functions$Ease$outQuint=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inQuint);var _elm_community$easing_functions$Ease$inOutQuint=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inQuint,_elm_community$easing_functions$Ease$outQuint);var _elm_community$easing_functions$Ease$inQuart=function _elm_community$easing_functions$Ease$inQuart(time){return Math.pow(time,4);};var _elm_community$easing_functions$Ease$outQuart=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inQuart);var _elm_community$easing_functions$Ease$inOutQuart=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inQuart,_elm_community$easing_functions$Ease$outQuart);var _elm_community$easing_functions$Ease$inCubic=function _elm_community$easing_functions$Ease$inCubic(time){return Math.pow(time,3);};var _elm_community$easing_functions$Ease$outCubic=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inCubic);var _elm_community$easing_functions$Ease$inOutCubic=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inCubic,_elm_community$easing_functions$Ease$outCubic);var _elm_community$easing_functions$Ease$inQuad=function _elm_community$easing_functions$Ease$inQuad(time){return Math.pow(time,2);};var _elm_community$easing_functions$Ease$outQuad=_elm_community$easing_functions$Ease$flip(_elm_community$easing_functions$Ease$inQuad);var _elm_community$easing_functions$Ease$inOutQuad=A2(_elm_community$easing_functions$Ease$inOut,_elm_community$easing_functions$Ease$inQuad,_elm_community$easing_functions$Ease$outQuad);var _elm_community$easing_functions$Ease$bezier=F5(function(x1,y1,x2,y2,time){var pair=F4(function(interpolate,_p1,_p0,v){var _p2=_p1;var _p3=_p0;return{ctor:'_Tuple2',_0:A3(interpolate,_p2._0,_p3._0,v),_1:A3(interpolate,_p2._1,_p3._1,v)};});var lerp=F3(function(from,to,v){return from+(to-from)*v;});var casteljau=function casteljau(ps){casteljau:while(true){var _p4=ps;if(_p4.ctor==='::'&&_p4._0.ctor==='_Tuple2'&&_p4._1.ctor==='[]'){return _p4._0._1;}else{var _p5=_p4;var _v3=A3(_elm_lang$core$List$map2,F2(function(x,y){return A4(pair,lerp,x,y,time);}),_p5,A2(_elm_lang$core$Maybe$withDefault,{ctor:'[]'},_elm_lang$core$List$tail(_p5)));ps=_v3;continue casteljau;}}};return casteljau({ctor:'::',_0:{ctor:'_Tuple2',_0:0,_1:0},_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:x1,_1:y1},_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:x2,_1:y2},_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:1,_1:1},_1:{ctor:'[]'}}}}});});var _elm_community$easing_functions$Ease$linear=_elm_lang$core$Basics$identity;//import Native.List //
  var _elm_lang$core$Native_Array=function(){// A RRB-Tree has two distinct data types.
  // Leaf -> "height"  is always 0
  //         "table"   is an array of elements
  // Node -> "height"  is always greater than 0
  //         "table"   is an array of child nodes
  //         "lengths" is an array of accumulated lengths of the child nodes
  // M is the maximal table size. 32 seems fast. E is the allowed increase
  // of search steps when concatting to find an index. Lower values will
  // decrease balancing, but will increase search steps.
  var M=32;var E=2;// An empty array.
  var empty={ctor:'_Array',height:0,table:[]};function get(i,array){if(i<0||i>=length(array)){throw new Error('Index '+i+' is out of range. Check the length of '+'your array first or use getMaybe or getWithDefault.');}return unsafeGet(i,array);}function unsafeGet(i,array){for(var x=array.height;x>0;x--){var slot=i>>x*5;while(array.lengths[slot]<=i){slot++;}if(slot>0){i-=array.lengths[slot-1];}array=array.table[slot];}return array.table[i];}// Sets the value at the index i. Only the nodes leading to i will get
  // copied and updated.
  function set(i,item,array){if(i<0||length(array)<=i){return array;}return unsafeSet(i,item,array);}function unsafeSet(i,item,array){array=nodeCopy(array);if(array.height===0){array.table[i]=item;}else{var slot=getSlot(i,array);if(slot>0){i-=array.lengths[slot-1];}array.table[slot]=unsafeSet(i,item,array.table[slot]);}return array;}function initialize(len,f){if(len<=0){return empty;}var h=Math.floor(Math.log(len)/Math.log(M));return initialize_(f,h,0,len);}function initialize_(f,h,from,to){if(h===0){var table=new Array((to-from)%(M+1));for(var i=0;i<table.length;i++){table[i]=f(from+i);}return{ctor:'_Array',height:0,table:table};}var step=Math.pow(M,h);var table=new Array(Math.ceil((to-from)/step));var lengths=new Array(table.length);for(var i=0;i<table.length;i++){table[i]=initialize_(f,h-1,from+i*step,Math.min(from+(i+1)*step,to));lengths[i]=length(table[i])+(i>0?lengths[i-1]:0);}return{ctor:'_Array',height:h,table:table,lengths:lengths};}function fromList(list){if(list.ctor==='[]'){return empty;}// Allocate M sized blocks (table) and write list elements to it.
  var table=new Array(M);var nodes=[];var i=0;while(list.ctor!=='[]'){table[i]=list._0;list=list._1;i++;// table is full, so we can push a leaf containing it into the
  // next node.
  if(i===M){var leaf={ctor:'_Array',height:0,table:table};fromListPush(leaf,nodes);table=new Array(M);i=0;}}// Maybe there is something left on the table.
  if(i>0){var leaf={ctor:'_Array',height:0,table:table.splice(0,i)};fromListPush(leaf,nodes);}// Go through all of the nodes and eventually push them into higher nodes.
  for(var h=0;h<nodes.length-1;h++){if(nodes[h].table.length>0){fromListPush(nodes[h],nodes);}}var head=nodes[nodes.length-1];if(head.height>0&&head.table.length===1){return head.table[0];}else{return head;}}// Push a node into a higher node as a child.
  function fromListPush(toPush,nodes){var h=toPush.height;// Maybe the node on this height does not exist.
  if(nodes.length===h){var node={ctor:'_Array',height:h+1,table:[],lengths:[]};nodes.push(node);}nodes[h].table.push(toPush);var len=length(toPush);if(nodes[h].lengths.length>0){len+=nodes[h].lengths[nodes[h].lengths.length-1];}nodes[h].lengths.push(len);if(nodes[h].table.length===M){fromListPush(nodes[h],nodes);nodes[h]={ctor:'_Array',height:h+1,table:[],lengths:[]};}}// Pushes an item via push_ to the bottom right of a tree.
  function push(item,a){var pushed=push_(item,a);if(pushed!==null){return pushed;}var newTree=create(item,a.height);return siblise(a,newTree);}// Recursively tries to push an item to the bottom-right most
  // tree possible. If there is no space left for the item,
  // null will be returned.
  function push_(item,a){// Handle resursion stop at leaf level.
  if(a.height===0){if(a.table.length<M){var newA={ctor:'_Array',height:0,table:a.table.slice()};newA.table.push(item);return newA;}else{return null;}}// Recursively push
  var pushed=push_(item,botRight(a));// There was space in the bottom right tree, so the slot will
  // be updated.
  if(pushed!==null){var newA=nodeCopy(a);newA.table[newA.table.length-1]=pushed;newA.lengths[newA.lengths.length-1]++;return newA;}// When there was no space left, check if there is space left
  // for a new slot with a tree which contains only the item
  // at the bottom.
  if(a.table.length<M){var newSlot=create(item,a.height-1);var newA=nodeCopy(a);newA.table.push(newSlot);newA.lengths.push(newA.lengths[newA.lengths.length-1]+length(newSlot));return newA;}else{return null;}}// Converts an array into a list of elements.
  function toList(a){return toList_(_elm_lang$core$Native_List.Nil,a);}function toList_(list,a){for(var i=a.table.length-1;i>=0;i--){list=a.height===0?_elm_lang$core$Native_List.Cons(a.table[i],list):toList_(list,a.table[i]);}return list;}// Maps a function over the elements of an array.
  function map(f,a){var newA={ctor:'_Array',height:a.height,table:new Array(a.table.length)};if(a.height>0){newA.lengths=a.lengths;}for(var i=0;i<a.table.length;i++){newA.table[i]=a.height===0?f(a.table[i]):map(f,a.table[i]);}return newA;}// Maps a function over the elements with their index as first argument.
  function indexedMap(f,a){return indexedMap_(f,a,0);}function indexedMap_(f,a,from){var newA={ctor:'_Array',height:a.height,table:new Array(a.table.length)};if(a.height>0){newA.lengths=a.lengths;}for(var i=0;i<a.table.length;i++){newA.table[i]=a.height===0?A2(f,from+i,a.table[i]):indexedMap_(f,a.table[i],i==0?from:from+a.lengths[i-1]);}return newA;}function foldl(f,b,a){if(a.height===0){for(var i=0;i<a.table.length;i++){b=A2(f,a.table[i],b);}}else{for(var i=0;i<a.table.length;i++){b=foldl(f,b,a.table[i]);}}return b;}function foldr(f,b,a){if(a.height===0){for(var i=a.table.length;i--;){b=A2(f,a.table[i],b);}}else{for(var i=a.table.length;i--;){b=foldr(f,b,a.table[i]);}}return b;}// TODO: currently, it slices the right, then the left. This can be
  // optimized.
  function slice(from,to,a){if(from<0){from+=length(a);}if(to<0){to+=length(a);}return sliceLeft(from,sliceRight(to,a));}function sliceRight(to,a){if(to===length(a)){return a;}// Handle leaf level.
  if(a.height===0){var newA={ctor:'_Array',height:0};newA.table=a.table.slice(0,to);return newA;}// Slice the right recursively.
  var right=getSlot(to,a);var sliced=sliceRight(to-(right>0?a.lengths[right-1]:0),a.table[right]);// Maybe the a node is not even needed, as sliced contains the whole slice.
  if(right===0){return sliced;}// Create new node.
  var newA={ctor:'_Array',height:a.height,table:a.table.slice(0,right),lengths:a.lengths.slice(0,right)};if(sliced.table.length>0){newA.table[right]=sliced;newA.lengths[right]=length(sliced)+(right>0?newA.lengths[right-1]:0);}return newA;}function sliceLeft(from,a){if(from===0){return a;}// Handle leaf level.
  if(a.height===0){var newA={ctor:'_Array',height:0};newA.table=a.table.slice(from,a.table.length+1);return newA;}// Slice the left recursively.
  var left=getSlot(from,a);var sliced=sliceLeft(from-(left>0?a.lengths[left-1]:0),a.table[left]);// Maybe the a node is not even needed, as sliced contains the whole slice.
  if(left===a.table.length-1){return sliced;}// Create new node.
  var newA={ctor:'_Array',height:a.height,table:a.table.slice(left,a.table.length+1),lengths:new Array(a.table.length-left)};newA.table[0]=sliced;var len=0;for(var i=0;i<newA.table.length;i++){len+=length(newA.table[i]);newA.lengths[i]=len;}return newA;}// Appends two trees.
  function append(a,b){if(a.table.length===0){return b;}if(b.table.length===0){return a;}var c=append_(a,b);// Check if both nodes can be crunshed together.
  if(c[0].table.length+c[1].table.length<=M){if(c[0].table.length===0){return c[1];}if(c[1].table.length===0){return c[0];}// Adjust .table and .lengths
  c[0].table=c[0].table.concat(c[1].table);if(c[0].height>0){var len=length(c[0]);for(var i=0;i<c[1].lengths.length;i++){c[1].lengths[i]+=len;}c[0].lengths=c[0].lengths.concat(c[1].lengths);}return c[0];}if(c[0].height>0){var toRemove=calcToRemove(a,b);if(toRemove>E){c=shuffle(c[0],c[1],toRemove);}}return siblise(c[0],c[1]);}// Returns an array of two nodes; right and left. One node _may_ be empty.
  function append_(a,b){if(a.height===0&&b.height===0){return[a,b];}if(a.height!==1||b.height!==1){if(a.height===b.height){a=nodeCopy(a);b=nodeCopy(b);var appended=append_(botRight(a),botLeft(b));insertRight(a,appended[1]);insertLeft(b,appended[0]);}else if(a.height>b.height){a=nodeCopy(a);var appended=append_(botRight(a),b);insertRight(a,appended[0]);b=parentise(appended[1],appended[1].height+1);}else{b=nodeCopy(b);var appended=append_(a,botLeft(b));var left=appended[0].table.length===0?0:1;var right=left===0?1:0;insertLeft(b,appended[left]);a=parentise(appended[right],appended[right].height+1);}}// Check if balancing is needed and return based on that.
  if(a.table.length===0||b.table.length===0){return[a,b];}var toRemove=calcToRemove(a,b);if(toRemove<=E){return[a,b];}return shuffle(a,b,toRemove);}// Helperfunctions for append_. Replaces a child node at the side of the parent.
  function insertRight(parent,node){var index=parent.table.length-1;parent.table[index]=node;parent.lengths[index]=length(node);parent.lengths[index]+=index>0?parent.lengths[index-1]:0;}function insertLeft(parent,node){if(node.table.length>0){parent.table[0]=node;parent.lengths[0]=length(node);var len=length(parent.table[0]);for(var i=1;i<parent.lengths.length;i++){len+=length(parent.table[i]);parent.lengths[i]=len;}}else{parent.table.shift();for(var i=1;i<parent.lengths.length;i++){parent.lengths[i]=parent.lengths[i]-parent.lengths[0];}parent.lengths.shift();}}// Returns the extra search steps for E. Refer to the paper.
  function calcToRemove(a,b){var subLengths=0;for(var i=0;i<a.table.length;i++){subLengths+=a.table[i].table.length;}for(var i=0;i<b.table.length;i++){subLengths+=b.table[i].table.length;}var toRemove=a.table.length+b.table.length;return toRemove-(Math.floor((subLengths-1)/M)+1);}// get2, set2 and saveSlot are helpers for accessing elements over two arrays.
  function get2(a,b,index){return index<a.length?a[index]:b[index-a.length];}function set2(a,b,index,value){if(index<a.length){a[index]=value;}else{b[index-a.length]=value;}}function saveSlot(a,b,index,slot){set2(a.table,b.table,index,slot);var l=index===0||index===a.lengths.length?0:get2(a.lengths,a.lengths,index-1);set2(a.lengths,b.lengths,index,l+length(slot));}// Creates a node or leaf with a given length at their arrays for perfomance.
  // Is only used by shuffle.
  function createNode(h,length){if(length<0){length=0;}var a={ctor:'_Array',height:h,table:new Array(length)};if(h>0){a.lengths=new Array(length);}return a;}// Returns an array of two balanced nodes.
  function shuffle(a,b,toRemove){var newA=createNode(a.height,Math.min(M,a.table.length+b.table.length-toRemove));var newB=createNode(a.height,newA.table.length-(a.table.length+b.table.length-toRemove));// Skip the slots with size M. More precise: copy the slot references
  // to the new node
  var read=0;while(get2(a.table,b.table,read).table.length%M===0){set2(newA.table,newB.table,read,get2(a.table,b.table,read));set2(newA.lengths,newB.lengths,read,get2(a.lengths,b.lengths,read));read++;}// Pulling items from left to right, caching in a slot before writing
  // it into the new nodes.
  var write=read;var slot=new createNode(a.height-1,0);var from=0;// If the current slot is still containing data, then there will be at
  // least one more write, so we do not break this loop yet.
  while(read-write-(slot.table.length>0?1:0)<toRemove){// Find out the max possible items for copying.
  var source=get2(a.table,b.table,read);var to=Math.min(M-slot.table.length,source.table.length);// Copy and adjust size table.
  slot.table=slot.table.concat(source.table.slice(from,to));if(slot.height>0){var len=slot.lengths.length;for(var i=len;i<len+to-from;i++){slot.lengths[i]=length(slot.table[i]);slot.lengths[i]+=i>0?slot.lengths[i-1]:0;}}from+=to;// Only proceed to next slots[i] if the current one was
  // fully copied.
  if(source.table.length<=to){read++;from=0;}// Only create a new slot if the current one is filled up.
  if(slot.table.length===M){saveSlot(newA,newB,write,slot);slot=createNode(a.height-1,0);write++;}}// Cleanup after the loop. Copy the last slot into the new nodes.
  if(slot.table.length>0){saveSlot(newA,newB,write,slot);write++;}// Shift the untouched slots to the left
  while(read<a.table.length+b.table.length){saveSlot(newA,newB,write,get2(a.table,b.table,read));read++;write++;}return[newA,newB];}// Navigation functions
  function botRight(a){return a.table[a.table.length-1];}function botLeft(a){return a.table[0];}// Copies a node for updating. Note that you should not use this if
  // only updating only one of "table" or "lengths" for performance reasons.
  function nodeCopy(a){var newA={ctor:'_Array',height:a.height,table:a.table.slice()};if(a.height>0){newA.lengths=a.lengths.slice();}return newA;}// Returns how many items are in the tree.
  function length(array){if(array.height===0){return array.table.length;}else{return array.lengths[array.lengths.length-1];}}// Calculates in which slot of "table" the item probably is, then
  // find the exact slot via forward searching in  "lengths". Returns the index.
  function getSlot(i,a){var slot=i>>5*a.height;while(a.lengths[slot]<=i){slot++;}return slot;}// Recursively creates a tree with a given height containing
  // only the given item.
  function create(item,h){if(h===0){return{ctor:'_Array',height:0,table:[item]};}return{ctor:'_Array',height:h,table:[create(item,h-1)],lengths:[1]};}// Recursively creates a tree that contains the given tree.
  function parentise(tree,h){if(h===tree.height){return tree;}return{ctor:'_Array',height:h,table:[parentise(tree,h-1)],lengths:[length(tree)]};}// Emphasizes blood brotherhood beneath two trees.
  function siblise(a,b){return{ctor:'_Array',height:a.height+1,table:[a,b],lengths:[length(a),length(a)+length(b)]};}function toJSArray(a){var jsArray=new Array(length(a));toJSArray_(jsArray,0,a);return jsArray;}function toJSArray_(jsArray,i,a){for(var t=0;t<a.table.length;t++){if(a.height===0){jsArray[i+t]=a.table[t];}else{var inc=t===0?0:a.lengths[t-1];toJSArray_(jsArray,i+inc,a.table[t]);}}}function fromJSArray(jsArray){if(jsArray.length===0){return empty;}var h=Math.floor(Math.log(jsArray.length)/Math.log(M));return fromJSArray_(jsArray,h,0,jsArray.length);}function fromJSArray_(jsArray,h,from,to){if(h===0){return{ctor:'_Array',height:0,table:jsArray.slice(from,to)};}var step=Math.pow(M,h);var table=new Array(Math.ceil((to-from)/step));var lengths=new Array(table.length);for(var i=0;i<table.length;i++){table[i]=fromJSArray_(jsArray,h-1,from+i*step,Math.min(from+(i+1)*step,to));lengths[i]=length(table[i])+(i>0?lengths[i-1]:0);}return{ctor:'_Array',height:h,table:table,lengths:lengths};}return{empty:empty,fromList:fromList,toList:toList,initialize:F2(initialize),append:F2(append),push:F2(push),slice:F3(slice),get:F2(get),set:F3(set),map:F2(map),indexedMap:F2(indexedMap),foldl:F3(foldl),foldr:F3(foldr),length:length,toJSArray:toJSArray,fromJSArray:fromJSArray};}();var _elm_lang$core$Array$append=_elm_lang$core$Native_Array.append;var _elm_lang$core$Array$length=_elm_lang$core$Native_Array.length;var _elm_lang$core$Array$isEmpty=function _elm_lang$core$Array$isEmpty(array){return _elm_lang$core$Native_Utils.eq(_elm_lang$core$Array$length(array),0);};var _elm_lang$core$Array$slice=_elm_lang$core$Native_Array.slice;var _elm_lang$core$Array$set=_elm_lang$core$Native_Array.set;var _elm_lang$core$Array$get=F2(function(i,array){return _elm_lang$core$Native_Utils.cmp(0,i)<1&&_elm_lang$core$Native_Utils.cmp(i,_elm_lang$core$Native_Array.length(array))<0?_elm_lang$core$Maybe$Just(A2(_elm_lang$core$Native_Array.get,i,array)):_elm_lang$core$Maybe$Nothing;});var _elm_lang$core$Array$push=_elm_lang$core$Native_Array.push;var _elm_lang$core$Array$empty=_elm_lang$core$Native_Array.empty;var _elm_lang$core$Array$filter=F2(function(isOkay,arr){var update=F2(function(x,xs){return isOkay(x)?A2(_elm_lang$core$Native_Array.push,x,xs):xs;});return A3(_elm_lang$core$Native_Array.foldl,update,_elm_lang$core$Native_Array.empty,arr);});var _elm_lang$core$Array$foldr=_elm_lang$core$Native_Array.foldr;var _elm_lang$core$Array$foldl=_elm_lang$core$Native_Array.foldl;var _elm_lang$core$Array$indexedMap=_elm_lang$core$Native_Array.indexedMap;var _elm_lang$core$Array$map=_elm_lang$core$Native_Array.map;var _elm_lang$core$Array$toIndexedList=function _elm_lang$core$Array$toIndexedList(array){return A3(_elm_lang$core$List$map2,F2(function(v0,v1){return{ctor:'_Tuple2',_0:v0,_1:v1};}),A2(_elm_lang$core$List$range,0,_elm_lang$core$Native_Array.length(array)-1),_elm_lang$core$Native_Array.toList(array));};var _elm_lang$core$Array$toList=_elm_lang$core$Native_Array.toList;var _elm_lang$core$Array$fromList=_elm_lang$core$Native_Array.fromList;var _elm_lang$core$Array$initialize=_elm_lang$core$Native_Array.initialize;var _elm_lang$core$Array$repeat=F2(function(n,e){return A2(_elm_lang$core$Array$initialize,n,_elm_lang$core$Basics$always(e));});var _elm_lang$core$Array$Array={ctor:'Array'};var _elm_lang$core$Dict$foldr=F3(function(f,acc,t){foldr:while(true){var _p0=t;if(_p0.ctor==='RBEmpty_elm_builtin'){return acc;}else{var _v1=f,_v2=A3(f,_p0._1,_p0._2,A3(_elm_lang$core$Dict$foldr,f,acc,_p0._4)),_v3=_p0._3;f=_v1;acc=_v2;t=_v3;continue foldr;}}});var _elm_lang$core$Dict$keys=function _elm_lang$core$Dict$keys(dict){return A3(_elm_lang$core$Dict$foldr,F3(function(key,value,keyList){return{ctor:'::',_0:key,_1:keyList};}),{ctor:'[]'},dict);};var _elm_lang$core$Dict$values=function _elm_lang$core$Dict$values(dict){return A3(_elm_lang$core$Dict$foldr,F3(function(key,value,valueList){return{ctor:'::',_0:value,_1:valueList};}),{ctor:'[]'},dict);};var _elm_lang$core$Dict$toList=function _elm_lang$core$Dict$toList(dict){return A3(_elm_lang$core$Dict$foldr,F3(function(key,value,list){return{ctor:'::',_0:{ctor:'_Tuple2',_0:key,_1:value},_1:list};}),{ctor:'[]'},dict);};var _elm_lang$core$Dict$foldl=F3(function(f,acc,dict){foldl:while(true){var _p1=dict;if(_p1.ctor==='RBEmpty_elm_builtin'){return acc;}else{var _v5=f,_v6=A3(f,_p1._1,_p1._2,A3(_elm_lang$core$Dict$foldl,f,acc,_p1._3)),_v7=_p1._4;f=_v5;acc=_v6;dict=_v7;continue foldl;}}});var _elm_lang$core$Dict$merge=F6(function(leftStep,bothStep,rightStep,leftDict,rightDict,initialResult){var stepState=F3(function(rKey,rValue,_p2){stepState:while(true){var _p3=_p2;var _p9=_p3._1;var _p8=_p3._0;var _p4=_p8;if(_p4.ctor==='[]'){return{ctor:'_Tuple2',_0:_p8,_1:A3(rightStep,rKey,rValue,_p9)};}else{var _p7=_p4._1;var _p6=_p4._0._1;var _p5=_p4._0._0;if(_elm_lang$core$Native_Utils.cmp(_p5,rKey)<0){var _v10=rKey,_v11=rValue,_v12={ctor:'_Tuple2',_0:_p7,_1:A3(leftStep,_p5,_p6,_p9)};rKey=_v10;rValue=_v11;_p2=_v12;continue stepState;}else{if(_elm_lang$core$Native_Utils.cmp(_p5,rKey)>0){return{ctor:'_Tuple2',_0:_p8,_1:A3(rightStep,rKey,rValue,_p9)};}else{return{ctor:'_Tuple2',_0:_p7,_1:A4(bothStep,_p5,_p6,rValue,_p9)};}}}}});var _p10=A3(_elm_lang$core$Dict$foldl,stepState,{ctor:'_Tuple2',_0:_elm_lang$core$Dict$toList(leftDict),_1:initialResult},rightDict);var leftovers=_p10._0;var intermediateResult=_p10._1;return A3(_elm_lang$core$List$foldl,F2(function(_p11,result){var _p12=_p11;return A3(leftStep,_p12._0,_p12._1,result);}),intermediateResult,leftovers);});var _elm_lang$core$Dict$reportRemBug=F4(function(msg,c,lgot,rgot){return _elm_lang$core$Native_Debug.crash(_elm_lang$core$String$concat({ctor:'::',_0:'Internal red-black tree invariant violated, expected ',_1:{ctor:'::',_0:msg,_1:{ctor:'::',_0:' and got ',_1:{ctor:'::',_0:_elm_lang$core$Basics$toString(c),_1:{ctor:'::',_0:'/',_1:{ctor:'::',_0:lgot,_1:{ctor:'::',_0:'/',_1:{ctor:'::',_0:rgot,_1:{ctor:'::',_0:'\nPlease report this bug to <https://github.com/elm-lang/core/issues>',_1:{ctor:'[]'}}}}}}}}}}));});var _elm_lang$core$Dict$isBBlack=function _elm_lang$core$Dict$isBBlack(dict){var _p13=dict;_v14_2:do{if(_p13.ctor==='RBNode_elm_builtin'){if(_p13._0.ctor==='BBlack'){return true;}else{break _v14_2;}}else{if(_p13._0.ctor==='LBBlack'){return true;}else{break _v14_2;}}}while(false);return false;};var _elm_lang$core$Dict$sizeHelp=F2(function(n,dict){sizeHelp:while(true){var _p14=dict;if(_p14.ctor==='RBEmpty_elm_builtin'){return n;}else{var _v16=A2(_elm_lang$core$Dict$sizeHelp,n+1,_p14._4),_v17=_p14._3;n=_v16;dict=_v17;continue sizeHelp;}}});var _elm_lang$core$Dict$size=function _elm_lang$core$Dict$size(dict){return A2(_elm_lang$core$Dict$sizeHelp,0,dict);};var _elm_lang$core$Dict$get=F2(function(targetKey,dict){get:while(true){var _p15=dict;if(_p15.ctor==='RBEmpty_elm_builtin'){return _elm_lang$core$Maybe$Nothing;}else{var _p16=A2(_elm_lang$core$Basics$compare,targetKey,_p15._1);switch(_p16.ctor){case'LT':var _v20=targetKey,_v21=_p15._3;targetKey=_v20;dict=_v21;continue get;case'EQ':return _elm_lang$core$Maybe$Just(_p15._2);default:var _v22=targetKey,_v23=_p15._4;targetKey=_v22;dict=_v23;continue get;}}}});var _elm_lang$core$Dict$member=F2(function(key,dict){var _p17=A2(_elm_lang$core$Dict$get,key,dict);if(_p17.ctor==='Just'){return true;}else{return false;}});var _elm_lang$core$Dict$maxWithDefault=F3(function(k,v,r){maxWithDefault:while(true){var _p18=r;if(_p18.ctor==='RBEmpty_elm_builtin'){return{ctor:'_Tuple2',_0:k,_1:v};}else{var _v26=_p18._1,_v27=_p18._2,_v28=_p18._4;k=_v26;v=_v27;r=_v28;continue maxWithDefault;}}});var _elm_lang$core$Dict$NBlack={ctor:'NBlack'};var _elm_lang$core$Dict$BBlack={ctor:'BBlack'};var _elm_lang$core$Dict$Black={ctor:'Black'};var _elm_lang$core$Dict$blackish=function _elm_lang$core$Dict$blackish(t){var _p19=t;if(_p19.ctor==='RBNode_elm_builtin'){var _p20=_p19._0;return _elm_lang$core$Native_Utils.eq(_p20,_elm_lang$core$Dict$Black)||_elm_lang$core$Native_Utils.eq(_p20,_elm_lang$core$Dict$BBlack);}else{return true;}};var _elm_lang$core$Dict$Red={ctor:'Red'};var _elm_lang$core$Dict$moreBlack=function _elm_lang$core$Dict$moreBlack(color){var _p21=color;switch(_p21.ctor){case'Black':return _elm_lang$core$Dict$BBlack;case'Red':return _elm_lang$core$Dict$Black;case'NBlack':return _elm_lang$core$Dict$Red;default:return _elm_lang$core$Native_Debug.crash('Can\'t make a double black node more black!');}};var _elm_lang$core$Dict$lessBlack=function _elm_lang$core$Dict$lessBlack(color){var _p22=color;switch(_p22.ctor){case'BBlack':return _elm_lang$core$Dict$Black;case'Black':return _elm_lang$core$Dict$Red;case'Red':return _elm_lang$core$Dict$NBlack;default:return _elm_lang$core$Native_Debug.crash('Can\'t make a negative black node less black!');}};var _elm_lang$core$Dict$LBBlack={ctor:'LBBlack'};var _elm_lang$core$Dict$LBlack={ctor:'LBlack'};var _elm_lang$core$Dict$RBEmpty_elm_builtin=function _elm_lang$core$Dict$RBEmpty_elm_builtin(a){return{ctor:'RBEmpty_elm_builtin',_0:a};};var _elm_lang$core$Dict$empty=_elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);var _elm_lang$core$Dict$isEmpty=function _elm_lang$core$Dict$isEmpty(dict){return _elm_lang$core$Native_Utils.eq(dict,_elm_lang$core$Dict$empty);};var _elm_lang$core$Dict$RBNode_elm_builtin=F5(function(a,b,c,d,e){return{ctor:'RBNode_elm_builtin',_0:a,_1:b,_2:c,_3:d,_4:e};});var _elm_lang$core$Dict$ensureBlackRoot=function _elm_lang$core$Dict$ensureBlackRoot(dict){var _p23=dict;if(_p23.ctor==='RBNode_elm_builtin'&&_p23._0.ctor==='Red'){return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p23._1,_p23._2,_p23._3,_p23._4);}else{return dict;}};var _elm_lang$core$Dict$lessBlackTree=function _elm_lang$core$Dict$lessBlackTree(dict){var _p24=dict;if(_p24.ctor==='RBNode_elm_builtin'){return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$lessBlack(_p24._0),_p24._1,_p24._2,_p24._3,_p24._4);}else{return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);}};var _elm_lang$core$Dict$balancedTree=function _elm_lang$core$Dict$balancedTree(col){return function(xk){return function(xv){return function(yk){return function(yv){return function(zk){return function(zv){return function(a){return function(b){return function(c){return function(d){return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$lessBlack(col),yk,yv,A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,xk,xv,a,b),A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,zk,zv,c,d));};};};};};};};};};};};var _elm_lang$core$Dict$blacken=function _elm_lang$core$Dict$blacken(t){var _p25=t;if(_p25.ctor==='RBEmpty_elm_builtin'){return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);}else{return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p25._1,_p25._2,_p25._3,_p25._4);}};var _elm_lang$core$Dict$redden=function _elm_lang$core$Dict$redden(t){var _p26=t;if(_p26.ctor==='RBEmpty_elm_builtin'){return _elm_lang$core$Native_Debug.crash('can\'t make a Leaf red');}else{return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Red,_p26._1,_p26._2,_p26._3,_p26._4);}};var _elm_lang$core$Dict$balanceHelp=function _elm_lang$core$Dict$balanceHelp(tree){var _p27=tree;_v36_6:do{_v36_5:do{_v36_4:do{_v36_3:do{_v36_2:do{_v36_1:do{_v36_0:do{if(_p27.ctor==='RBNode_elm_builtin'){if(_p27._3.ctor==='RBNode_elm_builtin'){if(_p27._4.ctor==='RBNode_elm_builtin'){switch(_p27._3._0.ctor){case'Red':switch(_p27._4._0.ctor){case'Red':if(_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Red'){break _v36_0;}else{if(_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Red'){break _v36_1;}else{if(_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Red'){break _v36_2;}else{if(_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Red'){break _v36_3;}else{break _v36_6;}}}}case'NBlack':if(_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Red'){break _v36_0;}else{if(_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Red'){break _v36_1;}else{if(_p27._0.ctor==='BBlack'&&_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Black'&&_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Black'){break _v36_4;}else{break _v36_6;}}}default:if(_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Red'){break _v36_0;}else{if(_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Red'){break _v36_1;}else{break _v36_6;}}}case'NBlack':switch(_p27._4._0.ctor){case'Red':if(_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Red'){break _v36_2;}else{if(_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Red'){break _v36_3;}else{if(_p27._0.ctor==='BBlack'&&_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Black'&&_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Black'){break _v36_5;}else{break _v36_6;}}}case'NBlack':if(_p27._0.ctor==='BBlack'){if(_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Black'&&_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Black'){break _v36_4;}else{if(_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Black'&&_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Black'){break _v36_5;}else{break _v36_6;}}}else{break _v36_6;}default:if(_p27._0.ctor==='BBlack'&&_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Black'&&_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Black'){break _v36_5;}else{break _v36_6;}}default:switch(_p27._4._0.ctor){case'Red':if(_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Red'){break _v36_2;}else{if(_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Red'){break _v36_3;}else{break _v36_6;}}case'NBlack':if(_p27._0.ctor==='BBlack'&&_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Black'&&_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Black'){break _v36_4;}else{break _v36_6;}default:break _v36_6;}}}else{switch(_p27._3._0.ctor){case'Red':if(_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Red'){break _v36_0;}else{if(_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Red'){break _v36_1;}else{break _v36_6;}}case'NBlack':if(_p27._0.ctor==='BBlack'&&_p27._3._3.ctor==='RBNode_elm_builtin'&&_p27._3._3._0.ctor==='Black'&&_p27._3._4.ctor==='RBNode_elm_builtin'&&_p27._3._4._0.ctor==='Black'){break _v36_5;}else{break _v36_6;}default:break _v36_6;}}}else{if(_p27._4.ctor==='RBNode_elm_builtin'){switch(_p27._4._0.ctor){case'Red':if(_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Red'){break _v36_2;}else{if(_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Red'){break _v36_3;}else{break _v36_6;}}case'NBlack':if(_p27._0.ctor==='BBlack'&&_p27._4._3.ctor==='RBNode_elm_builtin'&&_p27._4._3._0.ctor==='Black'&&_p27._4._4.ctor==='RBNode_elm_builtin'&&_p27._4._4._0.ctor==='Black'){break _v36_4;}else{break _v36_6;}default:break _v36_6;}}else{break _v36_6;}}}else{break _v36_6;}}while(false);return _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._3._3._1)(_p27._3._3._2)(_p27._3._1)(_p27._3._2)(_p27._1)(_p27._2)(_p27._3._3._3)(_p27._3._3._4)(_p27._3._4)(_p27._4);}while(false);return _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._3._1)(_p27._3._2)(_p27._3._4._1)(_p27._3._4._2)(_p27._1)(_p27._2)(_p27._3._3)(_p27._3._4._3)(_p27._3._4._4)(_p27._4);}while(false);return _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._1)(_p27._2)(_p27._4._3._1)(_p27._4._3._2)(_p27._4._1)(_p27._4._2)(_p27._3)(_p27._4._3._3)(_p27._4._3._4)(_p27._4._4);}while(false);return _elm_lang$core$Dict$balancedTree(_p27._0)(_p27._1)(_p27._2)(_p27._4._1)(_p27._4._2)(_p27._4._4._1)(_p27._4._4._2)(_p27._3)(_p27._4._3)(_p27._4._4._3)(_p27._4._4._4);}while(false);return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p27._4._3._1,_p27._4._3._2,A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p27._1,_p27._2,_p27._3,_p27._4._3._3),A5(_elm_lang$core$Dict$balance,_elm_lang$core$Dict$Black,_p27._4._1,_p27._4._2,_p27._4._3._4,_elm_lang$core$Dict$redden(_p27._4._4)));}while(false);return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p27._3._4._1,_p27._3._4._2,A5(_elm_lang$core$Dict$balance,_elm_lang$core$Dict$Black,_p27._3._1,_p27._3._2,_elm_lang$core$Dict$redden(_p27._3._3),_p27._3._4._3),A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p27._1,_p27._2,_p27._3._4._4,_p27._4));}while(false);return tree;};var _elm_lang$core$Dict$balance=F5(function(c,k,v,l,r){var tree=A5(_elm_lang$core$Dict$RBNode_elm_builtin,c,k,v,l,r);return _elm_lang$core$Dict$blackish(tree)?_elm_lang$core$Dict$balanceHelp(tree):tree;});var _elm_lang$core$Dict$bubble=F5(function(c,k,v,l,r){return _elm_lang$core$Dict$isBBlack(l)||_elm_lang$core$Dict$isBBlack(r)?A5(_elm_lang$core$Dict$balance,_elm_lang$core$Dict$moreBlack(c),k,v,_elm_lang$core$Dict$lessBlackTree(l),_elm_lang$core$Dict$lessBlackTree(r)):A5(_elm_lang$core$Dict$RBNode_elm_builtin,c,k,v,l,r);});var _elm_lang$core$Dict$removeMax=F5(function(c,k,v,l,r){var _p28=r;if(_p28.ctor==='RBEmpty_elm_builtin'){return A3(_elm_lang$core$Dict$rem,c,l,r);}else{return A5(_elm_lang$core$Dict$bubble,c,k,v,l,A5(_elm_lang$core$Dict$removeMax,_p28._0,_p28._1,_p28._2,_p28._3,_p28._4));}});var _elm_lang$core$Dict$rem=F3(function(color,left,right){var _p29={ctor:'_Tuple2',_0:left,_1:right};if(_p29._0.ctor==='RBEmpty_elm_builtin'){if(_p29._1.ctor==='RBEmpty_elm_builtin'){var _p30=color;switch(_p30.ctor){case'Red':return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);case'Black':return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBBlack);default:return _elm_lang$core$Native_Debug.crash('cannot have bblack or nblack nodes at this point');}}else{var _p33=_p29._1._0;var _p32=_p29._0._0;var _p31={ctor:'_Tuple3',_0:color,_1:_p32,_2:_p33};if(_p31.ctor==='_Tuple3'&&_p31._0.ctor==='Black'&&_p31._1.ctor==='LBlack'&&_p31._2.ctor==='Red'){return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p29._1._1,_p29._1._2,_p29._1._3,_p29._1._4);}else{return A4(_elm_lang$core$Dict$reportRemBug,'Black/LBlack/Red',color,_elm_lang$core$Basics$toString(_p32),_elm_lang$core$Basics$toString(_p33));}}}else{if(_p29._1.ctor==='RBEmpty_elm_builtin'){var _p36=_p29._1._0;var _p35=_p29._0._0;var _p34={ctor:'_Tuple3',_0:color,_1:_p35,_2:_p36};if(_p34.ctor==='_Tuple3'&&_p34._0.ctor==='Black'&&_p34._1.ctor==='Red'&&_p34._2.ctor==='LBlack'){return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Black,_p29._0._1,_p29._0._2,_p29._0._3,_p29._0._4);}else{return A4(_elm_lang$core$Dict$reportRemBug,'Black/Red/LBlack',color,_elm_lang$core$Basics$toString(_p35),_elm_lang$core$Basics$toString(_p36));}}else{var _p40=_p29._0._2;var _p39=_p29._0._4;var _p38=_p29._0._1;var newLeft=A5(_elm_lang$core$Dict$removeMax,_p29._0._0,_p38,_p40,_p29._0._3,_p39);var _p37=A3(_elm_lang$core$Dict$maxWithDefault,_p38,_p40,_p39);var k=_p37._0;var v=_p37._1;return A5(_elm_lang$core$Dict$bubble,color,k,v,newLeft,right);}}});var _elm_lang$core$Dict$map=F2(function(f,dict){var _p41=dict;if(_p41.ctor==='RBEmpty_elm_builtin'){return _elm_lang$core$Dict$RBEmpty_elm_builtin(_elm_lang$core$Dict$LBlack);}else{var _p42=_p41._1;return A5(_elm_lang$core$Dict$RBNode_elm_builtin,_p41._0,_p42,A2(f,_p42,_p41._2),A2(_elm_lang$core$Dict$map,f,_p41._3),A2(_elm_lang$core$Dict$map,f,_p41._4));}});var _elm_lang$core$Dict$Same={ctor:'Same'};var _elm_lang$core$Dict$Remove={ctor:'Remove'};var _elm_lang$core$Dict$Insert={ctor:'Insert'};var _elm_lang$core$Dict$update=F3(function(k,alter,dict){var up=function up(dict){var _p43=dict;if(_p43.ctor==='RBEmpty_elm_builtin'){var _p44=alter(_elm_lang$core$Maybe$Nothing);if(_p44.ctor==='Nothing'){return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Same,_1:_elm_lang$core$Dict$empty};}else{return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Insert,_1:A5(_elm_lang$core$Dict$RBNode_elm_builtin,_elm_lang$core$Dict$Red,k,_p44._0,_elm_lang$core$Dict$empty,_elm_lang$core$Dict$empty)};}}else{var _p55=_p43._2;var _p54=_p43._4;var _p53=_p43._3;var _p52=_p43._1;var _p51=_p43._0;var _p45=A2(_elm_lang$core$Basics$compare,k,_p52);switch(_p45.ctor){case'EQ':var _p46=alter(_elm_lang$core$Maybe$Just(_p55));if(_p46.ctor==='Nothing'){return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Remove,_1:A3(_elm_lang$core$Dict$rem,_p51,_p53,_p54)};}else{return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Same,_1:A5(_elm_lang$core$Dict$RBNode_elm_builtin,_p51,_p52,_p46._0,_p53,_p54)};}case'LT':var _p47=up(_p53);var flag=_p47._0;var newLeft=_p47._1;var _p48=flag;switch(_p48.ctor){case'Same':return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Same,_1:A5(_elm_lang$core$Dict$RBNode_elm_builtin,_p51,_p52,_p55,newLeft,_p54)};case'Insert':return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Insert,_1:A5(_elm_lang$core$Dict$balance,_p51,_p52,_p55,newLeft,_p54)};default:return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Remove,_1:A5(_elm_lang$core$Dict$bubble,_p51,_p52,_p55,newLeft,_p54)};}default:var _p49=up(_p54);var flag=_p49._0;var newRight=_p49._1;var _p50=flag;switch(_p50.ctor){case'Same':return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Same,_1:A5(_elm_lang$core$Dict$RBNode_elm_builtin,_p51,_p52,_p55,_p53,newRight)};case'Insert':return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Insert,_1:A5(_elm_lang$core$Dict$balance,_p51,_p52,_p55,_p53,newRight)};default:return{ctor:'_Tuple2',_0:_elm_lang$core$Dict$Remove,_1:A5(_elm_lang$core$Dict$bubble,_p51,_p52,_p55,_p53,newRight)};}}}};var _p56=up(dict);var flag=_p56._0;var updatedDict=_p56._1;var _p57=flag;switch(_p57.ctor){case'Same':return updatedDict;case'Insert':return _elm_lang$core$Dict$ensureBlackRoot(updatedDict);default:return _elm_lang$core$Dict$blacken(updatedDict);}});var _elm_lang$core$Dict$insert=F3(function(key,value,dict){return A3(_elm_lang$core$Dict$update,key,_elm_lang$core$Basics$always(_elm_lang$core$Maybe$Just(value)),dict);});var _elm_lang$core$Dict$singleton=F2(function(key,value){return A3(_elm_lang$core$Dict$insert,key,value,_elm_lang$core$Dict$empty);});var _elm_lang$core$Dict$union=F2(function(t1,t2){return A3(_elm_lang$core$Dict$foldl,_elm_lang$core$Dict$insert,t2,t1);});var _elm_lang$core$Dict$filter=F2(function(predicate,dictionary){var add=F3(function(key,value,dict){return A2(predicate,key,value)?A3(_elm_lang$core$Dict$insert,key,value,dict):dict;});return A3(_elm_lang$core$Dict$foldl,add,_elm_lang$core$Dict$empty,dictionary);});var _elm_lang$core$Dict$intersect=F2(function(t1,t2){return A2(_elm_lang$core$Dict$filter,F2(function(k,_p58){return A2(_elm_lang$core$Dict$member,k,t2);}),t1);});var _elm_lang$core$Dict$partition=F2(function(predicate,dict){var add=F3(function(key,value,_p59){var _p60=_p59;var _p62=_p60._1;var _p61=_p60._0;return A2(predicate,key,value)?{ctor:'_Tuple2',_0:A3(_elm_lang$core$Dict$insert,key,value,_p61),_1:_p62}:{ctor:'_Tuple2',_0:_p61,_1:A3(_elm_lang$core$Dict$insert,key,value,_p62)};});return A3(_elm_lang$core$Dict$foldl,add,{ctor:'_Tuple2',_0:_elm_lang$core$Dict$empty,_1:_elm_lang$core$Dict$empty},dict);});var _elm_lang$core$Dict$fromList=function _elm_lang$core$Dict$fromList(assocs){return A3(_elm_lang$core$List$foldl,F2(function(_p63,dict){var _p64=_p63;return A3(_elm_lang$core$Dict$insert,_p64._0,_p64._1,dict);}),_elm_lang$core$Dict$empty,assocs);};var _elm_lang$core$Dict$remove=F2(function(key,dict){return A3(_elm_lang$core$Dict$update,key,_elm_lang$core$Basics$always(_elm_lang$core$Maybe$Nothing),dict);});var _elm_lang$core$Dict$diff=F2(function(t1,t2){return A3(_elm_lang$core$Dict$foldl,F3(function(k,v,t){return A2(_elm_lang$core$Dict$remove,k,t);}),t1,t2);});//import Maybe, Native.Array, Native.List, Native.Utils, Result //
  var _elm_lang$core$Native_Json=function(){// CORE DECODERS
  function succeed(msg){return{ctor:'<decoder>',tag:'succeed',msg:msg};}function fail(msg){return{ctor:'<decoder>',tag:'fail',msg:msg};}function decodePrimitive(tag){return{ctor:'<decoder>',tag:tag};}function decodeContainer(tag,decoder){return{ctor:'<decoder>',tag:tag,decoder:decoder};}function decodeNull(value){return{ctor:'<decoder>',tag:'null',value:value};}function decodeField(field,decoder){return{ctor:'<decoder>',tag:'field',field:field,decoder:decoder};}function decodeIndex(index,decoder){return{ctor:'<decoder>',tag:'index',index:index,decoder:decoder};}function decodeKeyValuePairs(decoder){return{ctor:'<decoder>',tag:'key-value',decoder:decoder};}function mapMany(f,decoders){return{ctor:'<decoder>',tag:'map-many',func:f,decoders:decoders};}function andThen(callback,decoder){return{ctor:'<decoder>',tag:'andThen',decoder:decoder,callback:callback};}function oneOf(decoders){return{ctor:'<decoder>',tag:'oneOf',decoders:decoders};}// DECODING OBJECTS
  function map1(f,d1){return mapMany(f,[d1]);}function map2(f,d1,d2){return mapMany(f,[d1,d2]);}function map3(f,d1,d2,d3){return mapMany(f,[d1,d2,d3]);}function map4(f,d1,d2,d3,d4){return mapMany(f,[d1,d2,d3,d4]);}function map5(f,d1,d2,d3,d4,d5){return mapMany(f,[d1,d2,d3,d4,d5]);}function map6(f,d1,d2,d3,d4,d5,d6){return mapMany(f,[d1,d2,d3,d4,d5,d6]);}function map7(f,d1,d2,d3,d4,d5,d6,d7){return mapMany(f,[d1,d2,d3,d4,d5,d6,d7]);}function map8(f,d1,d2,d3,d4,d5,d6,d7,d8){return mapMany(f,[d1,d2,d3,d4,d5,d6,d7,d8]);}// DECODE HELPERS
  function ok(value){return{tag:'ok',value:value};}function badPrimitive(type,value){return{tag:'primitive',type:type,value:value};}function badIndex(index,nestedProblems){return{tag:'index',index:index,rest:nestedProblems};}function badField(field,nestedProblems){return{tag:'field',field:field,rest:nestedProblems};}function badIndex(index,nestedProblems){return{tag:'index',index:index,rest:nestedProblems};}function badOneOf(problems){return{tag:'oneOf',problems:problems};}function bad(msg){return{tag:'fail',msg:msg};}function badToString(problem){var context='_';while(problem){switch(problem.tag){case'primitive':return'Expecting '+problem.type+(context==='_'?'':' at '+context)+' but instead got: '+jsToString(problem.value);case'index':context+='['+problem.index+']';problem=problem.rest;break;case'field':context+='.'+problem.field;problem=problem.rest;break;case'index':context+='['+problem.index+']';problem=problem.rest;break;case'oneOf':var problems=problem.problems;for(var i=0;i<problems.length;i++){problems[i]=badToString(problems[i]);}return'I ran into the following problems'+(context==='_'?'':' at '+context)+':\n\n'+problems.join('\n');case'fail':return'I ran into a `fail` decoder'+(context==='_'?'':' at '+context)+': '+problem.msg;}}}function jsToString(value){return value===undefined?'undefined':JSON.stringify(value);}// DECODE
  function runOnString(decoder,string){var json;try{json=JSON.parse(string);}catch(e){return _elm_lang$core$Result$Err('Given an invalid JSON: '+e.message);}return run(decoder,json);}function run(decoder,value){var result=runHelp(decoder,value);return result.tag==='ok'?_elm_lang$core$Result$Ok(result.value):_elm_lang$core$Result$Err(badToString(result));}function runHelp(decoder,value){switch(decoder.tag){case'bool':return typeof value==='boolean'?ok(value):badPrimitive('a Bool',value);case'int':if(typeof value!=='number'){return badPrimitive('an Int',value);}if(-2147483647<value&&value<2147483647&&(value|0)===value){return ok(value);}if(isFinite(value)&&!(value%1)){return ok(value);}return badPrimitive('an Int',value);case'float':return typeof value==='number'?ok(value):badPrimitive('a Float',value);case'string':return typeof value==='string'?ok(value):value instanceof String?ok(value+''):badPrimitive('a String',value);case'null':return value===null?ok(decoder.value):badPrimitive('null',value);case'value':return ok(value);case'list':if(!(value instanceof Array)){return badPrimitive('a List',value);}var list=_elm_lang$core$Native_List.Nil;for(var i=value.length;i--;){var result=runHelp(decoder.decoder,value[i]);if(result.tag!=='ok'){return badIndex(i,result);}list=_elm_lang$core$Native_List.Cons(result.value,list);}return ok(list);case'array':if(!(value instanceof Array)){return badPrimitive('an Array',value);}var len=value.length;var array=new Array(len);for(var i=len;i--;){var result=runHelp(decoder.decoder,value[i]);if(result.tag!=='ok'){return badIndex(i,result);}array[i]=result.value;}return ok(_elm_lang$core$Native_Array.fromJSArray(array));case'maybe':var result=runHelp(decoder.decoder,value);return result.tag==='ok'?ok(_elm_lang$core$Maybe$Just(result.value)):ok(_elm_lang$core$Maybe$Nothing);case'field':var field=decoder.field;if((typeof value==='undefined'?'undefined':_typeof(value))!=='object'||value===null||!(field in value)){return badPrimitive('an object with a field named `'+field+'`',value);}var result=runHelp(decoder.decoder,value[field]);return result.tag==='ok'?result:badField(field,result);case'index':var index=decoder.index;if(!(value instanceof Array)){return badPrimitive('an array',value);}if(index>=value.length){return badPrimitive('a longer array. Need index '+index+' but there are only '+value.length+' entries',value);}var result=runHelp(decoder.decoder,value[index]);return result.tag==='ok'?result:badIndex(index,result);case'key-value':if((typeof value==='undefined'?'undefined':_typeof(value))!=='object'||value===null||value instanceof Array){return badPrimitive('an object',value);}var keyValuePairs=_elm_lang$core$Native_List.Nil;for(var key in value){var result=runHelp(decoder.decoder,value[key]);if(result.tag!=='ok'){return badField(key,result);}var pair=_elm_lang$core$Native_Utils.Tuple2(key,result.value);keyValuePairs=_elm_lang$core$Native_List.Cons(pair,keyValuePairs);}return ok(keyValuePairs);case'map-many':var answer=decoder.func;var decoders=decoder.decoders;for(var i=0;i<decoders.length;i++){var result=runHelp(decoders[i],value);if(result.tag!=='ok'){return result;}answer=answer(result.value);}return ok(answer);case'andThen':var result=runHelp(decoder.decoder,value);return result.tag!=='ok'?result:runHelp(decoder.callback(result.value),value);case'oneOf':var errors=[];var temp=decoder.decoders;while(temp.ctor!=='[]'){var result=runHelp(temp._0,value);if(result.tag==='ok'){return result;}errors.push(result);temp=temp._1;}return badOneOf(errors);case'fail':return bad(decoder.msg);case'succeed':return ok(decoder.msg);}}// EQUALITY
  function equality(a,b){if(a===b){return true;}if(a.tag!==b.tag){return false;}switch(a.tag){case'succeed':case'fail':return a.msg===b.msg;case'bool':case'int':case'float':case'string':case'value':return true;case'null':return a.value===b.value;case'list':case'array':case'maybe':case'key-value':return equality(a.decoder,b.decoder);case'field':return a.field===b.field&&equality(a.decoder,b.decoder);case'index':return a.index===b.index&&equality(a.decoder,b.decoder);case'map-many':if(a.func!==b.func){return false;}return listEquality(a.decoders,b.decoders);case'andThen':return a.callback===b.callback&&equality(a.decoder,b.decoder);case'oneOf':return listEquality(a.decoders,b.decoders);}}function listEquality(aDecoders,bDecoders){var len=aDecoders.length;if(len!==bDecoders.length){return false;}for(var i=0;i<len;i++){if(!equality(aDecoders[i],bDecoders[i])){return false;}}return true;}// ENCODE
  function encode(indentLevel,value){return JSON.stringify(value,null,indentLevel);}function identity(value){return value;}function encodeObject(keyValuePairs){var obj={};while(keyValuePairs.ctor!=='[]'){var pair=keyValuePairs._0;obj[pair._0]=pair._1;keyValuePairs=keyValuePairs._1;}return obj;}return{encode:F2(encode),runOnString:F2(runOnString),run:F2(run),decodeNull:decodeNull,decodePrimitive:decodePrimitive,decodeContainer:F2(decodeContainer),decodeField:F2(decodeField),decodeIndex:F2(decodeIndex),map1:F2(map1),map2:F3(map2),map3:F4(map3),map4:F5(map4),map5:F6(map5),map6:F7(map6),map7:F8(map7),map8:F9(map8),decodeKeyValuePairs:decodeKeyValuePairs,andThen:F2(andThen),fail:fail,succeed:succeed,oneOf:oneOf,identity:identity,encodeNull:null,encodeArray:_elm_lang$core$Native_Array.toJSArray,encodeList:_elm_lang$core$Native_List.toArray,encodeObject:encodeObject,equality:equality};}();var _elm_lang$core$Json_Encode$list=_elm_lang$core$Native_Json.encodeList;var _elm_lang$core$Json_Encode$array=_elm_lang$core$Native_Json.encodeArray;var _elm_lang$core$Json_Encode$object=_elm_lang$core$Native_Json.encodeObject;var _elm_lang$core$Json_Encode$null=_elm_lang$core$Native_Json.encodeNull;var _elm_lang$core$Json_Encode$bool=_elm_lang$core$Native_Json.identity;var _elm_lang$core$Json_Encode$float=_elm_lang$core$Native_Json.identity;var _elm_lang$core$Json_Encode$int=_elm_lang$core$Native_Json.identity;var _elm_lang$core$Json_Encode$string=_elm_lang$core$Native_Json.identity;var _elm_lang$core$Json_Encode$encode=_elm_lang$core$Native_Json.encode;var _elm_lang$core$Json_Encode$Value={ctor:'Value'};var _elm_lang$core$Json_Decode$null=_elm_lang$core$Native_Json.decodeNull;var _elm_lang$core$Json_Decode$value=_elm_lang$core$Native_Json.decodePrimitive('value');var _elm_lang$core$Json_Decode$andThen=_elm_lang$core$Native_Json.andThen;var _elm_lang$core$Json_Decode$fail=_elm_lang$core$Native_Json.fail;var _elm_lang$core$Json_Decode$succeed=_elm_lang$core$Native_Json.succeed;var _elm_lang$core$Json_Decode$lazy=function _elm_lang$core$Json_Decode$lazy(thunk){return A2(_elm_lang$core$Json_Decode$andThen,thunk,_elm_lang$core$Json_Decode$succeed({ctor:'_Tuple0'}));};var _elm_lang$core$Json_Decode$decodeValue=_elm_lang$core$Native_Json.run;var _elm_lang$core$Json_Decode$decodeString=_elm_lang$core$Native_Json.runOnString;var _elm_lang$core$Json_Decode$map8=_elm_lang$core$Native_Json.map8;var _elm_lang$core$Json_Decode$map7=_elm_lang$core$Native_Json.map7;var _elm_lang$core$Json_Decode$map6=_elm_lang$core$Native_Json.map6;var _elm_lang$core$Json_Decode$map5=_elm_lang$core$Native_Json.map5;var _elm_lang$core$Json_Decode$map4=_elm_lang$core$Native_Json.map4;var _elm_lang$core$Json_Decode$map3=_elm_lang$core$Native_Json.map3;var _elm_lang$core$Json_Decode$map2=_elm_lang$core$Native_Json.map2;var _elm_lang$core$Json_Decode$map=_elm_lang$core$Native_Json.map1;var _elm_lang$core$Json_Decode$oneOf=_elm_lang$core$Native_Json.oneOf;var _elm_lang$core$Json_Decode$maybe=function _elm_lang$core$Json_Decode$maybe(decoder){return A2(_elm_lang$core$Native_Json.decodeContainer,'maybe',decoder);};var _elm_lang$core$Json_Decode$index=_elm_lang$core$Native_Json.decodeIndex;var _elm_lang$core$Json_Decode$field=_elm_lang$core$Native_Json.decodeField;var _elm_lang$core$Json_Decode$at=F2(function(fields,decoder){return A3(_elm_lang$core$List$foldr,_elm_lang$core$Json_Decode$field,decoder,fields);});var _elm_lang$core$Json_Decode$keyValuePairs=_elm_lang$core$Native_Json.decodeKeyValuePairs;var _elm_lang$core$Json_Decode$dict=function _elm_lang$core$Json_Decode$dict(decoder){return A2(_elm_lang$core$Json_Decode$map,_elm_lang$core$Dict$fromList,_elm_lang$core$Json_Decode$keyValuePairs(decoder));};var _elm_lang$core$Json_Decode$array=function _elm_lang$core$Json_Decode$array(decoder){return A2(_elm_lang$core$Native_Json.decodeContainer,'array',decoder);};var _elm_lang$core$Json_Decode$list=function _elm_lang$core$Json_Decode$list(decoder){return A2(_elm_lang$core$Native_Json.decodeContainer,'list',decoder);};var _elm_lang$core$Json_Decode$nullable=function _elm_lang$core$Json_Decode$nullable(decoder){return _elm_lang$core$Json_Decode$oneOf({ctor:'::',_0:_elm_lang$core$Json_Decode$null(_elm_lang$core$Maybe$Nothing),_1:{ctor:'::',_0:A2(_elm_lang$core$Json_Decode$map,_elm_lang$core$Maybe$Just,decoder),_1:{ctor:'[]'}}});};var _elm_lang$core$Json_Decode$float=_elm_lang$core$Native_Json.decodePrimitive('float');var _elm_lang$core$Json_Decode$int=_elm_lang$core$Native_Json.decodePrimitive('int');var _elm_lang$core$Json_Decode$bool=_elm_lang$core$Native_Json.decodePrimitive('bool');var _elm_lang$core$Json_Decode$string=_elm_lang$core$Native_Json.decodePrimitive('string');var _elm_lang$core$Json_Decode$Decoder={ctor:'Decoder'};//import Result //
  var _elm_lang$core$Native_Date=function(){function fromString(str){var date=new Date(str);return isNaN(date.getTime())?_elm_lang$core$Result$Err('Unable to parse \''+str+'\' as a date. Dates must be in the ISO 8601 format.'):_elm_lang$core$Result$Ok(date);}var dayTable=['Sun','Mon','Tue','Wed','Thu','Fri','Sat'];var monthTable=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];return{fromString:fromString,year:function year(d){return d.getFullYear();},month:function month(d){return{ctor:monthTable[d.getMonth()]};},day:function day(d){return d.getDate();},hour:function hour(d){return d.getHours();},minute:function minute(d){return d.getMinutes();},second:function second(d){return d.getSeconds();},millisecond:function millisecond(d){return d.getMilliseconds();},toTime:function toTime(d){return d.getTime();},fromTime:function fromTime(t){return new Date(t);},dayOfWeek:function dayOfWeek(d){return{ctor:dayTable[d.getDay()]};}};}();var _elm_lang$core$Task$onError=_elm_lang$core$Native_Scheduler.onError;var _elm_lang$core$Task$andThen=_elm_lang$core$Native_Scheduler.andThen;var _elm_lang$core$Task$spawnCmd=F2(function(router,_p0){var _p1=_p0;return _elm_lang$core$Native_Scheduler.spawn(A2(_elm_lang$core$Task$andThen,_elm_lang$core$Platform$sendToApp(router),_p1._0));});var _elm_lang$core$Task$fail=_elm_lang$core$Native_Scheduler.fail;var _elm_lang$core$Task$mapError=F2(function(convert,task){return A2(_elm_lang$core$Task$onError,function(_p2){return _elm_lang$core$Task$fail(convert(_p2));},task);});var _elm_lang$core$Task$succeed=_elm_lang$core$Native_Scheduler.succeed;var _elm_lang$core$Task$map=F2(function(func,taskA){return A2(_elm_lang$core$Task$andThen,function(a){return _elm_lang$core$Task$succeed(func(a));},taskA);});var _elm_lang$core$Task$map2=F3(function(func,taskA,taskB){return A2(_elm_lang$core$Task$andThen,function(a){return A2(_elm_lang$core$Task$andThen,function(b){return _elm_lang$core$Task$succeed(A2(func,a,b));},taskB);},taskA);});var _elm_lang$core$Task$map3=F4(function(func,taskA,taskB,taskC){return A2(_elm_lang$core$Task$andThen,function(a){return A2(_elm_lang$core$Task$andThen,function(b){return A2(_elm_lang$core$Task$andThen,function(c){return _elm_lang$core$Task$succeed(A3(func,a,b,c));},taskC);},taskB);},taskA);});var _elm_lang$core$Task$map4=F5(function(func,taskA,taskB,taskC,taskD){return A2(_elm_lang$core$Task$andThen,function(a){return A2(_elm_lang$core$Task$andThen,function(b){return A2(_elm_lang$core$Task$andThen,function(c){return A2(_elm_lang$core$Task$andThen,function(d){return _elm_lang$core$Task$succeed(A4(func,a,b,c,d));},taskD);},taskC);},taskB);},taskA);});var _elm_lang$core$Task$map5=F6(function(func,taskA,taskB,taskC,taskD,taskE){return A2(_elm_lang$core$Task$andThen,function(a){return A2(_elm_lang$core$Task$andThen,function(b){return A2(_elm_lang$core$Task$andThen,function(c){return A2(_elm_lang$core$Task$andThen,function(d){return A2(_elm_lang$core$Task$andThen,function(e){return _elm_lang$core$Task$succeed(A5(func,a,b,c,d,e));},taskE);},taskD);},taskC);},taskB);},taskA);});var _elm_lang$core$Task$sequence=function _elm_lang$core$Task$sequence(tasks){var _p3=tasks;if(_p3.ctor==='[]'){return _elm_lang$core$Task$succeed({ctor:'[]'});}else{return A3(_elm_lang$core$Task$map2,F2(function(x,y){return{ctor:'::',_0:x,_1:y};}),_p3._0,_elm_lang$core$Task$sequence(_p3._1));}};var _elm_lang$core$Task$onEffects=F3(function(router,commands,state){return A2(_elm_lang$core$Task$map,function(_p4){return{ctor:'_Tuple0'};},_elm_lang$core$Task$sequence(A2(_elm_lang$core$List$map,_elm_lang$core$Task$spawnCmd(router),commands)));});var _elm_lang$core$Task$init=_elm_lang$core$Task$succeed({ctor:'_Tuple0'});var _elm_lang$core$Task$onSelfMsg=F3(function(_p7,_p6,_p5){return _elm_lang$core$Task$succeed({ctor:'_Tuple0'});});var _elm_lang$core$Task$command=_elm_lang$core$Native_Platform.leaf('Task');var _elm_lang$core$Task$Perform=function _elm_lang$core$Task$Perform(a){return{ctor:'Perform',_0:a};};var _elm_lang$core$Task$perform=F2(function(toMessage,task){return _elm_lang$core$Task$command(_elm_lang$core$Task$Perform(A2(_elm_lang$core$Task$map,toMessage,task)));});var _elm_lang$core$Task$attempt=F2(function(resultToMessage,task){return _elm_lang$core$Task$command(_elm_lang$core$Task$Perform(A2(_elm_lang$core$Task$onError,function(_p8){return _elm_lang$core$Task$succeed(resultToMessage(_elm_lang$core$Result$Err(_p8)));},A2(_elm_lang$core$Task$andThen,function(_p9){return _elm_lang$core$Task$succeed(resultToMessage(_elm_lang$core$Result$Ok(_p9)));},task))));});var _elm_lang$core$Task$cmdMap=F2(function(tagger,_p10){var _p11=_p10;return _elm_lang$core$Task$Perform(A2(_elm_lang$core$Task$map,tagger,_p11._0));});_elm_lang$core$Native_Platform.effectManagers['Task']={pkg:'elm-lang/core',init:_elm_lang$core$Task$init,onEffects:_elm_lang$core$Task$onEffects,onSelfMsg:_elm_lang$core$Task$onSelfMsg,tag:'cmd',cmdMap:_elm_lang$core$Task$cmdMap};//import Native.Scheduler //
  var _elm_lang$core$Native_Time=function(){var now=_elm_lang$core$Native_Scheduler.nativeBinding(function(callback){callback(_elm_lang$core$Native_Scheduler.succeed(Date.now()));});function setInterval_(interval,task){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){var id=setInterval(function(){_elm_lang$core$Native_Scheduler.rawSpawn(task);},interval);return function(){clearInterval(id);};});}return{now:now,setInterval_:F2(setInterval_)};}();var _elm_lang$core$Time$setInterval=_elm_lang$core$Native_Time.setInterval_;var _elm_lang$core$Time$spawnHelp=F3(function(router,intervals,processes){var _p0=intervals;if(_p0.ctor==='[]'){return _elm_lang$core$Task$succeed(processes);}else{var _p1=_p0._0;var spawnRest=function spawnRest(id){return A3(_elm_lang$core$Time$spawnHelp,router,_p0._1,A3(_elm_lang$core$Dict$insert,_p1,id,processes));};var spawnTimer=_elm_lang$core$Native_Scheduler.spawn(A2(_elm_lang$core$Time$setInterval,_p1,A2(_elm_lang$core$Platform$sendToSelf,router,_p1)));return A2(_elm_lang$core$Task$andThen,spawnRest,spawnTimer);}});var _elm_lang$core$Time$addMySub=F2(function(_p2,state){var _p3=_p2;var _p6=_p3._1;var _p5=_p3._0;var _p4=A2(_elm_lang$core$Dict$get,_p5,state);if(_p4.ctor==='Nothing'){return A3(_elm_lang$core$Dict$insert,_p5,{ctor:'::',_0:_p6,_1:{ctor:'[]'}},state);}else{return A3(_elm_lang$core$Dict$insert,_p5,{ctor:'::',_0:_p6,_1:_p4._0},state);}});var _elm_lang$core$Time$inMilliseconds=function _elm_lang$core$Time$inMilliseconds(t){return t;};var _elm_lang$core$Time$millisecond=1;var _elm_lang$core$Time$second=1000*_elm_lang$core$Time$millisecond;var _elm_lang$core$Time$minute=60*_elm_lang$core$Time$second;var _elm_lang$core$Time$hour=60*_elm_lang$core$Time$minute;var _elm_lang$core$Time$inHours=function _elm_lang$core$Time$inHours(t){return t/_elm_lang$core$Time$hour;};var _elm_lang$core$Time$inMinutes=function _elm_lang$core$Time$inMinutes(t){return t/_elm_lang$core$Time$minute;};var _elm_lang$core$Time$inSeconds=function _elm_lang$core$Time$inSeconds(t){return t/_elm_lang$core$Time$second;};var _elm_lang$core$Time$now=_elm_lang$core$Native_Time.now;var _elm_lang$core$Time$onSelfMsg=F3(function(router,interval,state){var _p7=A2(_elm_lang$core$Dict$get,interval,state.taggers);if(_p7.ctor==='Nothing'){return _elm_lang$core$Task$succeed(state);}else{var tellTaggers=function tellTaggers(time){return _elm_lang$core$Task$sequence(A2(_elm_lang$core$List$map,function(tagger){return A2(_elm_lang$core$Platform$sendToApp,router,tagger(time));},_p7._0));};return A2(_elm_lang$core$Task$andThen,function(_p8){return _elm_lang$core$Task$succeed(state);},A2(_elm_lang$core$Task$andThen,tellTaggers,_elm_lang$core$Time$now));}});var _elm_lang$core$Time$subscription=_elm_lang$core$Native_Platform.leaf('Time');var _elm_lang$core$Time$State=F2(function(a,b){return{taggers:a,processes:b};});var _elm_lang$core$Time$init=_elm_lang$core$Task$succeed(A2(_elm_lang$core$Time$State,_elm_lang$core$Dict$empty,_elm_lang$core$Dict$empty));var _elm_lang$core$Time$onEffects=F3(function(router,subs,_p9){var _p10=_p9;var rightStep=F3(function(_p12,id,_p11){var _p13=_p11;return{ctor:'_Tuple3',_0:_p13._0,_1:_p13._1,_2:A2(_elm_lang$core$Task$andThen,function(_p14){return _p13._2;},_elm_lang$core$Native_Scheduler.kill(id))};});var bothStep=F4(function(interval,taggers,id,_p15){var _p16=_p15;return{ctor:'_Tuple3',_0:_p16._0,_1:A3(_elm_lang$core$Dict$insert,interval,id,_p16._1),_2:_p16._2};});var leftStep=F3(function(interval,taggers,_p17){var _p18=_p17;return{ctor:'_Tuple3',_0:{ctor:'::',_0:interval,_1:_p18._0},_1:_p18._1,_2:_p18._2};});var newTaggers=A3(_elm_lang$core$List$foldl,_elm_lang$core$Time$addMySub,_elm_lang$core$Dict$empty,subs);var _p19=A6(_elm_lang$core$Dict$merge,leftStep,bothStep,rightStep,newTaggers,_p10.processes,{ctor:'_Tuple3',_0:{ctor:'[]'},_1:_elm_lang$core$Dict$empty,_2:_elm_lang$core$Task$succeed({ctor:'_Tuple0'})});var spawnList=_p19._0;var existingDict=_p19._1;var killTask=_p19._2;return A2(_elm_lang$core$Task$andThen,function(newProcesses){return _elm_lang$core$Task$succeed(A2(_elm_lang$core$Time$State,newTaggers,newProcesses));},A2(_elm_lang$core$Task$andThen,function(_p20){return A3(_elm_lang$core$Time$spawnHelp,router,spawnList,existingDict);},killTask));});var _elm_lang$core$Time$Every=F2(function(a,b){return{ctor:'Every',_0:a,_1:b};});var _elm_lang$core$Time$every=F2(function(interval,tagger){return _elm_lang$core$Time$subscription(A2(_elm_lang$core$Time$Every,interval,tagger));});var _elm_lang$core$Time$subMap=F2(function(f,_p21){var _p22=_p21;return A2(_elm_lang$core$Time$Every,_p22._0,function(_p23){return f(_p22._1(_p23));});});_elm_lang$core$Native_Platform.effectManagers['Time']={pkg:'elm-lang/core',init:_elm_lang$core$Time$init,onEffects:_elm_lang$core$Time$onEffects,onSelfMsg:_elm_lang$core$Time$onSelfMsg,tag:'sub',subMap:_elm_lang$core$Time$subMap};var _elm_lang$core$Date$millisecond=_elm_lang$core$Native_Date.millisecond;var _elm_lang$core$Date$second=_elm_lang$core$Native_Date.second;var _elm_lang$core$Date$minute=_elm_lang$core$Native_Date.minute;var _elm_lang$core$Date$hour=_elm_lang$core$Native_Date.hour;var _elm_lang$core$Date$dayOfWeek=_elm_lang$core$Native_Date.dayOfWeek;var _elm_lang$core$Date$day=_elm_lang$core$Native_Date.day;var _elm_lang$core$Date$month=_elm_lang$core$Native_Date.month;var _elm_lang$core$Date$year=_elm_lang$core$Native_Date.year;var _elm_lang$core$Date$fromTime=_elm_lang$core$Native_Date.fromTime;var _elm_lang$core$Date$toTime=_elm_lang$core$Native_Date.toTime;var _elm_lang$core$Date$fromString=_elm_lang$core$Native_Date.fromString;var _elm_lang$core$Date$now=A2(_elm_lang$core$Task$map,_elm_lang$core$Date$fromTime,_elm_lang$core$Time$now);var _elm_lang$core$Date$Date={ctor:'Date'};var _elm_lang$core$Date$Sun={ctor:'Sun'};var _elm_lang$core$Date$Sat={ctor:'Sat'};var _elm_lang$core$Date$Fri={ctor:'Fri'};var _elm_lang$core$Date$Thu={ctor:'Thu'};var _elm_lang$core$Date$Wed={ctor:'Wed'};var _elm_lang$core$Date$Tue={ctor:'Tue'};var _elm_lang$core$Date$Mon={ctor:'Mon'};var _elm_lang$core$Date$Dec={ctor:'Dec'};var _elm_lang$core$Date$Nov={ctor:'Nov'};var _elm_lang$core$Date$Oct={ctor:'Oct'};var _elm_lang$core$Date$Sep={ctor:'Sep'};var _elm_lang$core$Date$Aug={ctor:'Aug'};var _elm_lang$core$Date$Jul={ctor:'Jul'};var _elm_lang$core$Date$Jun={ctor:'Jun'};var _elm_lang$core$Date$May={ctor:'May'};var _elm_lang$core$Date$Apr={ctor:'Apr'};var _elm_lang$core$Date$Mar={ctor:'Mar'};var _elm_lang$core$Date$Feb={ctor:'Feb'};var _elm_lang$core$Date$Jan={ctor:'Jan'};var _elm_lang$core$Set$foldr=F3(function(f,b,_p0){var _p1=_p0;return A3(_elm_lang$core$Dict$foldr,F3(function(k,_p2,b){return A2(f,k,b);}),b,_p1._0);});var _elm_lang$core$Set$foldl=F3(function(f,b,_p3){var _p4=_p3;return A3(_elm_lang$core$Dict$foldl,F3(function(k,_p5,b){return A2(f,k,b);}),b,_p4._0);});var _elm_lang$core$Set$toList=function _elm_lang$core$Set$toList(_p6){var _p7=_p6;return _elm_lang$core$Dict$keys(_p7._0);};var _elm_lang$core$Set$size=function _elm_lang$core$Set$size(_p8){var _p9=_p8;return _elm_lang$core$Dict$size(_p9._0);};var _elm_lang$core$Set$member=F2(function(k,_p10){var _p11=_p10;return A2(_elm_lang$core$Dict$member,k,_p11._0);});var _elm_lang$core$Set$isEmpty=function _elm_lang$core$Set$isEmpty(_p12){var _p13=_p12;return _elm_lang$core$Dict$isEmpty(_p13._0);};var _elm_lang$core$Set$Set_elm_builtin=function _elm_lang$core$Set$Set_elm_builtin(a){return{ctor:'Set_elm_builtin',_0:a};};var _elm_lang$core$Set$empty=_elm_lang$core$Set$Set_elm_builtin(_elm_lang$core$Dict$empty);var _elm_lang$core$Set$singleton=function _elm_lang$core$Set$singleton(k){return _elm_lang$core$Set$Set_elm_builtin(A2(_elm_lang$core$Dict$singleton,k,{ctor:'_Tuple0'}));};var _elm_lang$core$Set$insert=F2(function(k,_p14){var _p15=_p14;return _elm_lang$core$Set$Set_elm_builtin(A3(_elm_lang$core$Dict$insert,k,{ctor:'_Tuple0'},_p15._0));});var _elm_lang$core$Set$fromList=function _elm_lang$core$Set$fromList(xs){return A3(_elm_lang$core$List$foldl,_elm_lang$core$Set$insert,_elm_lang$core$Set$empty,xs);};var _elm_lang$core$Set$map=F2(function(f,s){return _elm_lang$core$Set$fromList(A2(_elm_lang$core$List$map,f,_elm_lang$core$Set$toList(s)));});var _elm_lang$core$Set$remove=F2(function(k,_p16){var _p17=_p16;return _elm_lang$core$Set$Set_elm_builtin(A2(_elm_lang$core$Dict$remove,k,_p17._0));});var _elm_lang$core$Set$union=F2(function(_p19,_p18){var _p20=_p19;var _p21=_p18;return _elm_lang$core$Set$Set_elm_builtin(A2(_elm_lang$core$Dict$union,_p20._0,_p21._0));});var _elm_lang$core$Set$intersect=F2(function(_p23,_p22){var _p24=_p23;var _p25=_p22;return _elm_lang$core$Set$Set_elm_builtin(A2(_elm_lang$core$Dict$intersect,_p24._0,_p25._0));});var _elm_lang$core$Set$diff=F2(function(_p27,_p26){var _p28=_p27;var _p29=_p26;return _elm_lang$core$Set$Set_elm_builtin(A2(_elm_lang$core$Dict$diff,_p28._0,_p29._0));});var _elm_lang$core$Set$filter=F2(function(p,_p30){var _p31=_p30;return _elm_lang$core$Set$Set_elm_builtin(A2(_elm_lang$core$Dict$filter,F2(function(k,_p32){return p(k);}),_p31._0));});var _elm_lang$core$Set$partition=F2(function(p,_p33){var _p34=_p33;var _p35=A2(_elm_lang$core$Dict$partition,F2(function(k,_p36){return p(k);}),_p34._0);var p1=_p35._0;var p2=_p35._1;return{ctor:'_Tuple2',_0:_elm_lang$core$Set$Set_elm_builtin(p1),_1:_elm_lang$core$Set$Set_elm_builtin(p2)};});var _elm_community$list_extra$List_Extra$greedyGroupsOfWithStep=F3(function(size,step,xs){var okayXs=_elm_lang$core$Native_Utils.cmp(_elm_lang$core$List$length(xs),0)>0;var okayArgs=_elm_lang$core$Native_Utils.cmp(size,0)>0&&_elm_lang$core$Native_Utils.cmp(step,0)>0;var xs_=A2(_elm_lang$core$List$drop,step,xs);var group=A2(_elm_lang$core$List$take,size,xs);return okayArgs&&okayXs?{ctor:'::',_0:group,_1:A3(_elm_community$list_extra$List_Extra$greedyGroupsOfWithStep,size,step,xs_)}:{ctor:'[]'};});var _elm_community$list_extra$List_Extra$greedyGroupsOf=F2(function(size,xs){return A3(_elm_community$list_extra$List_Extra$greedyGroupsOfWithStep,size,size,xs);});var _elm_community$list_extra$List_Extra$groupsOfWithStep=F3(function(size,step,xs){var okayArgs=_elm_lang$core$Native_Utils.cmp(size,0)>0&&_elm_lang$core$Native_Utils.cmp(step,0)>0;var xs_=A2(_elm_lang$core$List$drop,step,xs);var group=A2(_elm_lang$core$List$take,size,xs);var okayLength=_elm_lang$core$Native_Utils.eq(size,_elm_lang$core$List$length(group));return okayArgs&&okayLength?{ctor:'::',_0:group,_1:A3(_elm_community$list_extra$List_Extra$groupsOfWithStep,size,step,xs_)}:{ctor:'[]'};});var _elm_community$list_extra$List_Extra$groupsOf=F2(function(size,xs){return A3(_elm_community$list_extra$List_Extra$groupsOfWithStep,size,size,xs);});var _elm_community$list_extra$List_Extra$zip5=_elm_lang$core$List$map5(F5(function(v0,v1,v2,v3,v4){return{ctor:'_Tuple5',_0:v0,_1:v1,_2:v2,_3:v3,_4:v4};}));var _elm_community$list_extra$List_Extra$zip4=_elm_lang$core$List$map4(F4(function(v0,v1,v2,v3){return{ctor:'_Tuple4',_0:v0,_1:v1,_2:v2,_3:v3};}));var _elm_community$list_extra$List_Extra$zip3=_elm_lang$core$List$map3(F3(function(v0,v1,v2){return{ctor:'_Tuple3',_0:v0,_1:v1,_2:v2};}));var _elm_community$list_extra$List_Extra$zip=_elm_lang$core$List$map2(F2(function(v0,v1){return{ctor:'_Tuple2',_0:v0,_1:v1};}));var _elm_community$list_extra$List_Extra$isPrefixOf=function _elm_community$list_extra$List_Extra$isPrefixOf(prefix){return function(_p0){return A2(_elm_lang$core$List$all,_elm_lang$core$Basics$identity,A3(_elm_lang$core$List$map2,F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);}),prefix,_p0));};};var _elm_community$list_extra$List_Extra$isSuffixOf=F2(function(suffix,xs){return A2(_elm_community$list_extra$List_Extra$isPrefixOf,_elm_lang$core$List$reverse(suffix),_elm_lang$core$List$reverse(xs));});var _elm_community$list_extra$List_Extra$selectSplit=function _elm_community$list_extra$List_Extra$selectSplit(xs){var _p1=xs;if(_p1.ctor==='[]'){return{ctor:'[]'};}else{var _p5=_p1._1;var _p4=_p1._0;return{ctor:'::',_0:{ctor:'_Tuple3',_0:{ctor:'[]'},_1:_p4,_2:_p5},_1:A2(_elm_lang$core$List$map,function(_p2){var _p3=_p2;return{ctor:'_Tuple3',_0:{ctor:'::',_0:_p4,_1:_p3._0},_1:_p3._1,_2:_p3._2};},_elm_community$list_extra$List_Extra$selectSplit(_p5))};}};var _elm_community$list_extra$List_Extra$select=function _elm_community$list_extra$List_Extra$select(xs){var _p6=xs;if(_p6.ctor==='[]'){return{ctor:'[]'};}else{var _p10=_p6._1;var _p9=_p6._0;return{ctor:'::',_0:{ctor:'_Tuple2',_0:_p9,_1:_p10},_1:A2(_elm_lang$core$List$map,function(_p7){var _p8=_p7;return{ctor:'_Tuple2',_0:_p8._0,_1:{ctor:'::',_0:_p9,_1:_p8._1}};},_elm_community$list_extra$List_Extra$select(_p10))};}};var _elm_community$list_extra$List_Extra$tailsHelp=F2(function(e,list){var _p11=list;if(_p11.ctor==='::'){var _p12=_p11._0;return{ctor:'::',_0:{ctor:'::',_0:e,_1:_p12},_1:{ctor:'::',_0:_p12,_1:_p11._1}};}else{return{ctor:'[]'};}});var _elm_community$list_extra$List_Extra$tails=A2(_elm_lang$core$List$foldr,_elm_community$list_extra$List_Extra$tailsHelp,{ctor:'::',_0:{ctor:'[]'},_1:{ctor:'[]'}});var _elm_community$list_extra$List_Extra$isInfixOf=F2(function(infix,xs){return A2(_elm_lang$core$List$any,_elm_community$list_extra$List_Extra$isPrefixOf(infix),_elm_community$list_extra$List_Extra$tails(xs));});var _elm_community$list_extra$List_Extra$inits=A2(_elm_lang$core$List$foldr,F2(function(e,acc){return{ctor:'::',_0:{ctor:'[]'},_1:A2(_elm_lang$core$List$map,F2(function(x,y){return{ctor:'::',_0:x,_1:y};})(e),acc)};}),{ctor:'::',_0:{ctor:'[]'},_1:{ctor:'[]'}});var _elm_community$list_extra$List_Extra$groupWhileTransitively=F2(function(cmp,xs_){var _p13=xs_;if(_p13.ctor==='[]'){return{ctor:'[]'};}else{if(_p13._1.ctor==='[]'){return{ctor:'::',_0:{ctor:'::',_0:_p13._0,_1:{ctor:'[]'}},_1:{ctor:'[]'}};}else{var _p15=_p13._0;var _p14=A2(_elm_community$list_extra$List_Extra$groupWhileTransitively,cmp,_p13._1);if(_p14.ctor==='::'){return A2(cmp,_p15,_p13._1._0)?{ctor:'::',_0:{ctor:'::',_0:_p15,_1:_p14._0},_1:_p14._1}:{ctor:'::',_0:{ctor:'::',_0:_p15,_1:{ctor:'[]'}},_1:_p14};}else{return{ctor:'[]'};}}}});var _elm_community$list_extra$List_Extra$stripPrefix=F2(function(prefix,xs){var step=F2(function(e,m){var _p16=m;if(_p16.ctor==='Nothing'){return _elm_lang$core$Maybe$Nothing;}else{if(_p16._0.ctor==='[]'){return _elm_lang$core$Maybe$Nothing;}else{return _elm_lang$core$Native_Utils.eq(e,_p16._0._0)?_elm_lang$core$Maybe$Just(_p16._0._1):_elm_lang$core$Maybe$Nothing;}}});return A3(_elm_lang$core$List$foldl,step,_elm_lang$core$Maybe$Just(xs),prefix);});var _elm_community$list_extra$List_Extra$dropWhileRight=function _elm_community$list_extra$List_Extra$dropWhileRight(p){return A2(_elm_lang$core$List$foldr,F2(function(x,xs){return p(x)&&_elm_lang$core$List$isEmpty(xs)?{ctor:'[]'}:{ctor:'::',_0:x,_1:xs};}),{ctor:'[]'});};var _elm_community$list_extra$List_Extra$takeWhileRight=function _elm_community$list_extra$List_Extra$takeWhileRight(p){var step=F2(function(x,_p17){var _p18=_p17;var _p19=_p18._0;return p(x)&&_p18._1?{ctor:'_Tuple2',_0:{ctor:'::',_0:x,_1:_p19},_1:true}:{ctor:'_Tuple2',_0:_p19,_1:false};});return function(_p20){return _elm_lang$core$Tuple$first(A3(_elm_lang$core$List$foldr,step,{ctor:'_Tuple2',_0:{ctor:'[]'},_1:true},_p20));};};var _elm_community$list_extra$List_Extra$splitAt=F2(function(n,xs){return{ctor:'_Tuple2',_0:A2(_elm_lang$core$List$take,n,xs),_1:A2(_elm_lang$core$List$drop,n,xs)};});var _elm_community$list_extra$List_Extra$groupsOfVarying_=F3(function(listOflengths,list,accu){groupsOfVarying_:while(true){var _p21={ctor:'_Tuple2',_0:listOflengths,_1:list};if(_p21.ctor==='_Tuple2'&&_p21._0.ctor==='::'&&_p21._1.ctor==='::'){var _p22=A2(_elm_community$list_extra$List_Extra$splitAt,_p21._0._0,list);var head=_p22._0;var tail=_p22._1;var _v10=_p21._0._1,_v11=tail,_v12={ctor:'::',_0:head,_1:accu};listOflengths=_v10;list=_v11;accu=_v12;continue groupsOfVarying_;}else{return _elm_lang$core$List$reverse(accu);}}});var _elm_community$list_extra$List_Extra$groupsOfVarying=F2(function(listOflengths,list){return A3(_elm_community$list_extra$List_Extra$groupsOfVarying_,listOflengths,list,{ctor:'[]'});});var _elm_community$list_extra$List_Extra$unfoldr=F2(function(f,seed){var _p23=f(seed);if(_p23.ctor==='Nothing'){return{ctor:'[]'};}else{return{ctor:'::',_0:_p23._0._0,_1:A2(_elm_community$list_extra$List_Extra$unfoldr,f,_p23._0._1)};}});var _elm_community$list_extra$List_Extra$scanr1=F2(function(f,xs_){var _p24=xs_;if(_p24.ctor==='[]'){return{ctor:'[]'};}else{if(_p24._1.ctor==='[]'){return{ctor:'::',_0:_p24._0,_1:{ctor:'[]'}};}else{var _p25=A2(_elm_community$list_extra$List_Extra$scanr1,f,_p24._1);if(_p25.ctor==='::'){return{ctor:'::',_0:A2(f,_p24._0,_p25._0),_1:_p25};}else{return{ctor:'[]'};}}}});var _elm_community$list_extra$List_Extra$scanr=F3(function(f,acc,xs_){var _p26=xs_;if(_p26.ctor==='[]'){return{ctor:'::',_0:acc,_1:{ctor:'[]'}};}else{var _p27=A3(_elm_community$list_extra$List_Extra$scanr,f,acc,_p26._1);if(_p27.ctor==='::'){return{ctor:'::',_0:A2(f,_p26._0,_p27._0),_1:_p27};}else{return{ctor:'[]'};}}});var _elm_community$list_extra$List_Extra$scanl1=F2(function(f,xs_){var _p28=xs_;if(_p28.ctor==='[]'){return{ctor:'[]'};}else{return A3(_elm_lang$core$List$scanl,f,_p28._0,_p28._1);}});var _elm_community$list_extra$List_Extra$indexedFoldr=F3(function(func,acc,list){var step=F2(function(x,_p29){var _p30=_p29;var _p31=_p30._0;return{ctor:'_Tuple2',_0:_p31-1,_1:A3(func,_p31,x,_p30._1)};});return _elm_lang$core$Tuple$second(A3(_elm_lang$core$List$foldr,step,{ctor:'_Tuple2',_0:_elm_lang$core$List$length(list)-1,_1:acc},list));});var _elm_community$list_extra$List_Extra$indexedFoldl=F3(function(func,acc,list){var step=F2(function(x,_p32){var _p33=_p32;var _p34=_p33._0;return{ctor:'_Tuple2',_0:_p34+1,_1:A3(func,_p34,x,_p33._1)};});return _elm_lang$core$Tuple$second(A3(_elm_lang$core$List$foldl,step,{ctor:'_Tuple2',_0:0,_1:acc},list));});var _elm_community$list_extra$List_Extra$foldr1=F2(function(f,xs){var mf=F2(function(x,m){return _elm_lang$core$Maybe$Just(function(){var _p35=m;if(_p35.ctor==='Nothing'){return x;}else{return A2(f,x,_p35._0);}}());});return A3(_elm_lang$core$List$foldr,mf,_elm_lang$core$Maybe$Nothing,xs);});var _elm_community$list_extra$List_Extra$foldl1=F2(function(f,xs){var mf=F2(function(x,m){return _elm_lang$core$Maybe$Just(function(){var _p36=m;if(_p36.ctor==='Nothing'){return x;}else{return A2(f,_p36._0,x);}}());});return A3(_elm_lang$core$List$foldl,mf,_elm_lang$core$Maybe$Nothing,xs);});var _elm_community$list_extra$List_Extra$interweaveHelp=F3(function(l1,l2,acc){interweaveHelp:while(true){var _p37={ctor:'_Tuple2',_0:l1,_1:l2};_v23_1:do{if(_p37._0.ctor==='::'){if(_p37._1.ctor==='::'){var _v24=_p37._0._1,_v25=_p37._1._1,_v26=A2(_elm_lang$core$Basics_ops['++'],acc,{ctor:'::',_0:_p37._0._0,_1:{ctor:'::',_0:_p37._1._0,_1:{ctor:'[]'}}});l1=_v24;l2=_v25;acc=_v26;continue interweaveHelp;}else{break _v23_1;}}else{if(_p37._1.ctor==='[]'){break _v23_1;}else{return A2(_elm_lang$core$Basics_ops['++'],acc,_p37._1);}}}while(false);return A2(_elm_lang$core$Basics_ops['++'],acc,_p37._0);}});var _elm_community$list_extra$List_Extra$interweave=F2(function(l1,l2){return A3(_elm_community$list_extra$List_Extra$interweaveHelp,l1,l2,{ctor:'[]'});});var _elm_community$list_extra$List_Extra$permutations=function _elm_community$list_extra$List_Extra$permutations(xs_){var _p38=xs_;if(_p38.ctor==='[]'){return{ctor:'::',_0:{ctor:'[]'},_1:{ctor:'[]'}};}else{var f=function f(_p39){var _p40=_p39;return A2(_elm_lang$core$List$map,F2(function(x,y){return{ctor:'::',_0:x,_1:y};})(_p40._0),_elm_community$list_extra$List_Extra$permutations(_p40._1));};return A2(_elm_lang$core$List$concatMap,f,_elm_community$list_extra$List_Extra$select(_p38));}};var _elm_community$list_extra$List_Extra$isPermutationOf=F2(function(permut,xs){return A2(_elm_lang$core$List$member,permut,_elm_community$list_extra$List_Extra$permutations(xs));});var _elm_community$list_extra$List_Extra$subsequencesNonEmpty=function _elm_community$list_extra$List_Extra$subsequencesNonEmpty(xs){var _p41=xs;if(_p41.ctor==='[]'){return{ctor:'[]'};}else{var _p42=_p41._0;var f=F2(function(ys,r){return{ctor:'::',_0:ys,_1:{ctor:'::',_0:{ctor:'::',_0:_p42,_1:ys},_1:r}};});return{ctor:'::',_0:{ctor:'::',_0:_p42,_1:{ctor:'[]'}},_1:A3(_elm_lang$core$List$foldr,f,{ctor:'[]'},_elm_community$list_extra$List_Extra$subsequencesNonEmpty(_p41._1))};}};var _elm_community$list_extra$List_Extra$subsequences=function _elm_community$list_extra$List_Extra$subsequences(xs){return{ctor:'::',_0:{ctor:'[]'},_1:_elm_community$list_extra$List_Extra$subsequencesNonEmpty(xs)};};var _elm_community$list_extra$List_Extra$isSubsequenceOf=F2(function(subseq,xs){return A2(_elm_lang$core$List$member,subseq,_elm_community$list_extra$List_Extra$subsequences(xs));});var _elm_community$list_extra$List_Extra$transpose=function _elm_community$list_extra$List_Extra$transpose(ll){transpose:while(true){var _p43=ll;if(_p43.ctor==='[]'){return{ctor:'[]'};}else{if(_p43._0.ctor==='[]'){var _v31=_p43._1;ll=_v31;continue transpose;}else{var _p44=_p43._1;var tails=A2(_elm_lang$core$List$filterMap,_elm_lang$core$List$tail,_p44);var heads=A2(_elm_lang$core$List$filterMap,_elm_lang$core$List$head,_p44);return{ctor:'::',_0:{ctor:'::',_0:_p43._0._0,_1:heads},_1:_elm_community$list_extra$List_Extra$transpose({ctor:'::',_0:_p43._0._1,_1:tails})};}}}};var _elm_community$list_extra$List_Extra$intercalate=function _elm_community$list_extra$List_Extra$intercalate(xs){return function(_p45){return _elm_lang$core$List$concat(A2(_elm_lang$core$List$intersperse,xs,_p45));};};var _elm_community$list_extra$List_Extra$filterNot=F2(function(pred,list){return A2(_elm_lang$core$List$filter,function(_p46){return!pred(_p46);},list);});var _elm_community$list_extra$List_Extra$removeAt=F2(function(index,l){if(_elm_lang$core$Native_Utils.cmp(index,0)<0){return l;}else{var tail=_elm_lang$core$List$tail(A2(_elm_lang$core$List$drop,index,l));var head=A2(_elm_lang$core$List$take,index,l);var _p47=tail;if(_p47.ctor==='Nothing'){return l;}else{return A2(_elm_lang$core$List$append,head,_p47._0);}}});var _elm_community$list_extra$List_Extra$singleton=function _elm_community$list_extra$List_Extra$singleton(x){return{ctor:'::',_0:x,_1:{ctor:'[]'}};};var _elm_community$list_extra$List_Extra$stableSortWith=F2(function(pred,list){var predWithIndex=F2(function(_p49,_p48){var _p50=_p49;var _p51=_p48;var result=A2(pred,_p50._0,_p51._0);var _p52=result;if(_p52.ctor==='EQ'){return A2(_elm_lang$core$Basics$compare,_p50._1,_p51._1);}else{return result;}});var listWithIndex=A2(_elm_lang$core$List$indexedMap,F2(function(i,a){return{ctor:'_Tuple2',_0:a,_1:i};}),list);return A2(_elm_lang$core$List$map,_elm_lang$core$Tuple$first,A2(_elm_lang$core$List$sortWith,predWithIndex,listWithIndex));});var _elm_community$list_extra$List_Extra$setAt=F3(function(index,value,l){if(_elm_lang$core$Native_Utils.cmp(index,0)<0){return _elm_lang$core$Maybe$Nothing;}else{var tail=_elm_lang$core$List$tail(A2(_elm_lang$core$List$drop,index,l));var head=A2(_elm_lang$core$List$take,index,l);var _p53=tail;if(_p53.ctor==='Nothing'){return _elm_lang$core$Maybe$Nothing;}else{return _elm_lang$core$Maybe$Just(A2(_elm_lang$core$List$append,head,{ctor:'::',_0:value,_1:_p53._0}));}}});var _elm_community$list_extra$List_Extra$remove=F2(function(x,xs){var _p54=xs;if(_p54.ctor==='[]'){return{ctor:'[]'};}else{var _p56=_p54._1;var _p55=_p54._0;return _elm_lang$core$Native_Utils.eq(x,_p55)?_p56:{ctor:'::',_0:_p55,_1:A2(_elm_community$list_extra$List_Extra$remove,x,_p56)};}});var _elm_community$list_extra$List_Extra$updateIfIndex=F3(function(predicate,update,list){return A2(_elm_lang$core$List$indexedMap,F2(function(i,x){return predicate(i)?update(x):x;}),list);});var _elm_community$list_extra$List_Extra$updateAt=F3(function(index,update,list){return _elm_lang$core$Native_Utils.cmp(index,0)<0||_elm_lang$core$Native_Utils.cmp(index,_elm_lang$core$List$length(list))>-1?_elm_lang$core$Maybe$Nothing:_elm_lang$core$Maybe$Just(A3(_elm_community$list_extra$List_Extra$updateIfIndex,F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);})(index),update,list));});var _elm_community$list_extra$List_Extra$updateIf=F3(function(predicate,update,list){return A2(_elm_lang$core$List$map,function(item){return predicate(item)?update(item):item;},list);});var _elm_community$list_extra$List_Extra$replaceIf=F3(function(predicate,replacement,list){return A3(_elm_community$list_extra$List_Extra$updateIf,predicate,_elm_lang$core$Basics$always(replacement),list);});var _elm_community$list_extra$List_Extra$findIndices=function _elm_community$list_extra$List_Extra$findIndices(p){return function(_p57){return A2(_elm_lang$core$List$map,_elm_lang$core$Tuple$first,A2(_elm_lang$core$List$filter,function(_p58){var _p59=_p58;return p(_p59._1);},A2(_elm_lang$core$List$indexedMap,F2(function(v0,v1){return{ctor:'_Tuple2',_0:v0,_1:v1};}),_p57)));};};var _elm_community$list_extra$List_Extra$findIndex=function _elm_community$list_extra$List_Extra$findIndex(p){return function(_p60){return _elm_lang$core$List$head(A2(_elm_community$list_extra$List_Extra$findIndices,p,_p60));};};var _elm_community$list_extra$List_Extra$elemIndices=function _elm_community$list_extra$List_Extra$elemIndices(x){return _elm_community$list_extra$List_Extra$findIndices(F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);})(x));};var _elm_community$list_extra$List_Extra$elemIndex=function _elm_community$list_extra$List_Extra$elemIndex(x){return _elm_community$list_extra$List_Extra$findIndex(F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);})(x));};var _elm_community$list_extra$List_Extra$find=F2(function(predicate,list){find:while(true){var _p61=list;if(_p61.ctor==='[]'){return _elm_lang$core$Maybe$Nothing;}else{var _p62=_p61._0;if(predicate(_p62)){return _elm_lang$core$Maybe$Just(_p62);}else{var _v40=predicate,_v41=_p61._1;predicate=_v40;list=_v41;continue find;}}}});var _elm_community$list_extra$List_Extra$notMember=function _elm_community$list_extra$List_Extra$notMember(x){return function(_p63){return!A2(_elm_lang$core$List$member,x,_p63);};};var _elm_community$list_extra$List_Extra$andThen=_elm_lang$core$List$concatMap;var _elm_community$list_extra$List_Extra$lift2=F3(function(f,la,lb){return A2(_elm_community$list_extra$List_Extra$andThen,function(a){return A2(_elm_community$list_extra$List_Extra$andThen,function(b){return{ctor:'::',_0:A2(f,a,b),_1:{ctor:'[]'}};},lb);},la);});var _elm_community$list_extra$List_Extra$lift3=F4(function(f,la,lb,lc){return A2(_elm_community$list_extra$List_Extra$andThen,function(a){return A2(_elm_community$list_extra$List_Extra$andThen,function(b){return A2(_elm_community$list_extra$List_Extra$andThen,function(c){return{ctor:'::',_0:A3(f,a,b,c),_1:{ctor:'[]'}};},lc);},lb);},la);});var _elm_community$list_extra$List_Extra$lift4=F5(function(f,la,lb,lc,ld){return A2(_elm_community$list_extra$List_Extra$andThen,function(a){return A2(_elm_community$list_extra$List_Extra$andThen,function(b){return A2(_elm_community$list_extra$List_Extra$andThen,function(c){return A2(_elm_community$list_extra$List_Extra$andThen,function(d){return{ctor:'::',_0:A4(f,a,b,c,d),_1:{ctor:'[]'}};},ld);},lc);},lb);},la);});var _elm_community$list_extra$List_Extra$andMap=F2(function(fl,l){return A3(_elm_lang$core$List$map2,F2(function(x,y){return x(y);}),fl,l);});var _elm_community$list_extra$List_Extra$uniqueHelp=F3(function(f,existing,remaining){uniqueHelp:while(true){var _p64=remaining;if(_p64.ctor==='[]'){return{ctor:'[]'};}else{var _p66=_p64._1;var _p65=_p64._0;var computedFirst=f(_p65);if(A2(_elm_lang$core$Set$member,computedFirst,existing)){var _v43=f,_v44=existing,_v45=_p66;f=_v43;existing=_v44;remaining=_v45;continue uniqueHelp;}else{return{ctor:'::',_0:_p65,_1:A3(_elm_community$list_extra$List_Extra$uniqueHelp,f,A2(_elm_lang$core$Set$insert,computedFirst,existing),_p66)};}}}});var _elm_community$list_extra$List_Extra$uniqueBy=F2(function(f,list){return A3(_elm_community$list_extra$List_Extra$uniqueHelp,f,_elm_lang$core$Set$empty,list);});var _elm_community$list_extra$List_Extra$allDifferentBy=F2(function(f,list){return _elm_lang$core$Native_Utils.eq(_elm_lang$core$List$length(list),_elm_lang$core$List$length(A2(_elm_community$list_extra$List_Extra$uniqueBy,f,list)));});var _elm_community$list_extra$List_Extra$unique=function _elm_community$list_extra$List_Extra$unique(list){return A3(_elm_community$list_extra$List_Extra$uniqueHelp,_elm_lang$core$Basics$identity,_elm_lang$core$Set$empty,list);};var _elm_community$list_extra$List_Extra$allDifferent=function _elm_community$list_extra$List_Extra$allDifferent(list){return _elm_lang$core$Native_Utils.eq(_elm_lang$core$List$length(list),_elm_lang$core$List$length(_elm_community$list_extra$List_Extra$unique(list)));};var _elm_community$list_extra$List_Extra$dropWhile=F2(function(predicate,list){dropWhile:while(true){var _p67=list;if(_p67.ctor==='[]'){return{ctor:'[]'};}else{if(predicate(_p67._0)){var _v47=predicate,_v48=_p67._1;predicate=_v47;list=_v48;continue dropWhile;}else{return list;}}}});var _elm_community$list_extra$List_Extra$takeWhile=F2(function(predicate,list){var _p68=list;if(_p68.ctor==='[]'){return{ctor:'[]'};}else{var _p69=_p68._0;return predicate(_p69)?{ctor:'::',_0:_p69,_1:A2(_elm_community$list_extra$List_Extra$takeWhile,predicate,_p68._1)}:{ctor:'[]'};}});var _elm_community$list_extra$List_Extra$span=F2(function(p,xs){return{ctor:'_Tuple2',_0:A2(_elm_community$list_extra$List_Extra$takeWhile,p,xs),_1:A2(_elm_community$list_extra$List_Extra$dropWhile,p,xs)};});var _elm_community$list_extra$List_Extra$break=function _elm_community$list_extra$List_Extra$break(p){return _elm_community$list_extra$List_Extra$span(function(_p70){return!p(_p70);});};var _elm_community$list_extra$List_Extra$groupWhile=F2(function(eq,xs_){var _p71=xs_;if(_p71.ctor==='[]'){return{ctor:'[]'};}else{var _p73=_p71._0;var _p72=A2(_elm_community$list_extra$List_Extra$span,eq(_p73),_p71._1);var ys=_p72._0;var zs=_p72._1;return{ctor:'::',_0:{ctor:'::',_0:_p73,_1:ys},_1:A2(_elm_community$list_extra$List_Extra$groupWhile,eq,zs)};}});var _elm_community$list_extra$List_Extra$group=_elm_community$list_extra$List_Extra$groupWhile(F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);}));var _elm_community$list_extra$List_Extra$minimumBy=F2(function(f,ls){var minBy=F2(function(x,_p74){var _p75=_p74;var _p76=_p75._1;var fx=f(x);return _elm_lang$core$Native_Utils.cmp(fx,_p76)<0?{ctor:'_Tuple2',_0:x,_1:fx}:{ctor:'_Tuple2',_0:_p75._0,_1:_p76};});var _p77=ls;if(_p77.ctor==='::'){if(_p77._1.ctor==='[]'){return _elm_lang$core$Maybe$Just(_p77._0);}else{var _p78=_p77._0;return _elm_lang$core$Maybe$Just(_elm_lang$core$Tuple$first(A3(_elm_lang$core$List$foldl,minBy,{ctor:'_Tuple2',_0:_p78,_1:f(_p78)},_p77._1)));}}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_community$list_extra$List_Extra$maximumBy=F2(function(f,ls){var maxBy=F2(function(x,_p79){var _p80=_p79;var _p81=_p80._1;var fx=f(x);return _elm_lang$core$Native_Utils.cmp(fx,_p81)>0?{ctor:'_Tuple2',_0:x,_1:fx}:{ctor:'_Tuple2',_0:_p80._0,_1:_p81};});var _p82=ls;if(_p82.ctor==='::'){if(_p82._1.ctor==='[]'){return _elm_lang$core$Maybe$Just(_p82._0);}else{var _p83=_p82._0;return _elm_lang$core$Maybe$Just(_elm_lang$core$Tuple$first(A3(_elm_lang$core$List$foldl,maxBy,{ctor:'_Tuple2',_0:_p83,_1:f(_p83)},_p82._1)));}}else{return _elm_lang$core$Maybe$Nothing;}});var _elm_community$list_extra$List_Extra$uncons=function _elm_community$list_extra$List_Extra$uncons(xs){var _p84=xs;if(_p84.ctor==='[]'){return _elm_lang$core$Maybe$Nothing;}else{return _elm_lang$core$Maybe$Just({ctor:'_Tuple2',_0:_p84._0,_1:_p84._1});}};var _elm_community$list_extra$List_Extra$swapAt=F3(function(index1,index2,l){swapAt:while(true){if(_elm_lang$core$Native_Utils.eq(index1,index2)){return _elm_lang$core$Maybe$Just(l);}else{if(_elm_lang$core$Native_Utils.cmp(index1,index2)>0){var _v56=index2,_v57=index1,_v58=l;index1=_v56;index2=_v57;l=_v58;continue swapAt;}else{if(_elm_lang$core$Native_Utils.cmp(index1,0)<0){return _elm_lang$core$Maybe$Nothing;}else{var _p85=A2(_elm_community$list_extra$List_Extra$splitAt,index1,l);var part1=_p85._0;var tail1=_p85._1;var _p86=A2(_elm_community$list_extra$List_Extra$splitAt,index2-index1,tail1);var head2=_p86._0;var tail2=_p86._1;return A3(_elm_lang$core$Maybe$map2,F2(function(_p88,_p87){var _p89=_p88;var _p90=_p87;return _elm_lang$core$List$concat({ctor:'::',_0:part1,_1:{ctor:'::',_0:{ctor:'::',_0:_p90._0,_1:_p89._1},_1:{ctor:'::',_0:{ctor:'::',_0:_p89._0,_1:_p90._1},_1:{ctor:'[]'}}}});}),_elm_community$list_extra$List_Extra$uncons(head2),_elm_community$list_extra$List_Extra$uncons(tail2));}}}}});var _elm_community$list_extra$List_Extra$iterate=F2(function(f,x){var _p91=f(x);if(_p91.ctor==='Just'){return{ctor:'::',_0:x,_1:A2(_elm_community$list_extra$List_Extra$iterate,f,_p91._0)};}else{return{ctor:'::',_0:x,_1:{ctor:'[]'}};}});var _elm_community$list_extra$List_Extra$getAt=F2(function(idx,xs){return _elm_lang$core$Native_Utils.cmp(idx,0)<0?_elm_lang$core$Maybe$Nothing:_elm_lang$core$List$head(A2(_elm_lang$core$List$drop,idx,xs));});var _elm_community$list_extra$List_Extra_ops=_elm_community$list_extra$List_Extra_ops||{};_elm_community$list_extra$List_Extra_ops['!!']=_elm_lang$core$Basics$flip(_elm_community$list_extra$List_Extra$getAt);var _elm_community$list_extra$List_Extra$init=function(){var maybe=F2(function(d,f){return function(_p92){return A2(_elm_lang$core$Maybe$withDefault,d,A2(_elm_lang$core$Maybe$map,f,_p92));};});return A2(_elm_lang$core$List$foldr,function(x){return function(_p93){return _elm_lang$core$Maybe$Just(A3(maybe,{ctor:'[]'},F2(function(x,y){return{ctor:'::',_0:x,_1:y};})(x),_p93));};},_elm_lang$core$Maybe$Nothing);}();var _elm_community$list_extra$List_Extra$last=_elm_community$list_extra$List_Extra$foldl1(_elm_lang$core$Basics$flip(_elm_lang$core$Basics$always));var _elm_lang$animation_frame$Native_AnimationFrame=function(){function create(){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){var id=requestAnimationFrame(function(){callback(_elm_lang$core$Native_Scheduler.succeed(Date.now()));});return function(){cancelAnimationFrame(id);};});}return{create:create};}();var _elm_lang$core$Process$kill=_elm_lang$core$Native_Scheduler.kill;var _elm_lang$core$Process$sleep=_elm_lang$core$Native_Scheduler.sleep;var _elm_lang$core$Process$spawn=_elm_lang$core$Native_Scheduler.spawn;var _elm_lang$animation_frame$AnimationFrame$rAF=_elm_lang$animation_frame$Native_AnimationFrame.create({ctor:'_Tuple0'});var _elm_lang$animation_frame$AnimationFrame$subscription=_elm_lang$core$Native_Platform.leaf('AnimationFrame');var _elm_lang$animation_frame$AnimationFrame$State=F3(function(a,b,c){return{subs:a,request:b,oldTime:c};});var _elm_lang$animation_frame$AnimationFrame$init=_elm_lang$core$Task$succeed(A3(_elm_lang$animation_frame$AnimationFrame$State,{ctor:'[]'},_elm_lang$core$Maybe$Nothing,0));var _elm_lang$animation_frame$AnimationFrame$onEffects=F3(function(router,subs,_p0){var _p1=_p0;var _p5=_p1.request;var _p4=_p1.oldTime;var _p2={ctor:'_Tuple2',_0:_p5,_1:subs};if(_p2._0.ctor==='Nothing'){if(_p2._1.ctor==='[]'){return _elm_lang$core$Task$succeed(A3(_elm_lang$animation_frame$AnimationFrame$State,{ctor:'[]'},_elm_lang$core$Maybe$Nothing,_p4));}else{return A2(_elm_lang$core$Task$andThen,function(pid){return A2(_elm_lang$core$Task$andThen,function(time){return _elm_lang$core$Task$succeed(A3(_elm_lang$animation_frame$AnimationFrame$State,subs,_elm_lang$core$Maybe$Just(pid),time));},_elm_lang$core$Time$now);},_elm_lang$core$Process$spawn(A2(_elm_lang$core$Task$andThen,_elm_lang$core$Platform$sendToSelf(router),_elm_lang$animation_frame$AnimationFrame$rAF)));}}else{if(_p2._1.ctor==='[]'){return A2(_elm_lang$core$Task$andThen,function(_p3){return _elm_lang$core$Task$succeed(A3(_elm_lang$animation_frame$AnimationFrame$State,{ctor:'[]'},_elm_lang$core$Maybe$Nothing,_p4));},_elm_lang$core$Process$kill(_p2._0._0));}else{return _elm_lang$core$Task$succeed(A3(_elm_lang$animation_frame$AnimationFrame$State,subs,_p5,_p4));}}});var _elm_lang$animation_frame$AnimationFrame$onSelfMsg=F3(function(router,newTime,_p6){var _p7=_p6;var _p10=_p7.subs;var diff=newTime-_p7.oldTime;var send=function send(sub){var _p8=sub;if(_p8.ctor==='Time'){return A2(_elm_lang$core$Platform$sendToApp,router,_p8._0(newTime));}else{return A2(_elm_lang$core$Platform$sendToApp,router,_p8._0(diff));}};return A2(_elm_lang$core$Task$andThen,function(pid){return A2(_elm_lang$core$Task$andThen,function(_p9){return _elm_lang$core$Task$succeed(A3(_elm_lang$animation_frame$AnimationFrame$State,_p10,_elm_lang$core$Maybe$Just(pid),newTime));},_elm_lang$core$Task$sequence(A2(_elm_lang$core$List$map,send,_p10)));},_elm_lang$core$Process$spawn(A2(_elm_lang$core$Task$andThen,_elm_lang$core$Platform$sendToSelf(router),_elm_lang$animation_frame$AnimationFrame$rAF)));});var _elm_lang$animation_frame$AnimationFrame$Diff=function _elm_lang$animation_frame$AnimationFrame$Diff(a){return{ctor:'Diff',_0:a};};var _elm_lang$animation_frame$AnimationFrame$diffs=function _elm_lang$animation_frame$AnimationFrame$diffs(tagger){return _elm_lang$animation_frame$AnimationFrame$subscription(_elm_lang$animation_frame$AnimationFrame$Diff(tagger));};var _elm_lang$animation_frame$AnimationFrame$Time=function _elm_lang$animation_frame$AnimationFrame$Time(a){return{ctor:'Time',_0:a};};var _elm_lang$animation_frame$AnimationFrame$times=function _elm_lang$animation_frame$AnimationFrame$times(tagger){return _elm_lang$animation_frame$AnimationFrame$subscription(_elm_lang$animation_frame$AnimationFrame$Time(tagger));};var _elm_lang$animation_frame$AnimationFrame$subMap=F2(function(func,sub){var _p11=sub;if(_p11.ctor==='Time'){return _elm_lang$animation_frame$AnimationFrame$Time(function(_p12){return func(_p11._0(_p12));});}else{return _elm_lang$animation_frame$AnimationFrame$Diff(function(_p13){return func(_p11._0(_p13));});}});_elm_lang$core$Native_Platform.effectManagers['AnimationFrame']={pkg:'elm-lang/animation-frame',init:_elm_lang$animation_frame$AnimationFrame$init,onEffects:_elm_lang$animation_frame$AnimationFrame$onEffects,onSelfMsg:_elm_lang$animation_frame$AnimationFrame$onSelfMsg,tag:'sub',subMap:_elm_lang$animation_frame$AnimationFrame$subMap};var _elm_lang$core$Color$fmod=F2(function(f,n){var integer=_elm_lang$core$Basics$floor(f);return _elm_lang$core$Basics$toFloat(A2(_elm_lang$core$Basics_ops['%'],integer,n))+f-_elm_lang$core$Basics$toFloat(integer);});var _elm_lang$core$Color$rgbToHsl=F3(function(red,green,blue){var b=_elm_lang$core$Basics$toFloat(blue)/255;var g=_elm_lang$core$Basics$toFloat(green)/255;var r=_elm_lang$core$Basics$toFloat(red)/255;var cMax=A2(_elm_lang$core$Basics$max,A2(_elm_lang$core$Basics$max,r,g),b);var cMin=A2(_elm_lang$core$Basics$min,A2(_elm_lang$core$Basics$min,r,g),b);var c=cMax-cMin;var lightness=(cMax+cMin)/2;var saturation=_elm_lang$core$Native_Utils.eq(lightness,0)?0:c/(1-_elm_lang$core$Basics$abs(2*lightness-1));var hue=_elm_lang$core$Basics$degrees(60)*(_elm_lang$core$Native_Utils.eq(cMax,r)?A2(_elm_lang$core$Color$fmod,(g-b)/c,6):_elm_lang$core$Native_Utils.eq(cMax,g)?(b-r)/c+2:(r-g)/c+4);return{ctor:'_Tuple3',_0:hue,_1:saturation,_2:lightness};});var _elm_lang$core$Color$hslToRgb=F3(function(hue,saturation,lightness){var normHue=hue/_elm_lang$core$Basics$degrees(60);var chroma=(1-_elm_lang$core$Basics$abs(2*lightness-1))*saturation;var x=chroma*(1-_elm_lang$core$Basics$abs(A2(_elm_lang$core$Color$fmod,normHue,2)-1));var _p0=_elm_lang$core$Native_Utils.cmp(normHue,0)<0?{ctor:'_Tuple3',_0:0,_1:0,_2:0}:_elm_lang$core$Native_Utils.cmp(normHue,1)<0?{ctor:'_Tuple3',_0:chroma,_1:x,_2:0}:_elm_lang$core$Native_Utils.cmp(normHue,2)<0?{ctor:'_Tuple3',_0:x,_1:chroma,_2:0}:_elm_lang$core$Native_Utils.cmp(normHue,3)<0?{ctor:'_Tuple3',_0:0,_1:chroma,_2:x}:_elm_lang$core$Native_Utils.cmp(normHue,4)<0?{ctor:'_Tuple3',_0:0,_1:x,_2:chroma}:_elm_lang$core$Native_Utils.cmp(normHue,5)<0?{ctor:'_Tuple3',_0:x,_1:0,_2:chroma}:_elm_lang$core$Native_Utils.cmp(normHue,6)<0?{ctor:'_Tuple3',_0:chroma,_1:0,_2:x}:{ctor:'_Tuple3',_0:0,_1:0,_2:0};var r=_p0._0;var g=_p0._1;var b=_p0._2;var m=lightness-chroma/2;return{ctor:'_Tuple3',_0:r+m,_1:g+m,_2:b+m};});var _elm_lang$core$Color$toRgb=function _elm_lang$core$Color$toRgb(color){var _p1=color;if(_p1.ctor==='RGBA'){return{red:_p1._0,green:_p1._1,blue:_p1._2,alpha:_p1._3};}else{var _p2=A3(_elm_lang$core$Color$hslToRgb,_p1._0,_p1._1,_p1._2);var r=_p2._0;var g=_p2._1;var b=_p2._2;return{red:_elm_lang$core$Basics$round(255*r),green:_elm_lang$core$Basics$round(255*g),blue:_elm_lang$core$Basics$round(255*b),alpha:_p1._3};}};var _elm_lang$core$Color$toHsl=function _elm_lang$core$Color$toHsl(color){var _p3=color;if(_p3.ctor==='HSLA'){return{hue:_p3._0,saturation:_p3._1,lightness:_p3._2,alpha:_p3._3};}else{var _p4=A3(_elm_lang$core$Color$rgbToHsl,_p3._0,_p3._1,_p3._2);var h=_p4._0;var s=_p4._1;var l=_p4._2;return{hue:h,saturation:s,lightness:l,alpha:_p3._3};}};var _elm_lang$core$Color$HSLA=F4(function(a,b,c,d){return{ctor:'HSLA',_0:a,_1:b,_2:c,_3:d};});var _elm_lang$core$Color$hsla=F4(function(hue,saturation,lightness,alpha){return A4(_elm_lang$core$Color$HSLA,hue-_elm_lang$core$Basics$turns(_elm_lang$core$Basics$toFloat(_elm_lang$core$Basics$floor(hue/(2*_elm_lang$core$Basics$pi)))),saturation,lightness,alpha);});var _elm_lang$core$Color$hsl=F3(function(hue,saturation,lightness){return A4(_elm_lang$core$Color$hsla,hue,saturation,lightness,1);});var _elm_lang$core$Color$complement=function _elm_lang$core$Color$complement(color){var _p5=color;if(_p5.ctor==='HSLA'){return A4(_elm_lang$core$Color$hsla,_p5._0+_elm_lang$core$Basics$degrees(180),_p5._1,_p5._2,_p5._3);}else{var _p6=A3(_elm_lang$core$Color$rgbToHsl,_p5._0,_p5._1,_p5._2);var h=_p6._0;var s=_p6._1;var l=_p6._2;return A4(_elm_lang$core$Color$hsla,h+_elm_lang$core$Basics$degrees(180),s,l,_p5._3);}};var _elm_lang$core$Color$grayscale=function _elm_lang$core$Color$grayscale(p){return A4(_elm_lang$core$Color$HSLA,0,0,1-p,1);};var _elm_lang$core$Color$greyscale=function _elm_lang$core$Color$greyscale(p){return A4(_elm_lang$core$Color$HSLA,0,0,1-p,1);};var _elm_lang$core$Color$RGBA=F4(function(a,b,c,d){return{ctor:'RGBA',_0:a,_1:b,_2:c,_3:d};});var _elm_lang$core$Color$rgba=_elm_lang$core$Color$RGBA;var _elm_lang$core$Color$rgb=F3(function(r,g,b){return A4(_elm_lang$core$Color$RGBA,r,g,b,1);});var _elm_lang$core$Color$lightRed=A4(_elm_lang$core$Color$RGBA,239,41,41,1);var _elm_lang$core$Color$red=A4(_elm_lang$core$Color$RGBA,204,0,0,1);var _elm_lang$core$Color$darkRed=A4(_elm_lang$core$Color$RGBA,164,0,0,1);var _elm_lang$core$Color$lightOrange=A4(_elm_lang$core$Color$RGBA,252,175,62,1);var _elm_lang$core$Color$orange=A4(_elm_lang$core$Color$RGBA,245,121,0,1);var _elm_lang$core$Color$darkOrange=A4(_elm_lang$core$Color$RGBA,206,92,0,1);var _elm_lang$core$Color$lightYellow=A4(_elm_lang$core$Color$RGBA,255,233,79,1);var _elm_lang$core$Color$yellow=A4(_elm_lang$core$Color$RGBA,237,212,0,1);var _elm_lang$core$Color$darkYellow=A4(_elm_lang$core$Color$RGBA,196,160,0,1);var _elm_lang$core$Color$lightGreen=A4(_elm_lang$core$Color$RGBA,138,226,52,1);var _elm_lang$core$Color$green=A4(_elm_lang$core$Color$RGBA,115,210,22,1);var _elm_lang$core$Color$darkGreen=A4(_elm_lang$core$Color$RGBA,78,154,6,1);var _elm_lang$core$Color$lightBlue=A4(_elm_lang$core$Color$RGBA,114,159,207,1);var _elm_lang$core$Color$blue=A4(_elm_lang$core$Color$RGBA,52,101,164,1);var _elm_lang$core$Color$darkBlue=A4(_elm_lang$core$Color$RGBA,32,74,135,1);var _elm_lang$core$Color$lightPurple=A4(_elm_lang$core$Color$RGBA,173,127,168,1);var _elm_lang$core$Color$purple=A4(_elm_lang$core$Color$RGBA,117,80,123,1);var _elm_lang$core$Color$darkPurple=A4(_elm_lang$core$Color$RGBA,92,53,102,1);var _elm_lang$core$Color$lightBrown=A4(_elm_lang$core$Color$RGBA,233,185,110,1);var _elm_lang$core$Color$brown=A4(_elm_lang$core$Color$RGBA,193,125,17,1);var _elm_lang$core$Color$darkBrown=A4(_elm_lang$core$Color$RGBA,143,89,2,1);var _elm_lang$core$Color$black=A4(_elm_lang$core$Color$RGBA,0,0,0,1);var _elm_lang$core$Color$white=A4(_elm_lang$core$Color$RGBA,255,255,255,1);var _elm_lang$core$Color$lightGrey=A4(_elm_lang$core$Color$RGBA,238,238,236,1);var _elm_lang$core$Color$grey=A4(_elm_lang$core$Color$RGBA,211,215,207,1);var _elm_lang$core$Color$darkGrey=A4(_elm_lang$core$Color$RGBA,186,189,182,1);var _elm_lang$core$Color$lightGray=A4(_elm_lang$core$Color$RGBA,238,238,236,1);var _elm_lang$core$Color$gray=A4(_elm_lang$core$Color$RGBA,211,215,207,1);var _elm_lang$core$Color$darkGray=A4(_elm_lang$core$Color$RGBA,186,189,182,1);var _elm_lang$core$Color$lightCharcoal=A4(_elm_lang$core$Color$RGBA,136,138,133,1);var _elm_lang$core$Color$charcoal=A4(_elm_lang$core$Color$RGBA,85,87,83,1);var _elm_lang$core$Color$darkCharcoal=A4(_elm_lang$core$Color$RGBA,46,52,54,1);var _elm_lang$core$Color$Radial=F5(function(a,b,c,d,e){return{ctor:'Radial',_0:a,_1:b,_2:c,_3:d,_4:e};});var _elm_lang$core$Color$radial=_elm_lang$core$Color$Radial;var _elm_lang$core$Color$Linear=F3(function(a,b,c){return{ctor:'Linear',_0:a,_1:b,_2:c};});var _elm_lang$core$Color$linear=_elm_lang$core$Color$Linear;var _elm_lang$core$Random$onSelfMsg=F3(function(_p1,_p0,seed){return _elm_lang$core$Task$succeed(seed);});var _elm_lang$core$Random$magicNum8=2147483562;var _elm_lang$core$Random$range=function _elm_lang$core$Random$range(_p2){return{ctor:'_Tuple2',_0:0,_1:_elm_lang$core$Random$magicNum8};};var _elm_lang$core$Random$magicNum7=2147483399;var _elm_lang$core$Random$magicNum6=2147483563;var _elm_lang$core$Random$magicNum5=3791;var _elm_lang$core$Random$magicNum4=40692;var _elm_lang$core$Random$magicNum3=52774;var _elm_lang$core$Random$magicNum2=12211;var _elm_lang$core$Random$magicNum1=53668;var _elm_lang$core$Random$magicNum0=40014;var _elm_lang$core$Random$step=F2(function(_p3,seed){var _p4=_p3;return _p4._0(seed);});var _elm_lang$core$Random$onEffects=F3(function(router,commands,seed){var _p5=commands;if(_p5.ctor==='[]'){return _elm_lang$core$Task$succeed(seed);}else{var _p6=A2(_elm_lang$core$Random$step,_p5._0._0,seed);var value=_p6._0;var newSeed=_p6._1;return A2(_elm_lang$core$Task$andThen,function(_p7){return A3(_elm_lang$core$Random$onEffects,router,_p5._1,newSeed);},A2(_elm_lang$core$Platform$sendToApp,router,value));}});var _elm_lang$core$Random$listHelp=F4(function(list,n,generate,seed){listHelp:while(true){if(_elm_lang$core$Native_Utils.cmp(n,1)<0){return{ctor:'_Tuple2',_0:_elm_lang$core$List$reverse(list),_1:seed};}else{var _p8=generate(seed);var value=_p8._0;var newSeed=_p8._1;var _v2={ctor:'::',_0:value,_1:list},_v3=n-1,_v4=generate,_v5=newSeed;list=_v2;n=_v3;generate=_v4;seed=_v5;continue listHelp;}}});var _elm_lang$core$Random$minInt=-2147483648;var _elm_lang$core$Random$maxInt=2147483647;var _elm_lang$core$Random$iLogBase=F2(function(b,i){return _elm_lang$core$Native_Utils.cmp(i,b)<0?1:1+A2(_elm_lang$core$Random$iLogBase,b,i/b|0);});var _elm_lang$core$Random$command=_elm_lang$core$Native_Platform.leaf('Random');var _elm_lang$core$Random$Generator=function _elm_lang$core$Random$Generator(a){return{ctor:'Generator',_0:a};};var _elm_lang$core$Random$list=F2(function(n,_p9){var _p10=_p9;return _elm_lang$core$Random$Generator(function(seed){return A4(_elm_lang$core$Random$listHelp,{ctor:'[]'},n,_p10._0,seed);});});var _elm_lang$core$Random$map=F2(function(func,_p11){var _p12=_p11;return _elm_lang$core$Random$Generator(function(seed0){var _p13=_p12._0(seed0);var a=_p13._0;var seed1=_p13._1;return{ctor:'_Tuple2',_0:func(a),_1:seed1};});});var _elm_lang$core$Random$map2=F3(function(func,_p15,_p14){var _p16=_p15;var _p17=_p14;return _elm_lang$core$Random$Generator(function(seed0){var _p18=_p16._0(seed0);var a=_p18._0;var seed1=_p18._1;var _p19=_p17._0(seed1);var b=_p19._0;var seed2=_p19._1;return{ctor:'_Tuple2',_0:A2(func,a,b),_1:seed2};});});var _elm_lang$core$Random$pair=F2(function(genA,genB){return A3(_elm_lang$core$Random$map2,F2(function(v0,v1){return{ctor:'_Tuple2',_0:v0,_1:v1};}),genA,genB);});var _elm_lang$core$Random$map3=F4(function(func,_p22,_p21,_p20){var _p23=_p22;var _p24=_p21;var _p25=_p20;return _elm_lang$core$Random$Generator(function(seed0){var _p26=_p23._0(seed0);var a=_p26._0;var seed1=_p26._1;var _p27=_p24._0(seed1);var b=_p27._0;var seed2=_p27._1;var _p28=_p25._0(seed2);var c=_p28._0;var seed3=_p28._1;return{ctor:'_Tuple2',_0:A3(func,a,b,c),_1:seed3};});});var _elm_lang$core$Random$map4=F5(function(func,_p32,_p31,_p30,_p29){var _p33=_p32;var _p34=_p31;var _p35=_p30;var _p36=_p29;return _elm_lang$core$Random$Generator(function(seed0){var _p37=_p33._0(seed0);var a=_p37._0;var seed1=_p37._1;var _p38=_p34._0(seed1);var b=_p38._0;var seed2=_p38._1;var _p39=_p35._0(seed2);var c=_p39._0;var seed3=_p39._1;var _p40=_p36._0(seed3);var d=_p40._0;var seed4=_p40._1;return{ctor:'_Tuple2',_0:A4(func,a,b,c,d),_1:seed4};});});var _elm_lang$core$Random$map5=F6(function(func,_p45,_p44,_p43,_p42,_p41){var _p46=_p45;var _p47=_p44;var _p48=_p43;var _p49=_p42;var _p50=_p41;return _elm_lang$core$Random$Generator(function(seed0){var _p51=_p46._0(seed0);var a=_p51._0;var seed1=_p51._1;var _p52=_p47._0(seed1);var b=_p52._0;var seed2=_p52._1;var _p53=_p48._0(seed2);var c=_p53._0;var seed3=_p53._1;var _p54=_p49._0(seed3);var d=_p54._0;var seed4=_p54._1;var _p55=_p50._0(seed4);var e=_p55._0;var seed5=_p55._1;return{ctor:'_Tuple2',_0:A5(func,a,b,c,d,e),_1:seed5};});});var _elm_lang$core$Random$andThen=F2(function(callback,_p56){var _p57=_p56;return _elm_lang$core$Random$Generator(function(seed){var _p58=_p57._0(seed);var result=_p58._0;var newSeed=_p58._1;var _p59=callback(result);var genB=_p59._0;return genB(newSeed);});});var _elm_lang$core$Random$State=F2(function(a,b){return{ctor:'State',_0:a,_1:b};});var _elm_lang$core$Random$initState=function _elm_lang$core$Random$initState(seed){var s=A2(_elm_lang$core$Basics$max,seed,0-seed);var q=s/(_elm_lang$core$Random$magicNum6-1)|0;var s2=A2(_elm_lang$core$Basics_ops['%'],q,_elm_lang$core$Random$magicNum7-1);var s1=A2(_elm_lang$core$Basics_ops['%'],s,_elm_lang$core$Random$magicNum6-1);return A2(_elm_lang$core$Random$State,s1+1,s2+1);};var _elm_lang$core$Random$next=function _elm_lang$core$Random$next(_p60){var _p61=_p60;var _p63=_p61._1;var _p62=_p61._0;var k2=_p63/_elm_lang$core$Random$magicNum3|0;var rawState2=_elm_lang$core$Random$magicNum4*(_p63-k2*_elm_lang$core$Random$magicNum3)-k2*_elm_lang$core$Random$magicNum5;var newState2=_elm_lang$core$Native_Utils.cmp(rawState2,0)<0?rawState2+_elm_lang$core$Random$magicNum7:rawState2;var k1=_p62/_elm_lang$core$Random$magicNum1|0;var rawState1=_elm_lang$core$Random$magicNum0*(_p62-k1*_elm_lang$core$Random$magicNum1)-k1*_elm_lang$core$Random$magicNum2;var newState1=_elm_lang$core$Native_Utils.cmp(rawState1,0)<0?rawState1+_elm_lang$core$Random$magicNum6:rawState1;var z=newState1-newState2;var newZ=_elm_lang$core$Native_Utils.cmp(z,1)<0?z+_elm_lang$core$Random$magicNum8:z;return{ctor:'_Tuple2',_0:newZ,_1:A2(_elm_lang$core$Random$State,newState1,newState2)};};var _elm_lang$core$Random$split=function _elm_lang$core$Random$split(_p64){var _p65=_p64;var _p68=_p65._1;var _p67=_p65._0;var _p66=_elm_lang$core$Tuple$second(_elm_lang$core$Random$next(_p65));var t1=_p66._0;var t2=_p66._1;var new_s2=_elm_lang$core$Native_Utils.eq(_p68,1)?_elm_lang$core$Random$magicNum7-1:_p68-1;var new_s1=_elm_lang$core$Native_Utils.eq(_p67,_elm_lang$core$Random$magicNum6-1)?1:_p67+1;return{ctor:'_Tuple2',_0:A2(_elm_lang$core$Random$State,new_s1,t2),_1:A2(_elm_lang$core$Random$State,t1,new_s2)};};var _elm_lang$core$Random$Seed=function _elm_lang$core$Random$Seed(a){return{ctor:'Seed',_0:a};};var _elm_lang$core$Random$int=F2(function(a,b){return _elm_lang$core$Random$Generator(function(_p69){var _p70=_p69;var _p75=_p70._0;var base=2147483561;var f=F3(function(n,acc,state){f:while(true){var _p71=n;if(_p71===0){return{ctor:'_Tuple2',_0:acc,_1:state};}else{var _p72=_p75.next(state);var x=_p72._0;var nextState=_p72._1;var _v27=n-1,_v28=x+acc*base,_v29=nextState;n=_v27;acc=_v28;state=_v29;continue f;}}});var _p73=_elm_lang$core$Native_Utils.cmp(a,b)<0?{ctor:'_Tuple2',_0:a,_1:b}:{ctor:'_Tuple2',_0:b,_1:a};var lo=_p73._0;var hi=_p73._1;var k=hi-lo+1;var n=A2(_elm_lang$core$Random$iLogBase,base,k);var _p74=A3(f,n,1,_p75.state);var v=_p74._0;var nextState=_p74._1;return{ctor:'_Tuple2',_0:lo+A2(_elm_lang$core$Basics_ops['%'],v,k),_1:_elm_lang$core$Random$Seed(_elm_lang$core$Native_Utils.update(_p75,{state:nextState}))};});});var _elm_lang$core$Random$bool=A2(_elm_lang$core$Random$map,F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);})(1),A2(_elm_lang$core$Random$int,0,1));var _elm_lang$core$Random$float=F2(function(a,b){return _elm_lang$core$Random$Generator(function(seed){var _p76=A2(_elm_lang$core$Random$step,A2(_elm_lang$core$Random$int,_elm_lang$core$Random$minInt,_elm_lang$core$Random$maxInt),seed);var number=_p76._0;var newSeed=_p76._1;var negativeOneToOne=_elm_lang$core$Basics$toFloat(number)/_elm_lang$core$Basics$toFloat(_elm_lang$core$Random$maxInt-_elm_lang$core$Random$minInt);var _p77=_elm_lang$core$Native_Utils.cmp(a,b)<0?{ctor:'_Tuple2',_0:a,_1:b}:{ctor:'_Tuple2',_0:b,_1:a};var lo=_p77._0;var hi=_p77._1;var scaled=(lo+hi)/2+(hi-lo)*negativeOneToOne;return{ctor:'_Tuple2',_0:scaled,_1:newSeed};});});var _elm_lang$core$Random$initialSeed=function _elm_lang$core$Random$initialSeed(n){return _elm_lang$core$Random$Seed({state:_elm_lang$core$Random$initState(n),next:_elm_lang$core$Random$next,split:_elm_lang$core$Random$split,range:_elm_lang$core$Random$range});};var _elm_lang$core$Random$init=A2(_elm_lang$core$Task$andThen,function(t){return _elm_lang$core$Task$succeed(_elm_lang$core$Random$initialSeed(_elm_lang$core$Basics$round(t)));},_elm_lang$core$Time$now);var _elm_lang$core$Random$Generate=function _elm_lang$core$Random$Generate(a){return{ctor:'Generate',_0:a};};var _elm_lang$core$Random$generate=F2(function(tagger,generator){return _elm_lang$core$Random$command(_elm_lang$core$Random$Generate(A2(_elm_lang$core$Random$map,tagger,generator)));});var _elm_lang$core$Random$cmdMap=F2(function(func,_p78){var _p79=_p78;return _elm_lang$core$Random$Generate(A2(_elm_lang$core$Random$map,func,_p79._0));});_elm_lang$core$Native_Platform.effectManagers['Random']={pkg:'elm-lang/core',init:_elm_lang$core$Random$init,onEffects:_elm_lang$core$Random$onEffects,onSelfMsg:_elm_lang$core$Random$onSelfMsg,tag:'cmd',cmdMap:_elm_lang$core$Random$cmdMap};var _elm_lang$dom$Native_Dom=function(){var fakeNode={addEventListener:function addEventListener(){},removeEventListener:function removeEventListener(){}};var onDocument=on(typeof document!=='undefined'?document:fakeNode);var onWindow=on(typeof window!=='undefined'?window:fakeNode);function on(node){return function(eventName,decoder,toTask){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){function performTask(event){var result=A2(_elm_lang$core$Json_Decode$decodeValue,decoder,event);if(result.ctor==='Ok'){_elm_lang$core$Native_Scheduler.rawSpawn(toTask(result._0));}}node.addEventListener(eventName,performTask);return function(){node.removeEventListener(eventName,performTask);};});};}var rAF=typeof requestAnimationFrame!=='undefined'?requestAnimationFrame:function(callback){callback();};function withNode(id,doStuff){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){rAF(function(){var node=document.getElementById(id);if(node===null){callback(_elm_lang$core$Native_Scheduler.fail({ctor:'NotFound',_0:id}));return;}callback(_elm_lang$core$Native_Scheduler.succeed(doStuff(node)));});});}// FOCUS
  function focus(id){return withNode(id,function(node){node.focus();return _elm_lang$core$Native_Utils.Tuple0;});}function blur(id){return withNode(id,function(node){node.blur();return _elm_lang$core$Native_Utils.Tuple0;});}// SCROLLING
  function getScrollTop(id){return withNode(id,function(node){return node.scrollTop;});}function setScrollTop(id,desiredScrollTop){return withNode(id,function(node){node.scrollTop=desiredScrollTop;return _elm_lang$core$Native_Utils.Tuple0;});}function toBottom(id){return withNode(id,function(node){node.scrollTop=node.scrollHeight;return _elm_lang$core$Native_Utils.Tuple0;});}function getScrollLeft(id){return withNode(id,function(node){return node.scrollLeft;});}function setScrollLeft(id,desiredScrollLeft){return withNode(id,function(node){node.scrollLeft=desiredScrollLeft;return _elm_lang$core$Native_Utils.Tuple0;});}function toRight(id){return withNode(id,function(node){node.scrollLeft=node.scrollWidth;return _elm_lang$core$Native_Utils.Tuple0;});}// SIZE
  function width(options,id){return withNode(id,function(node){switch(options.ctor){case'Content':return node.scrollWidth;case'VisibleContent':return node.clientWidth;case'VisibleContentWithBorders':return node.offsetWidth;case'VisibleContentWithBordersAndMargins':var rect=node.getBoundingClientRect();return rect.right-rect.left;}});}function height(options,id){return withNode(id,function(node){switch(options.ctor){case'Content':return node.scrollHeight;case'VisibleContent':return node.clientHeight;case'VisibleContentWithBorders':return node.offsetHeight;case'VisibleContentWithBordersAndMargins':var rect=node.getBoundingClientRect();return rect.bottom-rect.top;}});}return{onDocument:F3(onDocument),onWindow:F3(onWindow),focus:focus,blur:blur,getScrollTop:getScrollTop,setScrollTop:F2(setScrollTop),getScrollLeft:getScrollLeft,setScrollLeft:F2(setScrollLeft),toBottom:toBottom,toRight:toRight,height:F2(height),width:F2(width)};}();var _elm_lang$dom$Dom_LowLevel$onWindow=_elm_lang$dom$Native_Dom.onWindow;var _elm_lang$dom$Dom_LowLevel$onDocument=_elm_lang$dom$Native_Dom.onDocument;var _elm_lang$virtual_dom$VirtualDom_Debug$wrap;var _elm_lang$virtual_dom$VirtualDom_Debug$wrapWithFlags;var _elm_lang$virtual_dom$Native_VirtualDom=function(){var STYLE_KEY='STYLE';var EVENT_KEY='EVENT';var ATTR_KEY='ATTR';var ATTR_NS_KEY='ATTR_NS';var localDoc=typeof document!=='undefined'?document:{};////////////  VIRTUAL DOM NODES  ////////////
  function text(string){return{type:'text',text:string};}function node(tag){return F2(function(factList,kidList){return nodeHelp(tag,factList,kidList);});}function nodeHelp(tag,factList,kidList){var organized=organizeFacts(factList);var namespace=organized.namespace;var facts=organized.facts;var children=[];var descendantsCount=0;while(kidList.ctor!=='[]'){var kid=kidList._0;descendantsCount+=kid.descendantsCount||0;children.push(kid);kidList=kidList._1;}descendantsCount+=children.length;return{type:'node',tag:tag,facts:facts,children:children,namespace:namespace,descendantsCount:descendantsCount};}function keyedNode(tag,factList,kidList){var organized=organizeFacts(factList);var namespace=organized.namespace;var facts=organized.facts;var children=[];var descendantsCount=0;while(kidList.ctor!=='[]'){var kid=kidList._0;descendantsCount+=kid._1.descendantsCount||0;children.push(kid);kidList=kidList._1;}descendantsCount+=children.length;return{type:'keyed-node',tag:tag,facts:facts,children:children,namespace:namespace,descendantsCount:descendantsCount};}function custom(factList,model,impl){var facts=organizeFacts(factList).facts;return{type:'custom',facts:facts,model:model,impl:impl};}function map(tagger,node){return{type:'tagger',tagger:tagger,node:node,descendantsCount:1+(node.descendantsCount||0)};}function thunk(func,args,thunk){return{type:'thunk',func:func,args:args,thunk:thunk,node:undefined};}function lazy(fn,a){return thunk(fn,[a],function(){return fn(a);});}function lazy2(fn,a,b){return thunk(fn,[a,b],function(){return A2(fn,a,b);});}function lazy3(fn,a,b,c){return thunk(fn,[a,b,c],function(){return A3(fn,a,b,c);});}// FACTS
  function organizeFacts(factList){var namespace,facts={};while(factList.ctor!=='[]'){var entry=factList._0;var key=entry.key;if(key===ATTR_KEY||key===ATTR_NS_KEY||key===EVENT_KEY){var subFacts=facts[key]||{};subFacts[entry.realKey]=entry.value;facts[key]=subFacts;}else if(key===STYLE_KEY){var styles=facts[key]||{};var styleList=entry.value;while(styleList.ctor!=='[]'){var style=styleList._0;styles[style._0]=style._1;styleList=styleList._1;}facts[key]=styles;}else if(key==='namespace'){namespace=entry.value;}else if(key==='className'){var classes=facts[key];facts[key]=typeof classes==='undefined'?entry.value:classes+' '+entry.value;}else{facts[key]=entry.value;}factList=factList._1;}return{facts:facts,namespace:namespace};}////////////  PROPERTIES AND ATTRIBUTES  ////////////
  function style(value){return{key:STYLE_KEY,value:value};}function property(key,value){return{key:key,value:value};}function attribute(key,value){return{key:ATTR_KEY,realKey:key,value:value};}function attributeNS(namespace,key,value){return{key:ATTR_NS_KEY,realKey:key,value:{value:value,namespace:namespace}};}function on(name,options,decoder){return{key:EVENT_KEY,realKey:name,value:{options:options,decoder:decoder}};}function equalEvents(a,b){if(!a.options===b.options){if(a.stopPropagation!==b.stopPropagation||a.preventDefault!==b.preventDefault){return false;}}return _elm_lang$core$Native_Json.equality(a.decoder,b.decoder);}function mapProperty(func,property){if(property.key!==EVENT_KEY){return property;}return on(property.realKey,property.value.options,A2(_elm_lang$core$Json_Decode$map,func,property.value.decoder));}////////////  RENDER  ////////////
  function render(vNode,eventNode){switch(vNode.type){case'thunk':if(!vNode.node){vNode.node=vNode.thunk();}return render(vNode.node,eventNode);case'tagger':var subNode=vNode.node;var tagger=vNode.tagger;while(subNode.type==='tagger'){(typeof tagger==='undefined'?'undefined':_typeof(tagger))!=='object'?tagger=[tagger,subNode.tagger]:tagger.push(subNode.tagger);subNode=subNode.node;}var subEventRoot={tagger:tagger,parent:eventNode};var domNode=render(subNode,subEventRoot);domNode.elm_event_node_ref=subEventRoot;return domNode;case'text':return localDoc.createTextNode(vNode.text);case'node':var domNode=vNode.namespace?localDoc.createElementNS(vNode.namespace,vNode.tag):localDoc.createElement(vNode.tag);applyFacts(domNode,eventNode,vNode.facts);var children=vNode.children;for(var i=0;i<children.length;i++){domNode.appendChild(render(children[i],eventNode));}return domNode;case'keyed-node':var domNode=vNode.namespace?localDoc.createElementNS(vNode.namespace,vNode.tag):localDoc.createElement(vNode.tag);applyFacts(domNode,eventNode,vNode.facts);var children=vNode.children;for(var i=0;i<children.length;i++){domNode.appendChild(render(children[i]._1,eventNode));}return domNode;case'custom':var domNode=vNode.impl.render(vNode.model);applyFacts(domNode,eventNode,vNode.facts);return domNode;}}////////////  APPLY FACTS  ////////////
  function applyFacts(domNode,eventNode,facts){for(var key in facts){var value=facts[key];switch(key){case STYLE_KEY:applyStyles(domNode,value);break;case EVENT_KEY:applyEvents(domNode,eventNode,value);break;case ATTR_KEY:applyAttrs(domNode,value);break;case ATTR_NS_KEY:applyAttrsNS(domNode,value);break;case'value':if(domNode[key]!==value){domNode[key]=value;}break;default:domNode[key]=value;break;}}}function applyStyles(domNode,styles){var domNodeStyle=domNode.style;for(var key in styles){domNodeStyle[key]=styles[key];}}function applyEvents(domNode,eventNode,events){var allHandlers=domNode.elm_handlers||{};for(var key in events){var handler=allHandlers[key];var value=events[key];if(typeof value==='undefined'){domNode.removeEventListener(key,handler);allHandlers[key]=undefined;}else if(typeof handler==='undefined'){var handler=makeEventHandler(eventNode,value);domNode.addEventListener(key,handler);allHandlers[key]=handler;}else{handler.info=value;}}domNode.elm_handlers=allHandlers;}function makeEventHandler(eventNode,info){function eventHandler(event){var info=eventHandler.info;var value=A2(_elm_lang$core$Native_Json.run,info.decoder,event);if(value.ctor==='Ok'){var options=info.options;if(options.stopPropagation){event.stopPropagation();}if(options.preventDefault){event.preventDefault();}var message=value._0;var currentEventNode=eventNode;while(currentEventNode){var tagger=currentEventNode.tagger;if(typeof tagger==='function'){message=tagger(message);}else{for(var i=tagger.length;i--;){message=tagger[i](message);}}currentEventNode=currentEventNode.parent;}}};eventHandler.info=info;return eventHandler;}function applyAttrs(domNode,attrs){for(var key in attrs){var value=attrs[key];if(typeof value==='undefined'){domNode.removeAttribute(key);}else{domNode.setAttribute(key,value);}}}function applyAttrsNS(domNode,nsAttrs){for(var key in nsAttrs){var pair=nsAttrs[key];var namespace=pair.namespace;var value=pair.value;if(typeof value==='undefined'){domNode.removeAttributeNS(namespace,key);}else{domNode.setAttributeNS(namespace,key,value);}}}////////////  DIFF  ////////////
  function diff(a,b){var patches=[];diffHelp(a,b,patches,0);return patches;}function makePatch(type,index,data){return{index:index,type:type,data:data,domNode:undefined,eventNode:undefined};}function diffHelp(a,b,patches,index){if(a===b){return;}var aType=a.type;var bType=b.type;// Bail if you run into different types of nodes. Implies that the
  // structure has changed significantly and it's not worth a diff.
  if(aType!==bType){patches.push(makePatch('p-redraw',index,b));return;}// Now we know that both nodes are the same type.
  switch(bType){case'thunk':var aArgs=a.args;var bArgs=b.args;var i=aArgs.length;var same=a.func===b.func&&i===bArgs.length;while(same&&i--){same=aArgs[i]===bArgs[i];}if(same){b.node=a.node;return;}b.node=b.thunk();var subPatches=[];diffHelp(a.node,b.node,subPatches,0);if(subPatches.length>0){patches.push(makePatch('p-thunk',index,subPatches));}return;case'tagger':// gather nested taggers
  var aTaggers=a.tagger;var bTaggers=b.tagger;var nesting=false;var aSubNode=a.node;while(aSubNode.type==='tagger'){nesting=true;(typeof aTaggers==='undefined'?'undefined':_typeof(aTaggers))!=='object'?aTaggers=[aTaggers,aSubNode.tagger]:aTaggers.push(aSubNode.tagger);aSubNode=aSubNode.node;}var bSubNode=b.node;while(bSubNode.type==='tagger'){nesting=true;(typeof bTaggers==='undefined'?'undefined':_typeof(bTaggers))!=='object'?bTaggers=[bTaggers,bSubNode.tagger]:bTaggers.push(bSubNode.tagger);bSubNode=bSubNode.node;}// Just bail if different numbers of taggers. This implies the
  // structure of the virtual DOM has changed.
  if(nesting&&aTaggers.length!==bTaggers.length){patches.push(makePatch('p-redraw',index,b));return;}// check if taggers are "the same"
  if(nesting?!pairwiseRefEqual(aTaggers,bTaggers):aTaggers!==bTaggers){patches.push(makePatch('p-tagger',index,bTaggers));}// diff everything below the taggers
  diffHelp(aSubNode,bSubNode,patches,index+1);return;case'text':if(a.text!==b.text){patches.push(makePatch('p-text',index,b.text));return;}return;case'node':// Bail if obvious indicators have changed. Implies more serious
  // structural changes such that it's not worth it to diff.
  if(a.tag!==b.tag||a.namespace!==b.namespace){patches.push(makePatch('p-redraw',index,b));return;}var factsDiff=diffFacts(a.facts,b.facts);if(typeof factsDiff!=='undefined'){patches.push(makePatch('p-facts',index,factsDiff));}diffChildren(a,b,patches,index);return;case'keyed-node':// Bail if obvious indicators have changed. Implies more serious
  // structural changes such that it's not worth it to diff.
  if(a.tag!==b.tag||a.namespace!==b.namespace){patches.push(makePatch('p-redraw',index,b));return;}var factsDiff=diffFacts(a.facts,b.facts);if(typeof factsDiff!=='undefined'){patches.push(makePatch('p-facts',index,factsDiff));}diffKeyedChildren(a,b,patches,index);return;case'custom':if(a.impl!==b.impl){patches.push(makePatch('p-redraw',index,b));return;}var factsDiff=diffFacts(a.facts,b.facts);if(typeof factsDiff!=='undefined'){patches.push(makePatch('p-facts',index,factsDiff));}var patch=b.impl.diff(a,b);if(patch){patches.push(makePatch('p-custom',index,patch));return;}return;}}// assumes the incoming arrays are the same length
  function pairwiseRefEqual(as,bs){for(var i=0;i<as.length;i++){if(as[i]!==bs[i]){return false;}}return true;}// TODO Instead of creating a new diff object, it's possible to just test if
  // there *is* a diff. During the actual patch, do the diff again and make the
  // modifications directly. This way, there's no new allocations. Worth it?
  function diffFacts(a,b,category){var diff;// look for changes and removals
  for(var aKey in a){if(aKey===STYLE_KEY||aKey===EVENT_KEY||aKey===ATTR_KEY||aKey===ATTR_NS_KEY){var subDiff=diffFacts(a[aKey],b[aKey]||{},aKey);if(subDiff){diff=diff||{};diff[aKey]=subDiff;}continue;}// remove if not in the new facts
  if(!(aKey in b)){diff=diff||{};diff[aKey]=typeof category==='undefined'?typeof a[aKey]==='string'?'':null:category===STYLE_KEY?'':category===EVENT_KEY||category===ATTR_KEY?undefined:{namespace:a[aKey].namespace,value:undefined};continue;}var aValue=a[aKey];var bValue=b[aKey];// reference equal, so don't worry about it
  if(aValue===bValue&&aKey!=='value'||category===EVENT_KEY&&equalEvents(aValue,bValue)){continue;}diff=diff||{};diff[aKey]=bValue;}// add new stuff
  for(var bKey in b){if(!(bKey in a)){diff=diff||{};diff[bKey]=b[bKey];}}return diff;}function diffChildren(aParent,bParent,patches,rootIndex){var aChildren=aParent.children;var bChildren=bParent.children;var aLen=aChildren.length;var bLen=bChildren.length;// FIGURE OUT IF THERE ARE INSERTS OR REMOVALS
  if(aLen>bLen){patches.push(makePatch('p-remove-last',rootIndex,aLen-bLen));}else if(aLen<bLen){patches.push(makePatch('p-append',rootIndex,bChildren.slice(aLen)));}// PAIRWISE DIFF EVERYTHING ELSE
  var index=rootIndex;var minLen=aLen<bLen?aLen:bLen;for(var i=0;i<minLen;i++){index++;var aChild=aChildren[i];diffHelp(aChild,bChildren[i],patches,index);index+=aChild.descendantsCount||0;}}////////////  KEYED DIFF  ////////////
  function diffKeyedChildren(aParent,bParent,patches,rootIndex){var localPatches=[];var changes={};// Dict String Entry
  var inserts=[];// Array { index : Int, entry : Entry }
  // type Entry = { tag : String, vnode : VNode, index : Int, data : _ }
  var aChildren=aParent.children;var bChildren=bParent.children;var aLen=aChildren.length;var bLen=bChildren.length;var aIndex=0;var bIndex=0;var index=rootIndex;while(aIndex<aLen&&bIndex<bLen){var a=aChildren[aIndex];var b=bChildren[bIndex];var aKey=a._0;var bKey=b._0;var aNode=a._1;var bNode=b._1;// check if keys match
  if(aKey===bKey){index++;diffHelp(aNode,bNode,localPatches,index);index+=aNode.descendantsCount||0;aIndex++;bIndex++;continue;}// look ahead 1 to detect insertions and removals.
  var aLookAhead=aIndex+1<aLen;var bLookAhead=bIndex+1<bLen;if(aLookAhead){var aNext=aChildren[aIndex+1];var aNextKey=aNext._0;var aNextNode=aNext._1;var oldMatch=bKey===aNextKey;}if(bLookAhead){var bNext=bChildren[bIndex+1];var bNextKey=bNext._0;var bNextNode=bNext._1;var newMatch=aKey===bNextKey;}// swap a and b
  if(aLookAhead&&bLookAhead&&newMatch&&oldMatch){index++;diffHelp(aNode,bNextNode,localPatches,index);insertNode(changes,localPatches,aKey,bNode,bIndex,inserts);index+=aNode.descendantsCount||0;index++;removeNode(changes,localPatches,aKey,aNextNode,index);index+=aNextNode.descendantsCount||0;aIndex+=2;bIndex+=2;continue;}// insert b
  if(bLookAhead&&newMatch){index++;insertNode(changes,localPatches,bKey,bNode,bIndex,inserts);diffHelp(aNode,bNextNode,localPatches,index);index+=aNode.descendantsCount||0;aIndex+=1;bIndex+=2;continue;}// remove a
  if(aLookAhead&&oldMatch){index++;removeNode(changes,localPatches,aKey,aNode,index);index+=aNode.descendantsCount||0;index++;diffHelp(aNextNode,bNode,localPatches,index);index+=aNextNode.descendantsCount||0;aIndex+=2;bIndex+=1;continue;}// remove a, insert b
  if(aLookAhead&&bLookAhead&&aNextKey===bNextKey){index++;removeNode(changes,localPatches,aKey,aNode,index);insertNode(changes,localPatches,bKey,bNode,bIndex,inserts);index+=aNode.descendantsCount||0;index++;diffHelp(aNextNode,bNextNode,localPatches,index);index+=aNextNode.descendantsCount||0;aIndex+=2;bIndex+=2;continue;}break;}// eat up any remaining nodes with removeNode and insertNode
  while(aIndex<aLen){index++;var a=aChildren[aIndex];var aNode=a._1;removeNode(changes,localPatches,a._0,aNode,index);index+=aNode.descendantsCount||0;aIndex++;}var endInserts;while(bIndex<bLen){endInserts=endInserts||[];var b=bChildren[bIndex];insertNode(changes,localPatches,b._0,b._1,undefined,endInserts);bIndex++;}if(localPatches.length>0||inserts.length>0||typeof endInserts!=='undefined'){patches.push(makePatch('p-reorder',rootIndex,{patches:localPatches,inserts:inserts,endInserts:endInserts}));}}////////////  CHANGES FROM KEYED DIFF  ////////////
  var POSTFIX='_elmW6BL';function insertNode(changes,localPatches,key,vnode,bIndex,inserts){var entry=changes[key];// never seen this key before
  if(typeof entry==='undefined'){entry={tag:'insert',vnode:vnode,index:bIndex,data:undefined};inserts.push({index:bIndex,entry:entry});changes[key]=entry;return;}// this key was removed earlier, a match!
  if(entry.tag==='remove'){inserts.push({index:bIndex,entry:entry});entry.tag='move';var subPatches=[];diffHelp(entry.vnode,vnode,subPatches,entry.index);entry.index=bIndex;entry.data.data={patches:subPatches,entry:entry};return;}// this key has already been inserted or moved, a duplicate!
  insertNode(changes,localPatches,key+POSTFIX,vnode,bIndex,inserts);}function removeNode(changes,localPatches,key,vnode,index){var entry=changes[key];// never seen this key before
  if(typeof entry==='undefined'){var patch=makePatch('p-remove',index,undefined);localPatches.push(patch);changes[key]={tag:'remove',vnode:vnode,index:index,data:patch};return;}// this key was inserted earlier, a match!
  if(entry.tag==='insert'){entry.tag='move';var subPatches=[];diffHelp(vnode,entry.vnode,subPatches,index);var patch=makePatch('p-remove',index,{patches:subPatches,entry:entry});localPatches.push(patch);return;}// this key has already been removed or moved, a duplicate!
  removeNode(changes,localPatches,key+POSTFIX,vnode,index);}////////////  ADD DOM NODES  ////////////
  //
  // Each DOM node has an "index" assigned in order of traversal. It is important
  // to minimize our crawl over the actual DOM, so these indexes (along with the
  // descendantsCount of virtual nodes) let us skip touching entire subtrees of
  // the DOM if we know there are no patches there.
  function addDomNodes(domNode,vNode,patches,eventNode){addDomNodesHelp(domNode,vNode,patches,0,0,vNode.descendantsCount,eventNode);}// assumes `patches` is non-empty and indexes increase monotonically.
  function addDomNodesHelp(domNode,vNode,patches,i,low,high,eventNode){var patch=patches[i];var index=patch.index;while(index===low){var patchType=patch.type;if(patchType==='p-thunk'){addDomNodes(domNode,vNode.node,patch.data,eventNode);}else if(patchType==='p-reorder'){patch.domNode=domNode;patch.eventNode=eventNode;var subPatches=patch.data.patches;if(subPatches.length>0){addDomNodesHelp(domNode,vNode,subPatches,0,low,high,eventNode);}}else if(patchType==='p-remove'){patch.domNode=domNode;patch.eventNode=eventNode;var data=patch.data;if(typeof data!=='undefined'){data.entry.data=domNode;var subPatches=data.patches;if(subPatches.length>0){addDomNodesHelp(domNode,vNode,subPatches,0,low,high,eventNode);}}}else{patch.domNode=domNode;patch.eventNode=eventNode;}i++;if(!(patch=patches[i])||(index=patch.index)>high){return i;}}switch(vNode.type){case'tagger':var subNode=vNode.node;while(subNode.type==="tagger"){subNode=subNode.node;}return addDomNodesHelp(domNode,subNode,patches,i,low+1,high,domNode.elm_event_node_ref);case'node':var vChildren=vNode.children;var childNodes=domNode.childNodes;for(var j=0;j<vChildren.length;j++){low++;var vChild=vChildren[j];var nextLow=low+(vChild.descendantsCount||0);if(low<=index&&index<=nextLow){i=addDomNodesHelp(childNodes[j],vChild,patches,i,low,nextLow,eventNode);if(!(patch=patches[i])||(index=patch.index)>high){return i;}}low=nextLow;}return i;case'keyed-node':var vChildren=vNode.children;var childNodes=domNode.childNodes;for(var j=0;j<vChildren.length;j++){low++;var vChild=vChildren[j]._1;var nextLow=low+(vChild.descendantsCount||0);if(low<=index&&index<=nextLow){i=addDomNodesHelp(childNodes[j],vChild,patches,i,low,nextLow,eventNode);if(!(patch=patches[i])||(index=patch.index)>high){return i;}}low=nextLow;}return i;case'text':case'thunk':throw new Error('should never traverse `text` or `thunk` nodes like this');}}////////////  APPLY PATCHES  ////////////
  function applyPatches(rootDomNode,oldVirtualNode,patches,eventNode){if(patches.length===0){return rootDomNode;}addDomNodes(rootDomNode,oldVirtualNode,patches,eventNode);return applyPatchesHelp(rootDomNode,patches);}function applyPatchesHelp(rootDomNode,patches){for(var i=0;i<patches.length;i++){var patch=patches[i];var localDomNode=patch.domNode;var newNode=applyPatch(localDomNode,patch);if(localDomNode===rootDomNode){rootDomNode=newNode;}}return rootDomNode;}function applyPatch(domNode,patch){switch(patch.type){case'p-redraw':return applyPatchRedraw(domNode,patch.data,patch.eventNode);case'p-facts':applyFacts(domNode,patch.eventNode,patch.data);return domNode;case'p-text':domNode.replaceData(0,domNode.length,patch.data);return domNode;case'p-thunk':return applyPatchesHelp(domNode,patch.data);case'p-tagger':if(typeof domNode.elm_event_node_ref!=='undefined'){domNode.elm_event_node_ref.tagger=patch.data;}else{domNode.elm_event_node_ref={tagger:patch.data,parent:patch.eventNode};}return domNode;case'p-remove-last':var i=patch.data;while(i--){domNode.removeChild(domNode.lastChild);}return domNode;case'p-append':var newNodes=patch.data;for(var i=0;i<newNodes.length;i++){domNode.appendChild(render(newNodes[i],patch.eventNode));}return domNode;case'p-remove':var data=patch.data;if(typeof data==='undefined'){domNode.parentNode.removeChild(domNode);return domNode;}var entry=data.entry;if(typeof entry.index!=='undefined'){domNode.parentNode.removeChild(domNode);}entry.data=applyPatchesHelp(domNode,data.patches);return domNode;case'p-reorder':return applyPatchReorder(domNode,patch);case'p-custom':var impl=patch.data;return impl.applyPatch(domNode,impl.data);default:throw new Error('Ran into an unknown patch!');}}function applyPatchRedraw(domNode,vNode,eventNode){var parentNode=domNode.parentNode;var newNode=render(vNode,eventNode);if(typeof newNode.elm_event_node_ref==='undefined'){newNode.elm_event_node_ref=domNode.elm_event_node_ref;}if(parentNode&&newNode!==domNode){parentNode.replaceChild(newNode,domNode);}return newNode;}function applyPatchReorder(domNode,patch){var data=patch.data;// remove end inserts
  var frag=applyPatchReorderEndInsertsHelp(data.endInserts,patch);// removals
  domNode=applyPatchesHelp(domNode,data.patches);// inserts
  var inserts=data.inserts;for(var i=0;i<inserts.length;i++){var insert=inserts[i];var entry=insert.entry;var node=entry.tag==='move'?entry.data:render(entry.vnode,patch.eventNode);domNode.insertBefore(node,domNode.childNodes[insert.index]);}// add end inserts
  if(typeof frag!=='undefined'){domNode.appendChild(frag);}return domNode;}function applyPatchReorderEndInsertsHelp(endInserts,patch){if(typeof endInserts==='undefined'){return;}var frag=localDoc.createDocumentFragment();for(var i=0;i<endInserts.length;i++){var insert=endInserts[i];var entry=insert.entry;frag.appendChild(entry.tag==='move'?entry.data:render(entry.vnode,patch.eventNode));}return frag;}// PROGRAMS
  var program=makeProgram(checkNoFlags);var programWithFlags=makeProgram(checkYesFlags);function makeProgram(flagChecker){return F2(function(debugWrap,impl){return function(flagDecoder){return function(object,moduleName,debugMetadata){var checker=flagChecker(flagDecoder,moduleName);if(typeof debugMetadata==='undefined'){normalSetup(impl,object,moduleName,checker);}else{debugSetup(A2(debugWrap,debugMetadata,impl),object,moduleName,checker);}};};});}function staticProgram(vNode){var nothing=_elm_lang$core$Native_Utils.Tuple2(_elm_lang$core$Native_Utils.Tuple0,_elm_lang$core$Platform_Cmd$none);return A2(program,_elm_lang$virtual_dom$VirtualDom_Debug$wrap,{init:nothing,view:function view(){return vNode;},update:F2(function(){return nothing;}),subscriptions:function subscriptions(){return _elm_lang$core$Platform_Sub$none;}})();}// FLAG CHECKERS
  function checkNoFlags(flagDecoder,moduleName){return function(init,flags,domNode){if(typeof flags==='undefined'){return init;}var errorMessage='The `'+moduleName+'` module does not need flags.\n'+'Initialize it with no arguments and you should be all set!';crash(errorMessage,domNode);};}function checkYesFlags(flagDecoder,moduleName){return function(init,flags,domNode){if(typeof flagDecoder==='undefined'){var errorMessage='Are you trying to sneak a Never value into Elm? Trickster!\n'+'It looks like '+moduleName+'.main is defined with `programWithFlags` but has type `Program Never`.\n'+'Use `program` instead if you do not want flags.';crash(errorMessage,domNode);}var result=A2(_elm_lang$core$Native_Json.run,flagDecoder,flags);if(result.ctor==='Ok'){return init(result._0);}var errorMessage='Trying to initialize the `'+moduleName+'` module with an unexpected flag.\n'+'I tried to convert it to an Elm value, but ran into this problem:\n\n'+result._0;crash(errorMessage,domNode);};}function crash(errorMessage,domNode){if(domNode){domNode.innerHTML='<div style="padding-left:1em;">'+'<h2 style="font-weight:normal;"><b>Oops!</b> Something went wrong when starting your Elm program.</h2>'+'<pre style="padding-left:1em;">'+errorMessage+'</pre>'+'</div>';}throw new Error(errorMessage);}//  NORMAL SETUP
  function normalSetup(impl,object,moduleName,flagChecker){object['embed']=function embed(node,flags){while(node.lastChild){node.removeChild(node.lastChild);}return _elm_lang$core$Native_Platform.initialize(flagChecker(impl.init,flags,node),impl.update,impl.subscriptions,normalRenderer(node,impl.view));};object['fullscreen']=function fullscreen(flags){return _elm_lang$core$Native_Platform.initialize(flagChecker(impl.init,flags,document.body),impl.update,impl.subscriptions,normalRenderer(document.body,impl.view));};}function normalRenderer(parentNode,view){return function(tagger,initialModel){var eventNode={tagger:tagger,parent:undefined};var initialVirtualNode=view(initialModel);var domNode=render(initialVirtualNode,eventNode);parentNode.appendChild(domNode);return makeStepper(domNode,view,initialVirtualNode,eventNode);};}// STEPPER
  var rAF=typeof requestAnimationFrame!=='undefined'?requestAnimationFrame:function(callback){callback();};function makeStepper(domNode,view,initialVirtualNode,eventNode){var state='NO_REQUEST';var currNode=initialVirtualNode;var nextModel;function updateIfNeeded(){switch(state){case'NO_REQUEST':throw new Error('Unexpected draw callback.\n'+'Please report this to <https://github.com/elm-lang/virtual-dom/issues>.');case'PENDING_REQUEST':rAF(updateIfNeeded);state='EXTRA_REQUEST';var nextNode=view(nextModel);var patches=diff(currNode,nextNode);domNode=applyPatches(domNode,currNode,patches,eventNode);currNode=nextNode;return;case'EXTRA_REQUEST':state='NO_REQUEST';return;}}return function stepper(model){if(state==='NO_REQUEST'){rAF(updateIfNeeded);}state='PENDING_REQUEST';nextModel=model;};}// DEBUG SETUP
  function debugSetup(impl,object,moduleName,flagChecker){object['fullscreen']=function fullscreen(flags){var popoutRef={doc:undefined};return _elm_lang$core$Native_Platform.initialize(flagChecker(impl.init,flags,document.body),impl.update(scrollTask(popoutRef)),impl.subscriptions,debugRenderer(moduleName,document.body,popoutRef,impl.view,impl.viewIn,impl.viewOut));};object['embed']=function fullscreen(node,flags){var popoutRef={doc:undefined};return _elm_lang$core$Native_Platform.initialize(flagChecker(impl.init,flags,node),impl.update(scrollTask(popoutRef)),impl.subscriptions,debugRenderer(moduleName,node,popoutRef,impl.view,impl.viewIn,impl.viewOut));};}function scrollTask(popoutRef){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){var doc=popoutRef.doc;if(doc){var msgs=doc.getElementsByClassName('debugger-sidebar-messages')[0];if(msgs){msgs.scrollTop=msgs.scrollHeight;}}callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0));});}function debugRenderer(moduleName,parentNode,popoutRef,view,viewIn,viewOut){return function(tagger,initialModel){var appEventNode={tagger:tagger,parent:undefined};var eventNode={tagger:tagger,parent:undefined};// make normal stepper
  var appVirtualNode=view(initialModel);var appNode=render(appVirtualNode,appEventNode);parentNode.appendChild(appNode);var appStepper=makeStepper(appNode,view,appVirtualNode,appEventNode);// make overlay stepper
  var overVirtualNode=viewIn(initialModel)._1;var overNode=render(overVirtualNode,eventNode);parentNode.appendChild(overNode);var wrappedViewIn=wrapViewIn(appEventNode,overNode,viewIn);var overStepper=makeStepper(overNode,wrappedViewIn,overVirtualNode,eventNode);// make debugger stepper
  var debugStepper=makeDebugStepper(initialModel,viewOut,eventNode,parentNode,moduleName,popoutRef);return function stepper(model){appStepper(model);overStepper(model);debugStepper(model);};};}function makeDebugStepper(initialModel,view,eventNode,parentNode,moduleName,popoutRef){var curr;var domNode;return function stepper(model){if(!model.isDebuggerOpen){return;}if(!popoutRef.doc){curr=view(model);domNode=openDebugWindow(moduleName,popoutRef,curr,eventNode);return;}// switch to document of popout
  localDoc=popoutRef.doc;var next=view(model);var patches=diff(curr,next);domNode=applyPatches(domNode,curr,patches,eventNode);curr=next;// switch back to normal document
  localDoc=document;};}function openDebugWindow(moduleName,popoutRef,virtualNode,eventNode){var w=900;var h=360;var x=screen.width-w;var y=screen.height-h;var debugWindow=window.open('','','width='+w+',height='+h+',left='+x+',top='+y);// switch to window document
  localDoc=debugWindow.document;popoutRef.doc=localDoc;localDoc.title='Debugger - '+moduleName;localDoc.body.style.margin='0';localDoc.body.style.padding='0';var domNode=render(virtualNode,eventNode);localDoc.body.appendChild(domNode);localDoc.addEventListener('keydown',function(event){if(event.metaKey&&event.which===82){window.location.reload();}if(event.which===38){eventNode.tagger({ctor:'Up'});event.preventDefault();}if(event.which===40){eventNode.tagger({ctor:'Down'});event.preventDefault();}});function close(){popoutRef.doc=undefined;debugWindow.close();}window.addEventListener('unload',close);debugWindow.addEventListener('unload',function(){popoutRef.doc=undefined;window.removeEventListener('unload',close);eventNode.tagger({ctor:'Close'});});// switch back to the normal document
  localDoc=document;return domNode;}// BLOCK EVENTS
  function wrapViewIn(appEventNode,overlayNode,viewIn){var ignorer=makeIgnorer(overlayNode);var blocking='Normal';var overflow;var normalTagger=appEventNode.tagger;var blockTagger=function blockTagger(){};return function(model){var tuple=viewIn(model);var newBlocking=tuple._0.ctor;appEventNode.tagger=newBlocking==='Normal'?normalTagger:blockTagger;if(blocking!==newBlocking){traverse('removeEventListener',ignorer,blocking);traverse('addEventListener',ignorer,newBlocking);if(blocking==='Normal'){overflow=document.body.style.overflow;document.body.style.overflow='hidden';}if(newBlocking==='Normal'){document.body.style.overflow=overflow;}blocking=newBlocking;}return tuple._1;};}function traverse(verbEventListener,ignorer,blocking){switch(blocking){case'Normal':return;case'Pause':return traverseHelp(verbEventListener,ignorer,mostEvents);case'Message':return traverseHelp(verbEventListener,ignorer,allEvents);}}function traverseHelp(verbEventListener,handler,eventNames){for(var i=0;i<eventNames.length;i++){document.body[verbEventListener](eventNames[i],handler,true);}}function makeIgnorer(overlayNode){return function(event){if(event.type==='keydown'&&event.metaKey&&event.which===82){return;}var isScroll=event.type==='scroll'||event.type==='wheel';var node=event.target;while(node!==null){if(node.className==='elm-overlay-message-details'&&isScroll){return;}if(node===overlayNode&&!isScroll){return;}node=node.parentNode;}event.stopPropagation();event.preventDefault();};}var mostEvents=['click','dblclick','mousemove','mouseup','mousedown','mouseenter','mouseleave','touchstart','touchend','touchcancel','touchmove','pointerdown','pointerup','pointerover','pointerout','pointerenter','pointerleave','pointermove','pointercancel','dragstart','drag','dragend','dragenter','dragover','dragleave','drop','keyup','keydown','keypress','input','change','focus','blur'];var allEvents=mostEvents.concat('wheel','scroll');return{node:node,text:text,custom:custom,map:F2(map),on:F3(on),style:style,property:F2(property),attribute:F2(attribute),attributeNS:F3(attributeNS),mapProperty:F2(mapProperty),lazy:F2(lazy),lazy2:F3(lazy2),lazy3:F4(lazy3),keyedNode:F3(keyedNode),program:program,programWithFlags:programWithFlags,staticProgram:staticProgram};}();var _elm_lang$virtual_dom$VirtualDom$programWithFlags=function _elm_lang$virtual_dom$VirtualDom$programWithFlags(impl){return A2(_elm_lang$virtual_dom$Native_VirtualDom.programWithFlags,_elm_lang$virtual_dom$VirtualDom_Debug$wrapWithFlags,impl);};var _elm_lang$virtual_dom$VirtualDom$program=function _elm_lang$virtual_dom$VirtualDom$program(impl){return A2(_elm_lang$virtual_dom$Native_VirtualDom.program,_elm_lang$virtual_dom$VirtualDom_Debug$wrap,impl);};var _elm_lang$virtual_dom$VirtualDom$keyedNode=_elm_lang$virtual_dom$Native_VirtualDom.keyedNode;var _elm_lang$virtual_dom$VirtualDom$lazy3=_elm_lang$virtual_dom$Native_VirtualDom.lazy3;var _elm_lang$virtual_dom$VirtualDom$lazy2=_elm_lang$virtual_dom$Native_VirtualDom.lazy2;var _elm_lang$virtual_dom$VirtualDom$lazy=_elm_lang$virtual_dom$Native_VirtualDom.lazy;var _elm_lang$virtual_dom$VirtualDom$defaultOptions={stopPropagation:false,preventDefault:false};var _elm_lang$virtual_dom$VirtualDom$onWithOptions=_elm_lang$virtual_dom$Native_VirtualDom.on;var _elm_lang$virtual_dom$VirtualDom$on=F2(function(eventName,decoder){return A3(_elm_lang$virtual_dom$VirtualDom$onWithOptions,eventName,_elm_lang$virtual_dom$VirtualDom$defaultOptions,decoder);});var _elm_lang$virtual_dom$VirtualDom$style=_elm_lang$virtual_dom$Native_VirtualDom.style;var _elm_lang$virtual_dom$VirtualDom$mapProperty=_elm_lang$virtual_dom$Native_VirtualDom.mapProperty;var _elm_lang$virtual_dom$VirtualDom$attributeNS=_elm_lang$virtual_dom$Native_VirtualDom.attributeNS;var _elm_lang$virtual_dom$VirtualDom$attribute=_elm_lang$virtual_dom$Native_VirtualDom.attribute;var _elm_lang$virtual_dom$VirtualDom$property=_elm_lang$virtual_dom$Native_VirtualDom.property;var _elm_lang$virtual_dom$VirtualDom$map=_elm_lang$virtual_dom$Native_VirtualDom.map;var _elm_lang$virtual_dom$VirtualDom$text=_elm_lang$virtual_dom$Native_VirtualDom.text;var _elm_lang$virtual_dom$VirtualDom$node=_elm_lang$virtual_dom$Native_VirtualDom.node;var _elm_lang$virtual_dom$VirtualDom$Options=F2(function(a,b){return{stopPropagation:a,preventDefault:b};});var _elm_lang$virtual_dom$VirtualDom$Node={ctor:'Node'};var _elm_lang$virtual_dom$VirtualDom$Property={ctor:'Property'};var _elm_lang$html$Html$programWithFlags=_elm_lang$virtual_dom$VirtualDom$programWithFlags;var _elm_lang$html$Html$program=_elm_lang$virtual_dom$VirtualDom$program;var _elm_lang$html$Html$beginnerProgram=function _elm_lang$html$Html$beginnerProgram(_p0){var _p1=_p0;return _elm_lang$html$Html$program({init:A2(_elm_lang$core$Platform_Cmd_ops['!'],_p1.model,{ctor:'[]'}),update:F2(function(msg,model){return A2(_elm_lang$core$Platform_Cmd_ops['!'],A2(_p1.update,msg,model),{ctor:'[]'});}),view:_p1.view,subscriptions:function subscriptions(_p2){return _elm_lang$core$Platform_Sub$none;}});};var _elm_lang$html$Html$map=_elm_lang$virtual_dom$VirtualDom$map;var _elm_lang$html$Html$text=_elm_lang$virtual_dom$VirtualDom$text;var _elm_lang$html$Html$node=_elm_lang$virtual_dom$VirtualDom$node;var _elm_lang$html$Html$body=_elm_lang$html$Html$node('body');var _elm_lang$html$Html$section=_elm_lang$html$Html$node('section');var _elm_lang$html$Html$nav=_elm_lang$html$Html$node('nav');var _elm_lang$html$Html$article=_elm_lang$html$Html$node('article');var _elm_lang$html$Html$aside=_elm_lang$html$Html$node('aside');var _elm_lang$html$Html$h1=_elm_lang$html$Html$node('h1');var _elm_lang$html$Html$h2=_elm_lang$html$Html$node('h2');var _elm_lang$html$Html$h3=_elm_lang$html$Html$node('h3');var _elm_lang$html$Html$h4=_elm_lang$html$Html$node('h4');var _elm_lang$html$Html$h5=_elm_lang$html$Html$node('h5');var _elm_lang$html$Html$h6=_elm_lang$html$Html$node('h6');var _elm_lang$html$Html$header=_elm_lang$html$Html$node('header');var _elm_lang$html$Html$footer=_elm_lang$html$Html$node('footer');var _elm_lang$html$Html$address=_elm_lang$html$Html$node('address');var _elm_lang$html$Html$main_=_elm_lang$html$Html$node('main');var _elm_lang$html$Html$p=_elm_lang$html$Html$node('p');var _elm_lang$html$Html$hr=_elm_lang$html$Html$node('hr');var _elm_lang$html$Html$pre=_elm_lang$html$Html$node('pre');var _elm_lang$html$Html$blockquote=_elm_lang$html$Html$node('blockquote');var _elm_lang$html$Html$ol=_elm_lang$html$Html$node('ol');var _elm_lang$html$Html$ul=_elm_lang$html$Html$node('ul');var _elm_lang$html$Html$li=_elm_lang$html$Html$node('li');var _elm_lang$html$Html$dl=_elm_lang$html$Html$node('dl');var _elm_lang$html$Html$dt=_elm_lang$html$Html$node('dt');var _elm_lang$html$Html$dd=_elm_lang$html$Html$node('dd');var _elm_lang$html$Html$figure=_elm_lang$html$Html$node('figure');var _elm_lang$html$Html$figcaption=_elm_lang$html$Html$node('figcaption');var _elm_lang$html$Html$div=_elm_lang$html$Html$node('div');var _elm_lang$html$Html$a=_elm_lang$html$Html$node('a');var _elm_lang$html$Html$em=_elm_lang$html$Html$node('em');var _elm_lang$html$Html$strong=_elm_lang$html$Html$node('strong');var _elm_lang$html$Html$small=_elm_lang$html$Html$node('small');var _elm_lang$html$Html$s=_elm_lang$html$Html$node('s');var _elm_lang$html$Html$cite=_elm_lang$html$Html$node('cite');var _elm_lang$html$Html$q=_elm_lang$html$Html$node('q');var _elm_lang$html$Html$dfn=_elm_lang$html$Html$node('dfn');var _elm_lang$html$Html$abbr=_elm_lang$html$Html$node('abbr');var _elm_lang$html$Html$time=_elm_lang$html$Html$node('time');var _elm_lang$html$Html$code=_elm_lang$html$Html$node('code');var _elm_lang$html$Html$var=_elm_lang$html$Html$node('var');var _elm_lang$html$Html$samp=_elm_lang$html$Html$node('samp');var _elm_lang$html$Html$kbd=_elm_lang$html$Html$node('kbd');var _elm_lang$html$Html$sub=_elm_lang$html$Html$node('sub');var _elm_lang$html$Html$sup=_elm_lang$html$Html$node('sup');var _elm_lang$html$Html$i=_elm_lang$html$Html$node('i');var _elm_lang$html$Html$b=_elm_lang$html$Html$node('b');var _elm_lang$html$Html$u=_elm_lang$html$Html$node('u');var _elm_lang$html$Html$mark=_elm_lang$html$Html$node('mark');var _elm_lang$html$Html$ruby=_elm_lang$html$Html$node('ruby');var _elm_lang$html$Html$rt=_elm_lang$html$Html$node('rt');var _elm_lang$html$Html$rp=_elm_lang$html$Html$node('rp');var _elm_lang$html$Html$bdi=_elm_lang$html$Html$node('bdi');var _elm_lang$html$Html$bdo=_elm_lang$html$Html$node('bdo');var _elm_lang$html$Html$span=_elm_lang$html$Html$node('span');var _elm_lang$html$Html$br=_elm_lang$html$Html$node('br');var _elm_lang$html$Html$wbr=_elm_lang$html$Html$node('wbr');var _elm_lang$html$Html$ins=_elm_lang$html$Html$node('ins');var _elm_lang$html$Html$del=_elm_lang$html$Html$node('del');var _elm_lang$html$Html$img=_elm_lang$html$Html$node('img');var _elm_lang$html$Html$iframe=_elm_lang$html$Html$node('iframe');var _elm_lang$html$Html$embed=_elm_lang$html$Html$node('embed');var _elm_lang$html$Html$object=_elm_lang$html$Html$node('object');var _elm_lang$html$Html$param=_elm_lang$html$Html$node('param');var _elm_lang$html$Html$video=_elm_lang$html$Html$node('video');var _elm_lang$html$Html$audio=_elm_lang$html$Html$node('audio');var _elm_lang$html$Html$source=_elm_lang$html$Html$node('source');var _elm_lang$html$Html$track=_elm_lang$html$Html$node('track');var _elm_lang$html$Html$canvas=_elm_lang$html$Html$node('canvas');var _elm_lang$html$Html$math=_elm_lang$html$Html$node('math');var _elm_lang$html$Html$table=_elm_lang$html$Html$node('table');var _elm_lang$html$Html$caption=_elm_lang$html$Html$node('caption');var _elm_lang$html$Html$colgroup=_elm_lang$html$Html$node('colgroup');var _elm_lang$html$Html$col=_elm_lang$html$Html$node('col');var _elm_lang$html$Html$tbody=_elm_lang$html$Html$node('tbody');var _elm_lang$html$Html$thead=_elm_lang$html$Html$node('thead');var _elm_lang$html$Html$tfoot=_elm_lang$html$Html$node('tfoot');var _elm_lang$html$Html$tr=_elm_lang$html$Html$node('tr');var _elm_lang$html$Html$td=_elm_lang$html$Html$node('td');var _elm_lang$html$Html$th=_elm_lang$html$Html$node('th');var _elm_lang$html$Html$form=_elm_lang$html$Html$node('form');var _elm_lang$html$Html$fieldset=_elm_lang$html$Html$node('fieldset');var _elm_lang$html$Html$legend=_elm_lang$html$Html$node('legend');var _elm_lang$html$Html$label=_elm_lang$html$Html$node('label');var _elm_lang$html$Html$input=_elm_lang$html$Html$node('input');var _elm_lang$html$Html$button=_elm_lang$html$Html$node('button');var _elm_lang$html$Html$select=_elm_lang$html$Html$node('select');var _elm_lang$html$Html$datalist=_elm_lang$html$Html$node('datalist');var _elm_lang$html$Html$optgroup=_elm_lang$html$Html$node('optgroup');var _elm_lang$html$Html$option=_elm_lang$html$Html$node('option');var _elm_lang$html$Html$textarea=_elm_lang$html$Html$node('textarea');var _elm_lang$html$Html$keygen=_elm_lang$html$Html$node('keygen');var _elm_lang$html$Html$output=_elm_lang$html$Html$node('output');var _elm_lang$html$Html$progress=_elm_lang$html$Html$node('progress');var _elm_lang$html$Html$meter=_elm_lang$html$Html$node('meter');var _elm_lang$html$Html$details=_elm_lang$html$Html$node('details');var _elm_lang$html$Html$summary=_elm_lang$html$Html$node('summary');var _elm_lang$html$Html$menuitem=_elm_lang$html$Html$node('menuitem');var _elm_lang$html$Html$menu=_elm_lang$html$Html$node('menu');var _elm_lang$html$Html_Attributes$map=_elm_lang$virtual_dom$VirtualDom$mapProperty;var _elm_lang$html$Html_Attributes$attribute=_elm_lang$virtual_dom$VirtualDom$attribute;var _elm_lang$html$Html_Attributes$contextmenu=function _elm_lang$html$Html_Attributes$contextmenu(value){return A2(_elm_lang$html$Html_Attributes$attribute,'contextmenu',value);};var _elm_lang$html$Html_Attributes$draggable=function _elm_lang$html$Html_Attributes$draggable(value){return A2(_elm_lang$html$Html_Attributes$attribute,'draggable',value);};var _elm_lang$html$Html_Attributes$itemprop=function _elm_lang$html$Html_Attributes$itemprop(value){return A2(_elm_lang$html$Html_Attributes$attribute,'itemprop',value);};var _elm_lang$html$Html_Attributes$tabindex=function _elm_lang$html$Html_Attributes$tabindex(n){return A2(_elm_lang$html$Html_Attributes$attribute,'tabIndex',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$charset=function _elm_lang$html$Html_Attributes$charset(value){return A2(_elm_lang$html$Html_Attributes$attribute,'charset',value);};var _elm_lang$html$Html_Attributes$height=function _elm_lang$html$Html_Attributes$height(value){return A2(_elm_lang$html$Html_Attributes$attribute,'height',_elm_lang$core$Basics$toString(value));};var _elm_lang$html$Html_Attributes$width=function _elm_lang$html$Html_Attributes$width(value){return A2(_elm_lang$html$Html_Attributes$attribute,'width',_elm_lang$core$Basics$toString(value));};var _elm_lang$html$Html_Attributes$formaction=function _elm_lang$html$Html_Attributes$formaction(value){return A2(_elm_lang$html$Html_Attributes$attribute,'formAction',value);};var _elm_lang$html$Html_Attributes$list=function _elm_lang$html$Html_Attributes$list(value){return A2(_elm_lang$html$Html_Attributes$attribute,'list',value);};var _elm_lang$html$Html_Attributes$minlength=function _elm_lang$html$Html_Attributes$minlength(n){return A2(_elm_lang$html$Html_Attributes$attribute,'minLength',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$maxlength=function _elm_lang$html$Html_Attributes$maxlength(n){return A2(_elm_lang$html$Html_Attributes$attribute,'maxlength',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$size=function _elm_lang$html$Html_Attributes$size(n){return A2(_elm_lang$html$Html_Attributes$attribute,'size',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$form=function _elm_lang$html$Html_Attributes$form(value){return A2(_elm_lang$html$Html_Attributes$attribute,'form',value);};var _elm_lang$html$Html_Attributes$cols=function _elm_lang$html$Html_Attributes$cols(n){return A2(_elm_lang$html$Html_Attributes$attribute,'cols',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$rows=function _elm_lang$html$Html_Attributes$rows(n){return A2(_elm_lang$html$Html_Attributes$attribute,'rows',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$challenge=function _elm_lang$html$Html_Attributes$challenge(value){return A2(_elm_lang$html$Html_Attributes$attribute,'challenge',value);};var _elm_lang$html$Html_Attributes$media=function _elm_lang$html$Html_Attributes$media(value){return A2(_elm_lang$html$Html_Attributes$attribute,'media',value);};var _elm_lang$html$Html_Attributes$rel=function _elm_lang$html$Html_Attributes$rel(value){return A2(_elm_lang$html$Html_Attributes$attribute,'rel',value);};var _elm_lang$html$Html_Attributes$datetime=function _elm_lang$html$Html_Attributes$datetime(value){return A2(_elm_lang$html$Html_Attributes$attribute,'datetime',value);};var _elm_lang$html$Html_Attributes$pubdate=function _elm_lang$html$Html_Attributes$pubdate(value){return A2(_elm_lang$html$Html_Attributes$attribute,'pubdate',value);};var _elm_lang$html$Html_Attributes$colspan=function _elm_lang$html$Html_Attributes$colspan(n){return A2(_elm_lang$html$Html_Attributes$attribute,'colspan',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$rowspan=function _elm_lang$html$Html_Attributes$rowspan(n){return A2(_elm_lang$html$Html_Attributes$attribute,'rowspan',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$manifest=function _elm_lang$html$Html_Attributes$manifest(value){return A2(_elm_lang$html$Html_Attributes$attribute,'manifest',value);};var _elm_lang$html$Html_Attributes$property=_elm_lang$virtual_dom$VirtualDom$property;var _elm_lang$html$Html_Attributes$stringProperty=F2(function(name,string){return A2(_elm_lang$html$Html_Attributes$property,name,_elm_lang$core$Json_Encode$string(string));});var _elm_lang$html$Html_Attributes$class=function _elm_lang$html$Html_Attributes$class(name){return A2(_elm_lang$html$Html_Attributes$stringProperty,'className',name);};var _elm_lang$html$Html_Attributes$id=function _elm_lang$html$Html_Attributes$id(name){return A2(_elm_lang$html$Html_Attributes$stringProperty,'id',name);};var _elm_lang$html$Html_Attributes$title=function _elm_lang$html$Html_Attributes$title(name){return A2(_elm_lang$html$Html_Attributes$stringProperty,'title',name);};var _elm_lang$html$Html_Attributes$accesskey=function _elm_lang$html$Html_Attributes$accesskey($char){return A2(_elm_lang$html$Html_Attributes$stringProperty,'accessKey',_elm_lang$core$String$fromChar($char));};var _elm_lang$html$Html_Attributes$dir=function _elm_lang$html$Html_Attributes$dir(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'dir',value);};var _elm_lang$html$Html_Attributes$dropzone=function _elm_lang$html$Html_Attributes$dropzone(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'dropzone',value);};var _elm_lang$html$Html_Attributes$lang=function _elm_lang$html$Html_Attributes$lang(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'lang',value);};var _elm_lang$html$Html_Attributes$content=function _elm_lang$html$Html_Attributes$content(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'content',value);};var _elm_lang$html$Html_Attributes$httpEquiv=function _elm_lang$html$Html_Attributes$httpEquiv(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'httpEquiv',value);};var _elm_lang$html$Html_Attributes$language=function _elm_lang$html$Html_Attributes$language(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'language',value);};var _elm_lang$html$Html_Attributes$src=function _elm_lang$html$Html_Attributes$src(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'src',value);};var _elm_lang$html$Html_Attributes$alt=function _elm_lang$html$Html_Attributes$alt(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'alt',value);};var _elm_lang$html$Html_Attributes$preload=function _elm_lang$html$Html_Attributes$preload(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'preload',value);};var _elm_lang$html$Html_Attributes$poster=function _elm_lang$html$Html_Attributes$poster(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'poster',value);};var _elm_lang$html$Html_Attributes$kind=function _elm_lang$html$Html_Attributes$kind(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'kind',value);};var _elm_lang$html$Html_Attributes$srclang=function _elm_lang$html$Html_Attributes$srclang(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'srclang',value);};var _elm_lang$html$Html_Attributes$sandbox=function _elm_lang$html$Html_Attributes$sandbox(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'sandbox',value);};var _elm_lang$html$Html_Attributes$srcdoc=function _elm_lang$html$Html_Attributes$srcdoc(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'srcdoc',value);};var _elm_lang$html$Html_Attributes$type_=function _elm_lang$html$Html_Attributes$type_(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'type',value);};var _elm_lang$html$Html_Attributes$value=function _elm_lang$html$Html_Attributes$value(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'value',value);};var _elm_lang$html$Html_Attributes$defaultValue=function _elm_lang$html$Html_Attributes$defaultValue(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'defaultValue',value);};var _elm_lang$html$Html_Attributes$placeholder=function _elm_lang$html$Html_Attributes$placeholder(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'placeholder',value);};var _elm_lang$html$Html_Attributes$accept=function _elm_lang$html$Html_Attributes$accept(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'accept',value);};var _elm_lang$html$Html_Attributes$acceptCharset=function _elm_lang$html$Html_Attributes$acceptCharset(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'acceptCharset',value);};var _elm_lang$html$Html_Attributes$action=function _elm_lang$html$Html_Attributes$action(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'action',value);};var _elm_lang$html$Html_Attributes$autocomplete=function _elm_lang$html$Html_Attributes$autocomplete(bool){return A2(_elm_lang$html$Html_Attributes$stringProperty,'autocomplete',bool?'on':'off');};var _elm_lang$html$Html_Attributes$enctype=function _elm_lang$html$Html_Attributes$enctype(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'enctype',value);};var _elm_lang$html$Html_Attributes$method=function _elm_lang$html$Html_Attributes$method(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'method',value);};var _elm_lang$html$Html_Attributes$name=function _elm_lang$html$Html_Attributes$name(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'name',value);};var _elm_lang$html$Html_Attributes$pattern=function _elm_lang$html$Html_Attributes$pattern(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'pattern',value);};var _elm_lang$html$Html_Attributes$for=function _elm_lang$html$Html_Attributes$for(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'htmlFor',value);};var _elm_lang$html$Html_Attributes$max=function _elm_lang$html$Html_Attributes$max(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'max',value);};var _elm_lang$html$Html_Attributes$min=function _elm_lang$html$Html_Attributes$min(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'min',value);};var _elm_lang$html$Html_Attributes$step=function _elm_lang$html$Html_Attributes$step(n){return A2(_elm_lang$html$Html_Attributes$stringProperty,'step',n);};var _elm_lang$html$Html_Attributes$wrap=function _elm_lang$html$Html_Attributes$wrap(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'wrap',value);};var _elm_lang$html$Html_Attributes$usemap=function _elm_lang$html$Html_Attributes$usemap(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'useMap',value);};var _elm_lang$html$Html_Attributes$shape=function _elm_lang$html$Html_Attributes$shape(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'shape',value);};var _elm_lang$html$Html_Attributes$coords=function _elm_lang$html$Html_Attributes$coords(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'coords',value);};var _elm_lang$html$Html_Attributes$keytype=function _elm_lang$html$Html_Attributes$keytype(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'keytype',value);};var _elm_lang$html$Html_Attributes$align=function _elm_lang$html$Html_Attributes$align(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'align',value);};var _elm_lang$html$Html_Attributes$cite=function _elm_lang$html$Html_Attributes$cite(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'cite',value);};var _elm_lang$html$Html_Attributes$href=function _elm_lang$html$Html_Attributes$href(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'href',value);};var _elm_lang$html$Html_Attributes$target=function _elm_lang$html$Html_Attributes$target(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'target',value);};var _elm_lang$html$Html_Attributes$downloadAs=function _elm_lang$html$Html_Attributes$downloadAs(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'download',value);};var _elm_lang$html$Html_Attributes$hreflang=function _elm_lang$html$Html_Attributes$hreflang(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'hreflang',value);};var _elm_lang$html$Html_Attributes$ping=function _elm_lang$html$Html_Attributes$ping(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'ping',value);};var _elm_lang$html$Html_Attributes$start=function _elm_lang$html$Html_Attributes$start(n){return A2(_elm_lang$html$Html_Attributes$stringProperty,'start',_elm_lang$core$Basics$toString(n));};var _elm_lang$html$Html_Attributes$headers=function _elm_lang$html$Html_Attributes$headers(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'headers',value);};var _elm_lang$html$Html_Attributes$scope=function _elm_lang$html$Html_Attributes$scope(value){return A2(_elm_lang$html$Html_Attributes$stringProperty,'scope',value);};var _elm_lang$html$Html_Attributes$boolProperty=F2(function(name,bool){return A2(_elm_lang$html$Html_Attributes$property,name,_elm_lang$core$Json_Encode$bool(bool));});var _elm_lang$html$Html_Attributes$hidden=function _elm_lang$html$Html_Attributes$hidden(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'hidden',bool);};var _elm_lang$html$Html_Attributes$contenteditable=function _elm_lang$html$Html_Attributes$contenteditable(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'contentEditable',bool);};var _elm_lang$html$Html_Attributes$spellcheck=function _elm_lang$html$Html_Attributes$spellcheck(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'spellcheck',bool);};var _elm_lang$html$Html_Attributes$async=function _elm_lang$html$Html_Attributes$async(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'async',bool);};var _elm_lang$html$Html_Attributes$defer=function _elm_lang$html$Html_Attributes$defer(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'defer',bool);};var _elm_lang$html$Html_Attributes$scoped=function _elm_lang$html$Html_Attributes$scoped(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'scoped',bool);};var _elm_lang$html$Html_Attributes$autoplay=function _elm_lang$html$Html_Attributes$autoplay(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'autoplay',bool);};var _elm_lang$html$Html_Attributes$controls=function _elm_lang$html$Html_Attributes$controls(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'controls',bool);};var _elm_lang$html$Html_Attributes$loop=function _elm_lang$html$Html_Attributes$loop(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'loop',bool);};var _elm_lang$html$Html_Attributes$default=function _elm_lang$html$Html_Attributes$default(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'default',bool);};var _elm_lang$html$Html_Attributes$seamless=function _elm_lang$html$Html_Attributes$seamless(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'seamless',bool);};var _elm_lang$html$Html_Attributes$checked=function _elm_lang$html$Html_Attributes$checked(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'checked',bool);};var _elm_lang$html$Html_Attributes$selected=function _elm_lang$html$Html_Attributes$selected(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'selected',bool);};var _elm_lang$html$Html_Attributes$autofocus=function _elm_lang$html$Html_Attributes$autofocus(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'autofocus',bool);};var _elm_lang$html$Html_Attributes$disabled=function _elm_lang$html$Html_Attributes$disabled(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'disabled',bool);};var _elm_lang$html$Html_Attributes$multiple=function _elm_lang$html$Html_Attributes$multiple(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'multiple',bool);};var _elm_lang$html$Html_Attributes$novalidate=function _elm_lang$html$Html_Attributes$novalidate(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'noValidate',bool);};var _elm_lang$html$Html_Attributes$readonly=function _elm_lang$html$Html_Attributes$readonly(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'readOnly',bool);};var _elm_lang$html$Html_Attributes$required=function _elm_lang$html$Html_Attributes$required(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'required',bool);};var _elm_lang$html$Html_Attributes$ismap=function _elm_lang$html$Html_Attributes$ismap(value){return A2(_elm_lang$html$Html_Attributes$boolProperty,'isMap',value);};var _elm_lang$html$Html_Attributes$download=function _elm_lang$html$Html_Attributes$download(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'download',bool);};var _elm_lang$html$Html_Attributes$reversed=function _elm_lang$html$Html_Attributes$reversed(bool){return A2(_elm_lang$html$Html_Attributes$boolProperty,'reversed',bool);};var _elm_lang$html$Html_Attributes$classList=function _elm_lang$html$Html_Attributes$classList(list){return _elm_lang$html$Html_Attributes$class(A2(_elm_lang$core$String$join,' ',A2(_elm_lang$core$List$map,_elm_lang$core$Tuple$first,A2(_elm_lang$core$List$filter,_elm_lang$core$Tuple$second,list))));};var _elm_lang$html$Html_Attributes$style=_elm_lang$virtual_dom$VirtualDom$style;var _elm_lang$html$Html_Events$keyCode=A2(_elm_lang$core$Json_Decode$field,'keyCode',_elm_lang$core$Json_Decode$int);var _elm_lang$html$Html_Events$targetChecked=A2(_elm_lang$core$Json_Decode$at,{ctor:'::',_0:'target',_1:{ctor:'::',_0:'checked',_1:{ctor:'[]'}}},_elm_lang$core$Json_Decode$bool);var _elm_lang$html$Html_Events$targetValue=A2(_elm_lang$core$Json_Decode$at,{ctor:'::',_0:'target',_1:{ctor:'::',_0:'value',_1:{ctor:'[]'}}},_elm_lang$core$Json_Decode$string);var _elm_lang$html$Html_Events$defaultOptions=_elm_lang$virtual_dom$VirtualDom$defaultOptions;var _elm_lang$html$Html_Events$onWithOptions=_elm_lang$virtual_dom$VirtualDom$onWithOptions;var _elm_lang$html$Html_Events$on=_elm_lang$virtual_dom$VirtualDom$on;var _elm_lang$html$Html_Events$onFocus=function _elm_lang$html$Html_Events$onFocus(msg){return A2(_elm_lang$html$Html_Events$on,'focus',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onBlur=function _elm_lang$html$Html_Events$onBlur(msg){return A2(_elm_lang$html$Html_Events$on,'blur',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onSubmitOptions=_elm_lang$core$Native_Utils.update(_elm_lang$html$Html_Events$defaultOptions,{preventDefault:true});var _elm_lang$html$Html_Events$onSubmit=function _elm_lang$html$Html_Events$onSubmit(msg){return A3(_elm_lang$html$Html_Events$onWithOptions,'submit',_elm_lang$html$Html_Events$onSubmitOptions,_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onCheck=function _elm_lang$html$Html_Events$onCheck(tagger){return A2(_elm_lang$html$Html_Events$on,'change',A2(_elm_lang$core$Json_Decode$map,tagger,_elm_lang$html$Html_Events$targetChecked));};var _elm_lang$html$Html_Events$onInput=function _elm_lang$html$Html_Events$onInput(tagger){return A2(_elm_lang$html$Html_Events$on,'input',A2(_elm_lang$core$Json_Decode$map,tagger,_elm_lang$html$Html_Events$targetValue));};var _elm_lang$html$Html_Events$onMouseOut=function _elm_lang$html$Html_Events$onMouseOut(msg){return A2(_elm_lang$html$Html_Events$on,'mouseout',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onMouseOver=function _elm_lang$html$Html_Events$onMouseOver(msg){return A2(_elm_lang$html$Html_Events$on,'mouseover',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onMouseLeave=function _elm_lang$html$Html_Events$onMouseLeave(msg){return A2(_elm_lang$html$Html_Events$on,'mouseleave',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onMouseEnter=function _elm_lang$html$Html_Events$onMouseEnter(msg){return A2(_elm_lang$html$Html_Events$on,'mouseenter',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onMouseUp=function _elm_lang$html$Html_Events$onMouseUp(msg){return A2(_elm_lang$html$Html_Events$on,'mouseup',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onMouseDown=function _elm_lang$html$Html_Events$onMouseDown(msg){return A2(_elm_lang$html$Html_Events$on,'mousedown',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onDoubleClick=function _elm_lang$html$Html_Events$onDoubleClick(msg){return A2(_elm_lang$html$Html_Events$on,'dblclick',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$onClick=function _elm_lang$html$Html_Events$onClick(msg){return A2(_elm_lang$html$Html_Events$on,'click',_elm_lang$core$Json_Decode$succeed(msg));};var _elm_lang$html$Html_Events$Options=F2(function(a,b){return{stopPropagation:a,preventDefault:b};});var _elm_lang$http$Native_Http=function(){// ENCODING AND DECODING
  function encodeUri(string){return encodeURIComponent(string);}function decodeUri(string){try{return _elm_lang$core$Maybe$Just(decodeURIComponent(string));}catch(e){return _elm_lang$core$Maybe$Nothing;}}// SEND REQUEST
  function toTask(request,maybeProgress){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){var xhr=new XMLHttpRequest();configureProgress(xhr,maybeProgress);xhr.addEventListener('error',function(){callback(_elm_lang$core$Native_Scheduler.fail({ctor:'NetworkError'}));});xhr.addEventListener('timeout',function(){callback(_elm_lang$core$Native_Scheduler.fail({ctor:'Timeout'}));});xhr.addEventListener('load',function(){callback(handleResponse(xhr,request.expect.responseToResult));});try{xhr.open(request.method,request.url,true);}catch(e){return callback(_elm_lang$core$Native_Scheduler.fail({ctor:'BadUrl',_0:request.url}));}configureRequest(xhr,request);send(xhr,request.body);return function(){xhr.abort();};});}function configureProgress(xhr,maybeProgress){if(maybeProgress.ctor==='Nothing'){return;}xhr.addEventListener('progress',function(event){if(!event.lengthComputable){return;}_elm_lang$core$Native_Scheduler.rawSpawn(maybeProgress._0({bytes:event.loaded,bytesExpected:event.total}));});}function configureRequest(xhr,request){function setHeader(pair){xhr.setRequestHeader(pair._0,pair._1);}A2(_elm_lang$core$List$map,setHeader,request.headers);xhr.responseType=request.expect.responseType;xhr.withCredentials=request.withCredentials;if(request.timeout.ctor==='Just'){xhr.timeout=request.timeout._0;}}function send(xhr,body){switch(body.ctor){case'EmptyBody':xhr.send();return;case'StringBody':xhr.setRequestHeader('Content-Type',body._0);xhr.send(body._1);return;case'FormDataBody':xhr.send(body._0);return;}}// RESPONSES
  function handleResponse(xhr,responseToResult){var response=toResponse(xhr);if(xhr.status<200||300<=xhr.status){response.body=xhr.responseText;return _elm_lang$core$Native_Scheduler.fail({ctor:'BadStatus',_0:response});}var result=responseToResult(response);if(result.ctor==='Ok'){return _elm_lang$core$Native_Scheduler.succeed(result._0);}else{response.body=xhr.responseText;return _elm_lang$core$Native_Scheduler.fail({ctor:'BadPayload',_0:result._0,_1:response});}}function toResponse(xhr){return{status:{code:xhr.status,message:xhr.statusText},headers:parseHeaders(xhr.getAllResponseHeaders()),url:xhr.responseURL,body:xhr.response};}function parseHeaders(rawHeaders){var headers=_elm_lang$core$Dict$empty;if(!rawHeaders){return headers;}var headerPairs=rawHeaders.split('\r\n');for(var i=headerPairs.length;i--;){var headerPair=headerPairs[i];var index=headerPair.indexOf(': ');if(index>0){var key=headerPair.substring(0,index);var value=headerPair.substring(index+2);headers=A3(_elm_lang$core$Dict$update,key,function(oldValue){if(oldValue.ctor==='Just'){return _elm_lang$core$Maybe$Just(value+', '+oldValue._0);}return _elm_lang$core$Maybe$Just(value);},headers);}}return headers;}// EXPECTORS
  function expectStringResponse(responseToResult){return{responseType:'text',responseToResult:responseToResult};}function mapExpect(func,expect){return{responseType:expect.responseType,responseToResult:function responseToResult(response){var convertedResponse=expect.responseToResult(response);return A2(_elm_lang$core$Result$map,func,convertedResponse);}};}// BODY
  function multipart(parts){var formData=new FormData();while(parts.ctor!=='[]'){var part=parts._0;formData.append(part._0,part._1);parts=parts._1;}return{ctor:'FormDataBody',_0:formData};}return{toTask:F2(toTask),expectStringResponse:expectStringResponse,mapExpect:F2(mapExpect),multipart:multipart,encodeUri:encodeUri,decodeUri:decodeUri};}();var _elm_lang$http$Http_Internal$map=F2(function(func,request){return _elm_lang$core$Native_Utils.update(request,{expect:A2(_elm_lang$http$Native_Http.mapExpect,func,request.expect)});});var _elm_lang$http$Http_Internal$RawRequest=F7(function(a,b,c,d,e,f,g){return{method:a,headers:b,url:c,body:d,expect:e,timeout:f,withCredentials:g};});var _elm_lang$http$Http_Internal$Request=function _elm_lang$http$Http_Internal$Request(a){return{ctor:'Request',_0:a};};var _elm_lang$http$Http_Internal$Expect={ctor:'Expect'};var _elm_lang$http$Http_Internal$FormDataBody={ctor:'FormDataBody'};var _elm_lang$http$Http_Internal$StringBody=F2(function(a,b){return{ctor:'StringBody',_0:a,_1:b};});var _elm_lang$http$Http_Internal$EmptyBody={ctor:'EmptyBody'};var _elm_lang$http$Http_Internal$Header=F2(function(a,b){return{ctor:'Header',_0:a,_1:b};});var _elm_lang$http$Http$decodeUri=_elm_lang$http$Native_Http.decodeUri;var _elm_lang$http$Http$encodeUri=_elm_lang$http$Native_Http.encodeUri;var _elm_lang$http$Http$expectStringResponse=_elm_lang$http$Native_Http.expectStringResponse;var _elm_lang$http$Http$expectJson=function _elm_lang$http$Http$expectJson(decoder){return _elm_lang$http$Http$expectStringResponse(function(response){return A2(_elm_lang$core$Json_Decode$decodeString,decoder,response.body);});};var _elm_lang$http$Http$expectString=_elm_lang$http$Http$expectStringResponse(function(response){return _elm_lang$core$Result$Ok(response.body);});var _elm_lang$http$Http$multipartBody=_elm_lang$http$Native_Http.multipart;var _elm_lang$http$Http$stringBody=_elm_lang$http$Http_Internal$StringBody;var _elm_lang$http$Http$jsonBody=function _elm_lang$http$Http$jsonBody(value){return A2(_elm_lang$http$Http_Internal$StringBody,'application/json',A2(_elm_lang$core$Json_Encode$encode,0,value));};var _elm_lang$http$Http$emptyBody=_elm_lang$http$Http_Internal$EmptyBody;var _elm_lang$http$Http$header=_elm_lang$http$Http_Internal$Header;var _elm_lang$http$Http$request=_elm_lang$http$Http_Internal$Request;var _elm_lang$http$Http$post=F3(function(url,body,decoder){return _elm_lang$http$Http$request({method:'POST',headers:{ctor:'[]'},url:url,body:body,expect:_elm_lang$http$Http$expectJson(decoder),timeout:_elm_lang$core$Maybe$Nothing,withCredentials:false});});var _elm_lang$http$Http$get=F2(function(url,decoder){return _elm_lang$http$Http$request({method:'GET',headers:{ctor:'[]'},url:url,body:_elm_lang$http$Http$emptyBody,expect:_elm_lang$http$Http$expectJson(decoder),timeout:_elm_lang$core$Maybe$Nothing,withCredentials:false});});var _elm_lang$http$Http$getString=function _elm_lang$http$Http$getString(url){return _elm_lang$http$Http$request({method:'GET',headers:{ctor:'[]'},url:url,body:_elm_lang$http$Http$emptyBody,expect:_elm_lang$http$Http$expectString,timeout:_elm_lang$core$Maybe$Nothing,withCredentials:false});};var _elm_lang$http$Http$toTask=function _elm_lang$http$Http$toTask(_p0){var _p1=_p0;return A2(_elm_lang$http$Native_Http.toTask,_p1._0,_elm_lang$core$Maybe$Nothing);};var _elm_lang$http$Http$send=F2(function(resultToMessage,request){return A2(_elm_lang$core$Task$attempt,resultToMessage,_elm_lang$http$Http$toTask(request));});var _elm_lang$http$Http$Response=F4(function(a,b,c,d){return{url:a,status:b,headers:c,body:d};});var _elm_lang$http$Http$BadPayload=F2(function(a,b){return{ctor:'BadPayload',_0:a,_1:b};});var _elm_lang$http$Http$BadStatus=function _elm_lang$http$Http$BadStatus(a){return{ctor:'BadStatus',_0:a};};var _elm_lang$http$Http$NetworkError={ctor:'NetworkError'};var _elm_lang$http$Http$Timeout={ctor:'Timeout'};var _elm_lang$http$Http$BadUrl=function _elm_lang$http$Http$BadUrl(a){return{ctor:'BadUrl',_0:a};};var _elm_lang$http$Http$StringPart=F2(function(a,b){return{ctor:'StringPart',_0:a,_1:b};});var _elm_lang$http$Http$stringPart=_elm_lang$http$Http$StringPart;var _elm_lang$navigation$Native_Navigation=function(){function go(n){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){if(n!==0){history.go(n);}callback(_elm_lang$core$Native_Scheduler.succeed(_elm_lang$core$Native_Utils.Tuple0));});}function pushState(url){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){history.pushState({},'',url);callback(_elm_lang$core$Native_Scheduler.succeed(getLocation()));});}function replaceState(url){return _elm_lang$core$Native_Scheduler.nativeBinding(function(callback){history.replaceState({},'',url);callback(_elm_lang$core$Native_Scheduler.succeed(getLocation()));});}function getLocation(){var location=document.location;return{href:location.href,host:location.host,hostname:location.hostname,protocol:location.protocol,origin:location.origin,port_:location.port,pathname:location.pathname,search:location.search,hash:location.hash,username:location.username,password:location.password};}return{go:go,pushState:pushState,replaceState:replaceState,getLocation:getLocation};}();var _elm_lang$navigation$Navigation$replaceState=_elm_lang$navigation$Native_Navigation.replaceState;var _elm_lang$navigation$Navigation$pushState=_elm_lang$navigation$Native_Navigation.pushState;var _elm_lang$navigation$Navigation$go=_elm_lang$navigation$Native_Navigation.go;var _elm_lang$navigation$Navigation$spawnPopState=function _elm_lang$navigation$Navigation$spawnPopState(router){return _elm_lang$core$Process$spawn(A3(_elm_lang$dom$Dom_LowLevel$onWindow,'popstate',_elm_lang$core$Json_Decode$value,function(_p0){return A2(_elm_lang$core$Platform$sendToSelf,router,_elm_lang$navigation$Native_Navigation.getLocation({ctor:'_Tuple0'}));}));};var _elm_lang$navigation$Navigation_ops=_elm_lang$navigation$Navigation_ops||{};_elm_lang$navigation$Navigation_ops['&>']=F2(function(task1,task2){return A2(_elm_lang$core$Task$andThen,function(_p1){return task2;},task1);});var _elm_lang$navigation$Navigation$notify=F3(function(router,subs,location){var send=function send(_p2){var _p3=_p2;return A2(_elm_lang$core$Platform$sendToApp,router,_p3._0(location));};return A2(_elm_lang$navigation$Navigation_ops['&>'],_elm_lang$core$Task$sequence(A2(_elm_lang$core$List$map,send,subs)),_elm_lang$core$Task$succeed({ctor:'_Tuple0'}));});var _elm_lang$navigation$Navigation$onSelfMsg=F3(function(router,location,state){return A2(_elm_lang$navigation$Navigation_ops['&>'],A3(_elm_lang$navigation$Navigation$notify,router,state.subs,location),_elm_lang$core$Task$succeed(state));});var _elm_lang$navigation$Navigation$cmdHelp=F3(function(router,subs,cmd){var _p4=cmd;switch(_p4.ctor){case'Jump':return _elm_lang$navigation$Navigation$go(_p4._0);case'New':return A2(_elm_lang$core$Task$andThen,A2(_elm_lang$navigation$Navigation$notify,router,subs),_elm_lang$navigation$Navigation$pushState(_p4._0));default:return A2(_elm_lang$core$Task$andThen,A2(_elm_lang$navigation$Navigation$notify,router,subs),_elm_lang$navigation$Navigation$replaceState(_p4._0));}});var _elm_lang$navigation$Navigation$subscription=_elm_lang$core$Native_Platform.leaf('Navigation');var _elm_lang$navigation$Navigation$command=_elm_lang$core$Native_Platform.leaf('Navigation');var _elm_lang$navigation$Navigation$Location=function _elm_lang$navigation$Navigation$Location(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return function(i){return function(j){return function(k){return{href:a,host:b,hostname:c,protocol:d,origin:e,port_:f,pathname:g,search:h,hash:i,username:j,password:k};};};};};};};};};};};};var _elm_lang$navigation$Navigation$State=F2(function(a,b){return{subs:a,process:b};});var _elm_lang$navigation$Navigation$init=_elm_lang$core$Task$succeed(A2(_elm_lang$navigation$Navigation$State,{ctor:'[]'},_elm_lang$core$Maybe$Nothing));var _elm_lang$navigation$Navigation$onEffects=F4(function(router,cmds,subs,_p5){var _p6=_p5;var _p9=_p6.process;var stepState=function(){var _p7={ctor:'_Tuple2',_0:subs,_1:_p9};_v3_2:do{if(_p7._0.ctor==='[]'){if(_p7._1.ctor==='Just'){return A2(_elm_lang$navigation$Navigation_ops['&>'],_elm_lang$core$Process$kill(_p7._1._0),_elm_lang$core$Task$succeed(A2(_elm_lang$navigation$Navigation$State,subs,_elm_lang$core$Maybe$Nothing)));}else{break _v3_2;}}else{if(_p7._1.ctor==='Nothing'){return A2(_elm_lang$core$Task$map,function(_p8){return A2(_elm_lang$navigation$Navigation$State,subs,_elm_lang$core$Maybe$Just(_p8));},_elm_lang$navigation$Navigation$spawnPopState(router));}else{break _v3_2;}}}while(false);return _elm_lang$core$Task$succeed(A2(_elm_lang$navigation$Navigation$State,subs,_p9));}();return A2(_elm_lang$navigation$Navigation_ops['&>'],_elm_lang$core$Task$sequence(A2(_elm_lang$core$List$map,A2(_elm_lang$navigation$Navigation$cmdHelp,router,subs),cmds)),stepState);});var _elm_lang$navigation$Navigation$Modify=function _elm_lang$navigation$Navigation$Modify(a){return{ctor:'Modify',_0:a};};var _elm_lang$navigation$Navigation$modifyUrl=function _elm_lang$navigation$Navigation$modifyUrl(url){return _elm_lang$navigation$Navigation$command(_elm_lang$navigation$Navigation$Modify(url));};var _elm_lang$navigation$Navigation$New=function _elm_lang$navigation$Navigation$New(a){return{ctor:'New',_0:a};};var _elm_lang$navigation$Navigation$newUrl=function _elm_lang$navigation$Navigation$newUrl(url){return _elm_lang$navigation$Navigation$command(_elm_lang$navigation$Navigation$New(url));};var _elm_lang$navigation$Navigation$Jump=function _elm_lang$navigation$Navigation$Jump(a){return{ctor:'Jump',_0:a};};var _elm_lang$navigation$Navigation$back=function _elm_lang$navigation$Navigation$back(n){return _elm_lang$navigation$Navigation$command(_elm_lang$navigation$Navigation$Jump(0-n));};var _elm_lang$navigation$Navigation$forward=function _elm_lang$navigation$Navigation$forward(n){return _elm_lang$navigation$Navigation$command(_elm_lang$navigation$Navigation$Jump(n));};var _elm_lang$navigation$Navigation$cmdMap=F2(function(_p10,myCmd){var _p11=myCmd;switch(_p11.ctor){case'Jump':return _elm_lang$navigation$Navigation$Jump(_p11._0);case'New':return _elm_lang$navigation$Navigation$New(_p11._0);default:return _elm_lang$navigation$Navigation$Modify(_p11._0);}});var _elm_lang$navigation$Navigation$Monitor=function _elm_lang$navigation$Navigation$Monitor(a){return{ctor:'Monitor',_0:a};};var _elm_lang$navigation$Navigation$program=F2(function(locationToMessage,stuff){var init=stuff.init(_elm_lang$navigation$Native_Navigation.getLocation({ctor:'_Tuple0'}));var subs=function subs(model){return _elm_lang$core$Platform_Sub$batch({ctor:'::',_0:_elm_lang$navigation$Navigation$subscription(_elm_lang$navigation$Navigation$Monitor(locationToMessage)),_1:{ctor:'::',_0:stuff.subscriptions(model),_1:{ctor:'[]'}}});};return _elm_lang$html$Html$program({init:init,view:stuff.view,update:stuff.update,subscriptions:subs});});var _elm_lang$navigation$Navigation$programWithFlags=F2(function(locationToMessage,stuff){var init=function init(flags){return A2(stuff.init,flags,_elm_lang$navigation$Native_Navigation.getLocation({ctor:'_Tuple0'}));};var subs=function subs(model){return _elm_lang$core$Platform_Sub$batch({ctor:'::',_0:_elm_lang$navigation$Navigation$subscription(_elm_lang$navigation$Navigation$Monitor(locationToMessage)),_1:{ctor:'::',_0:stuff.subscriptions(model),_1:{ctor:'[]'}}});};return _elm_lang$html$Html$programWithFlags({init:init,view:stuff.view,update:stuff.update,subscriptions:subs});});var _elm_lang$navigation$Navigation$subMap=F2(function(func,_p12){var _p13=_p12;return _elm_lang$navigation$Navigation$Monitor(function(_p14){return func(_p13._0(_p14));});});_elm_lang$core$Native_Platform.effectManagers['Navigation']={pkg:'elm-lang/navigation',init:_elm_lang$navigation$Navigation$init,onEffects:_elm_lang$navigation$Navigation$onEffects,onSelfMsg:_elm_lang$navigation$Navigation$onSelfMsg,tag:'fx',cmdMap:_elm_lang$navigation$Navigation$cmdMap,subMap:_elm_lang$navigation$Navigation$subMap};var _elm_lang$svg$Svg$map=_elm_lang$virtual_dom$VirtualDom$map;var _elm_lang$svg$Svg$text=_elm_lang$virtual_dom$VirtualDom$text;var _elm_lang$svg$Svg$svgNamespace=A2(_elm_lang$virtual_dom$VirtualDom$property,'namespace',_elm_lang$core$Json_Encode$string('http://www.w3.org/2000/svg'));var _elm_lang$svg$Svg$node=F3(function(name,attributes,children){return A3(_elm_lang$virtual_dom$VirtualDom$node,name,{ctor:'::',_0:_elm_lang$svg$Svg$svgNamespace,_1:attributes},children);});var _elm_lang$svg$Svg$svg=_elm_lang$svg$Svg$node('svg');var _elm_lang$svg$Svg$foreignObject=_elm_lang$svg$Svg$node('foreignObject');var _elm_lang$svg$Svg$animate=_elm_lang$svg$Svg$node('animate');var _elm_lang$svg$Svg$animateColor=_elm_lang$svg$Svg$node('animateColor');var _elm_lang$svg$Svg$animateMotion=_elm_lang$svg$Svg$node('animateMotion');var _elm_lang$svg$Svg$animateTransform=_elm_lang$svg$Svg$node('animateTransform');var _elm_lang$svg$Svg$mpath=_elm_lang$svg$Svg$node('mpath');var _elm_lang$svg$Svg$set=_elm_lang$svg$Svg$node('set');var _elm_lang$svg$Svg$a=_elm_lang$svg$Svg$node('a');var _elm_lang$svg$Svg$defs=_elm_lang$svg$Svg$node('defs');var _elm_lang$svg$Svg$g=_elm_lang$svg$Svg$node('g');var _elm_lang$svg$Svg$marker=_elm_lang$svg$Svg$node('marker');var _elm_lang$svg$Svg$mask=_elm_lang$svg$Svg$node('mask');var _elm_lang$svg$Svg$pattern=_elm_lang$svg$Svg$node('pattern');var _elm_lang$svg$Svg$switch=_elm_lang$svg$Svg$node('switch');var _elm_lang$svg$Svg$symbol=_elm_lang$svg$Svg$node('symbol');var _elm_lang$svg$Svg$desc=_elm_lang$svg$Svg$node('desc');var _elm_lang$svg$Svg$metadata=_elm_lang$svg$Svg$node('metadata');var _elm_lang$svg$Svg$title=_elm_lang$svg$Svg$node('title');var _elm_lang$svg$Svg$feBlend=_elm_lang$svg$Svg$node('feBlend');var _elm_lang$svg$Svg$feColorMatrix=_elm_lang$svg$Svg$node('feColorMatrix');var _elm_lang$svg$Svg$feComponentTransfer=_elm_lang$svg$Svg$node('feComponentTransfer');var _elm_lang$svg$Svg$feComposite=_elm_lang$svg$Svg$node('feComposite');var _elm_lang$svg$Svg$feConvolveMatrix=_elm_lang$svg$Svg$node('feConvolveMatrix');var _elm_lang$svg$Svg$feDiffuseLighting=_elm_lang$svg$Svg$node('feDiffuseLighting');var _elm_lang$svg$Svg$feDisplacementMap=_elm_lang$svg$Svg$node('feDisplacementMap');var _elm_lang$svg$Svg$feFlood=_elm_lang$svg$Svg$node('feFlood');var _elm_lang$svg$Svg$feFuncA=_elm_lang$svg$Svg$node('feFuncA');var _elm_lang$svg$Svg$feFuncB=_elm_lang$svg$Svg$node('feFuncB');var _elm_lang$svg$Svg$feFuncG=_elm_lang$svg$Svg$node('feFuncG');var _elm_lang$svg$Svg$feFuncR=_elm_lang$svg$Svg$node('feFuncR');var _elm_lang$svg$Svg$feGaussianBlur=_elm_lang$svg$Svg$node('feGaussianBlur');var _elm_lang$svg$Svg$feImage=_elm_lang$svg$Svg$node('feImage');var _elm_lang$svg$Svg$feMerge=_elm_lang$svg$Svg$node('feMerge');var _elm_lang$svg$Svg$feMergeNode=_elm_lang$svg$Svg$node('feMergeNode');var _elm_lang$svg$Svg$feMorphology=_elm_lang$svg$Svg$node('feMorphology');var _elm_lang$svg$Svg$feOffset=_elm_lang$svg$Svg$node('feOffset');var _elm_lang$svg$Svg$feSpecularLighting=_elm_lang$svg$Svg$node('feSpecularLighting');var _elm_lang$svg$Svg$feTile=_elm_lang$svg$Svg$node('feTile');var _elm_lang$svg$Svg$feTurbulence=_elm_lang$svg$Svg$node('feTurbulence');var _elm_lang$svg$Svg$font=_elm_lang$svg$Svg$node('font');var _elm_lang$svg$Svg$linearGradient=_elm_lang$svg$Svg$node('linearGradient');var _elm_lang$svg$Svg$radialGradient=_elm_lang$svg$Svg$node('radialGradient');var _elm_lang$svg$Svg$stop=_elm_lang$svg$Svg$node('stop');var _elm_lang$svg$Svg$circle=_elm_lang$svg$Svg$node('circle');var _elm_lang$svg$Svg$ellipse=_elm_lang$svg$Svg$node('ellipse');var _elm_lang$svg$Svg$image=_elm_lang$svg$Svg$node('image');var _elm_lang$svg$Svg$line=_elm_lang$svg$Svg$node('line');var _elm_lang$svg$Svg$path=_elm_lang$svg$Svg$node('path');var _elm_lang$svg$Svg$polygon=_elm_lang$svg$Svg$node('polygon');var _elm_lang$svg$Svg$polyline=_elm_lang$svg$Svg$node('polyline');var _elm_lang$svg$Svg$rect=_elm_lang$svg$Svg$node('rect');var _elm_lang$svg$Svg$use=_elm_lang$svg$Svg$node('use');var _elm_lang$svg$Svg$feDistantLight=_elm_lang$svg$Svg$node('feDistantLight');var _elm_lang$svg$Svg$fePointLight=_elm_lang$svg$Svg$node('fePointLight');var _elm_lang$svg$Svg$feSpotLight=_elm_lang$svg$Svg$node('feSpotLight');var _elm_lang$svg$Svg$altGlyph=_elm_lang$svg$Svg$node('altGlyph');var _elm_lang$svg$Svg$altGlyphDef=_elm_lang$svg$Svg$node('altGlyphDef');var _elm_lang$svg$Svg$altGlyphItem=_elm_lang$svg$Svg$node('altGlyphItem');var _elm_lang$svg$Svg$glyph=_elm_lang$svg$Svg$node('glyph');var _elm_lang$svg$Svg$glyphRef=_elm_lang$svg$Svg$node('glyphRef');var _elm_lang$svg$Svg$textPath=_elm_lang$svg$Svg$node('textPath');var _elm_lang$svg$Svg$text_=_elm_lang$svg$Svg$node('text');var _elm_lang$svg$Svg$tref=_elm_lang$svg$Svg$node('tref');var _elm_lang$svg$Svg$tspan=_elm_lang$svg$Svg$node('tspan');var _elm_lang$svg$Svg$clipPath=_elm_lang$svg$Svg$node('clipPath');var _elm_lang$svg$Svg$colorProfile=_elm_lang$svg$Svg$node('colorProfile');var _elm_lang$svg$Svg$cursor=_elm_lang$svg$Svg$node('cursor');var _elm_lang$svg$Svg$filter=_elm_lang$svg$Svg$node('filter');var _elm_lang$svg$Svg$script=_elm_lang$svg$Svg$node('script');var _elm_lang$svg$Svg$style=_elm_lang$svg$Svg$node('style');var _elm_lang$svg$Svg$view=_elm_lang$svg$Svg$node('view');var _elm_lang$svg$Svg_Attributes$writingMode=_elm_lang$virtual_dom$VirtualDom$attribute('writing-mode');var _elm_lang$svg$Svg_Attributes$wordSpacing=_elm_lang$virtual_dom$VirtualDom$attribute('word-spacing');var _elm_lang$svg$Svg_Attributes$visibility=_elm_lang$virtual_dom$VirtualDom$attribute('visibility');var _elm_lang$svg$Svg_Attributes$unicodeBidi=_elm_lang$virtual_dom$VirtualDom$attribute('unicode-bidi');var _elm_lang$svg$Svg_Attributes$textRendering=_elm_lang$virtual_dom$VirtualDom$attribute('text-rendering');var _elm_lang$svg$Svg_Attributes$textDecoration=_elm_lang$virtual_dom$VirtualDom$attribute('text-decoration');var _elm_lang$svg$Svg_Attributes$textAnchor=_elm_lang$virtual_dom$VirtualDom$attribute('text-anchor');var _elm_lang$svg$Svg_Attributes$stroke=_elm_lang$virtual_dom$VirtualDom$attribute('stroke');var _elm_lang$svg$Svg_Attributes$strokeWidth=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-width');var _elm_lang$svg$Svg_Attributes$strokeOpacity=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-opacity');var _elm_lang$svg$Svg_Attributes$strokeMiterlimit=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-miterlimit');var _elm_lang$svg$Svg_Attributes$strokeLinejoin=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-linejoin');var _elm_lang$svg$Svg_Attributes$strokeLinecap=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-linecap');var _elm_lang$svg$Svg_Attributes$strokeDashoffset=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-dashoffset');var _elm_lang$svg$Svg_Attributes$strokeDasharray=_elm_lang$virtual_dom$VirtualDom$attribute('stroke-dasharray');var _elm_lang$svg$Svg_Attributes$stopOpacity=_elm_lang$virtual_dom$VirtualDom$attribute('stop-opacity');var _elm_lang$svg$Svg_Attributes$stopColor=_elm_lang$virtual_dom$VirtualDom$attribute('stop-color');var _elm_lang$svg$Svg_Attributes$shapeRendering=_elm_lang$virtual_dom$VirtualDom$attribute('shape-rendering');var _elm_lang$svg$Svg_Attributes$pointerEvents=_elm_lang$virtual_dom$VirtualDom$attribute('pointer-events');var _elm_lang$svg$Svg_Attributes$overflow=_elm_lang$virtual_dom$VirtualDom$attribute('overflow');var _elm_lang$svg$Svg_Attributes$opacity=_elm_lang$virtual_dom$VirtualDom$attribute('opacity');var _elm_lang$svg$Svg_Attributes$mask=_elm_lang$virtual_dom$VirtualDom$attribute('mask');var _elm_lang$svg$Svg_Attributes$markerStart=_elm_lang$virtual_dom$VirtualDom$attribute('marker-start');var _elm_lang$svg$Svg_Attributes$markerMid=_elm_lang$virtual_dom$VirtualDom$attribute('marker-mid');var _elm_lang$svg$Svg_Attributes$markerEnd=_elm_lang$virtual_dom$VirtualDom$attribute('marker-end');var _elm_lang$svg$Svg_Attributes$lightingColor=_elm_lang$virtual_dom$VirtualDom$attribute('lighting-color');var _elm_lang$svg$Svg_Attributes$letterSpacing=_elm_lang$virtual_dom$VirtualDom$attribute('letter-spacing');var _elm_lang$svg$Svg_Attributes$kerning=_elm_lang$virtual_dom$VirtualDom$attribute('kerning');var _elm_lang$svg$Svg_Attributes$imageRendering=_elm_lang$virtual_dom$VirtualDom$attribute('image-rendering');var _elm_lang$svg$Svg_Attributes$glyphOrientationVertical=_elm_lang$virtual_dom$VirtualDom$attribute('glyph-orientation-vertical');var _elm_lang$svg$Svg_Attributes$glyphOrientationHorizontal=_elm_lang$virtual_dom$VirtualDom$attribute('glyph-orientation-horizontal');var _elm_lang$svg$Svg_Attributes$fontWeight=_elm_lang$virtual_dom$VirtualDom$attribute('font-weight');var _elm_lang$svg$Svg_Attributes$fontVariant=_elm_lang$virtual_dom$VirtualDom$attribute('font-variant');var _elm_lang$svg$Svg_Attributes$fontStyle=_elm_lang$virtual_dom$VirtualDom$attribute('font-style');var _elm_lang$svg$Svg_Attributes$fontStretch=_elm_lang$virtual_dom$VirtualDom$attribute('font-stretch');var _elm_lang$svg$Svg_Attributes$fontSize=_elm_lang$virtual_dom$VirtualDom$attribute('font-size');var _elm_lang$svg$Svg_Attributes$fontSizeAdjust=_elm_lang$virtual_dom$VirtualDom$attribute('font-size-adjust');var _elm_lang$svg$Svg_Attributes$fontFamily=_elm_lang$virtual_dom$VirtualDom$attribute('font-family');var _elm_lang$svg$Svg_Attributes$floodOpacity=_elm_lang$virtual_dom$VirtualDom$attribute('flood-opacity');var _elm_lang$svg$Svg_Attributes$floodColor=_elm_lang$virtual_dom$VirtualDom$attribute('flood-color');var _elm_lang$svg$Svg_Attributes$filter=_elm_lang$virtual_dom$VirtualDom$attribute('filter');var _elm_lang$svg$Svg_Attributes$fill=_elm_lang$virtual_dom$VirtualDom$attribute('fill');var _elm_lang$svg$Svg_Attributes$fillRule=_elm_lang$virtual_dom$VirtualDom$attribute('fill-rule');var _elm_lang$svg$Svg_Attributes$fillOpacity=_elm_lang$virtual_dom$VirtualDom$attribute('fill-opacity');var _elm_lang$svg$Svg_Attributes$enableBackground=_elm_lang$virtual_dom$VirtualDom$attribute('enable-background');var _elm_lang$svg$Svg_Attributes$dominantBaseline=_elm_lang$virtual_dom$VirtualDom$attribute('dominant-baseline');var _elm_lang$svg$Svg_Attributes$display=_elm_lang$virtual_dom$VirtualDom$attribute('display');var _elm_lang$svg$Svg_Attributes$direction=_elm_lang$virtual_dom$VirtualDom$attribute('direction');var _elm_lang$svg$Svg_Attributes$cursor=_elm_lang$virtual_dom$VirtualDom$attribute('cursor');var _elm_lang$svg$Svg_Attributes$color=_elm_lang$virtual_dom$VirtualDom$attribute('color');var _elm_lang$svg$Svg_Attributes$colorRendering=_elm_lang$virtual_dom$VirtualDom$attribute('color-rendering');var _elm_lang$svg$Svg_Attributes$colorProfile=_elm_lang$virtual_dom$VirtualDom$attribute('color-profile');var _elm_lang$svg$Svg_Attributes$colorInterpolation=_elm_lang$virtual_dom$VirtualDom$attribute('color-interpolation');var _elm_lang$svg$Svg_Attributes$colorInterpolationFilters=_elm_lang$virtual_dom$VirtualDom$attribute('color-interpolation-filters');var _elm_lang$svg$Svg_Attributes$clip=_elm_lang$virtual_dom$VirtualDom$attribute('clip');var _elm_lang$svg$Svg_Attributes$clipRule=_elm_lang$virtual_dom$VirtualDom$attribute('clip-rule');var _elm_lang$svg$Svg_Attributes$clipPath=_elm_lang$virtual_dom$VirtualDom$attribute('clip-path');var _elm_lang$svg$Svg_Attributes$baselineShift=_elm_lang$virtual_dom$VirtualDom$attribute('baseline-shift');var _elm_lang$svg$Svg_Attributes$alignmentBaseline=_elm_lang$virtual_dom$VirtualDom$attribute('alignment-baseline');var _elm_lang$svg$Svg_Attributes$zoomAndPan=_elm_lang$virtual_dom$VirtualDom$attribute('zoomAndPan');var _elm_lang$svg$Svg_Attributes$z=_elm_lang$virtual_dom$VirtualDom$attribute('z');var _elm_lang$svg$Svg_Attributes$yChannelSelector=_elm_lang$virtual_dom$VirtualDom$attribute('yChannelSelector');var _elm_lang$svg$Svg_Attributes$y2=_elm_lang$virtual_dom$VirtualDom$attribute('y2');var _elm_lang$svg$Svg_Attributes$y1=_elm_lang$virtual_dom$VirtualDom$attribute('y1');var _elm_lang$svg$Svg_Attributes$y=_elm_lang$virtual_dom$VirtualDom$attribute('y');var _elm_lang$svg$Svg_Attributes$xmlSpace=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/XML/1998/namespace','xml:space');var _elm_lang$svg$Svg_Attributes$xmlLang=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/XML/1998/namespace','xml:lang');var _elm_lang$svg$Svg_Attributes$xmlBase=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/XML/1998/namespace','xml:base');var _elm_lang$svg$Svg_Attributes$xlinkType=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:type');var _elm_lang$svg$Svg_Attributes$xlinkTitle=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:title');var _elm_lang$svg$Svg_Attributes$xlinkShow=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:show');var _elm_lang$svg$Svg_Attributes$xlinkRole=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:role');var _elm_lang$svg$Svg_Attributes$xlinkHref=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:href');var _elm_lang$svg$Svg_Attributes$xlinkArcrole=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:arcrole');var _elm_lang$svg$Svg_Attributes$xlinkActuate=A2(_elm_lang$virtual_dom$VirtualDom$attributeNS,'http://www.w3.org/1999/xlink','xlink:actuate');var _elm_lang$svg$Svg_Attributes$xChannelSelector=_elm_lang$virtual_dom$VirtualDom$attribute('xChannelSelector');var _elm_lang$svg$Svg_Attributes$x2=_elm_lang$virtual_dom$VirtualDom$attribute('x2');var _elm_lang$svg$Svg_Attributes$x1=_elm_lang$virtual_dom$VirtualDom$attribute('x1');var _elm_lang$svg$Svg_Attributes$xHeight=_elm_lang$virtual_dom$VirtualDom$attribute('x-height');var _elm_lang$svg$Svg_Attributes$x=_elm_lang$virtual_dom$VirtualDom$attribute('x');var _elm_lang$svg$Svg_Attributes$widths=_elm_lang$virtual_dom$VirtualDom$attribute('widths');var _elm_lang$svg$Svg_Attributes$width=_elm_lang$virtual_dom$VirtualDom$attribute('width');var _elm_lang$svg$Svg_Attributes$viewTarget=_elm_lang$virtual_dom$VirtualDom$attribute('viewTarget');var _elm_lang$svg$Svg_Attributes$viewBox=_elm_lang$virtual_dom$VirtualDom$attribute('viewBox');var _elm_lang$svg$Svg_Attributes$vertOriginY=_elm_lang$virtual_dom$VirtualDom$attribute('vert-origin-y');var _elm_lang$svg$Svg_Attributes$vertOriginX=_elm_lang$virtual_dom$VirtualDom$attribute('vert-origin-x');var _elm_lang$svg$Svg_Attributes$vertAdvY=_elm_lang$virtual_dom$VirtualDom$attribute('vert-adv-y');var _elm_lang$svg$Svg_Attributes$version=_elm_lang$virtual_dom$VirtualDom$attribute('version');var _elm_lang$svg$Svg_Attributes$values=_elm_lang$virtual_dom$VirtualDom$attribute('values');var _elm_lang$svg$Svg_Attributes$vMathematical=_elm_lang$virtual_dom$VirtualDom$attribute('v-mathematical');var _elm_lang$svg$Svg_Attributes$vIdeographic=_elm_lang$virtual_dom$VirtualDom$attribute('v-ideographic');var _elm_lang$svg$Svg_Attributes$vHanging=_elm_lang$virtual_dom$VirtualDom$attribute('v-hanging');var _elm_lang$svg$Svg_Attributes$vAlphabetic=_elm_lang$virtual_dom$VirtualDom$attribute('v-alphabetic');var _elm_lang$svg$Svg_Attributes$unitsPerEm=_elm_lang$virtual_dom$VirtualDom$attribute('units-per-em');var _elm_lang$svg$Svg_Attributes$unicodeRange=_elm_lang$virtual_dom$VirtualDom$attribute('unicode-range');var _elm_lang$svg$Svg_Attributes$unicode=_elm_lang$virtual_dom$VirtualDom$attribute('unicode');var _elm_lang$svg$Svg_Attributes$underlineThickness=_elm_lang$virtual_dom$VirtualDom$attribute('underline-thickness');var _elm_lang$svg$Svg_Attributes$underlinePosition=_elm_lang$virtual_dom$VirtualDom$attribute('underline-position');var _elm_lang$svg$Svg_Attributes$u2=_elm_lang$virtual_dom$VirtualDom$attribute('u2');var _elm_lang$svg$Svg_Attributes$u1=_elm_lang$virtual_dom$VirtualDom$attribute('u1');var _elm_lang$svg$Svg_Attributes$type_=_elm_lang$virtual_dom$VirtualDom$attribute('type');var _elm_lang$svg$Svg_Attributes$transform=_elm_lang$virtual_dom$VirtualDom$attribute('transform');var _elm_lang$svg$Svg_Attributes$to=_elm_lang$virtual_dom$VirtualDom$attribute('to');var _elm_lang$svg$Svg_Attributes$title=_elm_lang$virtual_dom$VirtualDom$attribute('title');var _elm_lang$svg$Svg_Attributes$textLength=_elm_lang$virtual_dom$VirtualDom$attribute('textLength');var _elm_lang$svg$Svg_Attributes$targetY=_elm_lang$virtual_dom$VirtualDom$attribute('targetY');var _elm_lang$svg$Svg_Attributes$targetX=_elm_lang$virtual_dom$VirtualDom$attribute('targetX');var _elm_lang$svg$Svg_Attributes$target=_elm_lang$virtual_dom$VirtualDom$attribute('target');var _elm_lang$svg$Svg_Attributes$tableValues=_elm_lang$virtual_dom$VirtualDom$attribute('tableValues');var _elm_lang$svg$Svg_Attributes$systemLanguage=_elm_lang$virtual_dom$VirtualDom$attribute('systemLanguage');var _elm_lang$svg$Svg_Attributes$surfaceScale=_elm_lang$virtual_dom$VirtualDom$attribute('surfaceScale');var _elm_lang$svg$Svg_Attributes$style=_elm_lang$virtual_dom$VirtualDom$attribute('style');var _elm_lang$svg$Svg_Attributes$string=_elm_lang$virtual_dom$VirtualDom$attribute('string');var _elm_lang$svg$Svg_Attributes$strikethroughThickness=_elm_lang$virtual_dom$VirtualDom$attribute('strikethrough-thickness');var _elm_lang$svg$Svg_Attributes$strikethroughPosition=_elm_lang$virtual_dom$VirtualDom$attribute('strikethrough-position');var _elm_lang$svg$Svg_Attributes$stitchTiles=_elm_lang$virtual_dom$VirtualDom$attribute('stitchTiles');var _elm_lang$svg$Svg_Attributes$stemv=_elm_lang$virtual_dom$VirtualDom$attribute('stemv');var _elm_lang$svg$Svg_Attributes$stemh=_elm_lang$virtual_dom$VirtualDom$attribute('stemh');var _elm_lang$svg$Svg_Attributes$stdDeviation=_elm_lang$virtual_dom$VirtualDom$attribute('stdDeviation');var _elm_lang$svg$Svg_Attributes$startOffset=_elm_lang$virtual_dom$VirtualDom$attribute('startOffset');var _elm_lang$svg$Svg_Attributes$spreadMethod=_elm_lang$virtual_dom$VirtualDom$attribute('spreadMethod');var _elm_lang$svg$Svg_Attributes$speed=_elm_lang$virtual_dom$VirtualDom$attribute('speed');var _elm_lang$svg$Svg_Attributes$specularExponent=_elm_lang$virtual_dom$VirtualDom$attribute('specularExponent');var _elm_lang$svg$Svg_Attributes$specularConstant=_elm_lang$virtual_dom$VirtualDom$attribute('specularConstant');var _elm_lang$svg$Svg_Attributes$spacing=_elm_lang$virtual_dom$VirtualDom$attribute('spacing');var _elm_lang$svg$Svg_Attributes$slope=_elm_lang$virtual_dom$VirtualDom$attribute('slope');var _elm_lang$svg$Svg_Attributes$seed=_elm_lang$virtual_dom$VirtualDom$attribute('seed');var _elm_lang$svg$Svg_Attributes$scale=_elm_lang$virtual_dom$VirtualDom$attribute('scale');var _elm_lang$svg$Svg_Attributes$ry=_elm_lang$virtual_dom$VirtualDom$attribute('ry');var _elm_lang$svg$Svg_Attributes$rx=_elm_lang$virtual_dom$VirtualDom$attribute('rx');var _elm_lang$svg$Svg_Attributes$rotate=_elm_lang$virtual_dom$VirtualDom$attribute('rotate');var _elm_lang$svg$Svg_Attributes$result=_elm_lang$virtual_dom$VirtualDom$attribute('result');var _elm_lang$svg$Svg_Attributes$restart=_elm_lang$virtual_dom$VirtualDom$attribute('restart');var _elm_lang$svg$Svg_Attributes$requiredFeatures=_elm_lang$virtual_dom$VirtualDom$attribute('requiredFeatures');var _elm_lang$svg$Svg_Attributes$requiredExtensions=_elm_lang$virtual_dom$VirtualDom$attribute('requiredExtensions');var _elm_lang$svg$Svg_Attributes$repeatDur=_elm_lang$virtual_dom$VirtualDom$attribute('repeatDur');var _elm_lang$svg$Svg_Attributes$repeatCount=_elm_lang$virtual_dom$VirtualDom$attribute('repeatCount');var _elm_lang$svg$Svg_Attributes$renderingIntent=_elm_lang$virtual_dom$VirtualDom$attribute('rendering-intent');var _elm_lang$svg$Svg_Attributes$refY=_elm_lang$virtual_dom$VirtualDom$attribute('refY');var _elm_lang$svg$Svg_Attributes$refX=_elm_lang$virtual_dom$VirtualDom$attribute('refX');var _elm_lang$svg$Svg_Attributes$radius=_elm_lang$virtual_dom$VirtualDom$attribute('radius');var _elm_lang$svg$Svg_Attributes$r=_elm_lang$virtual_dom$VirtualDom$attribute('r');var _elm_lang$svg$Svg_Attributes$primitiveUnits=_elm_lang$virtual_dom$VirtualDom$attribute('primitiveUnits');var _elm_lang$svg$Svg_Attributes$preserveAspectRatio=_elm_lang$virtual_dom$VirtualDom$attribute('preserveAspectRatio');var _elm_lang$svg$Svg_Attributes$preserveAlpha=_elm_lang$virtual_dom$VirtualDom$attribute('preserveAlpha');var _elm_lang$svg$Svg_Attributes$pointsAtZ=_elm_lang$virtual_dom$VirtualDom$attribute('pointsAtZ');var _elm_lang$svg$Svg_Attributes$pointsAtY=_elm_lang$virtual_dom$VirtualDom$attribute('pointsAtY');var _elm_lang$svg$Svg_Attributes$pointsAtX=_elm_lang$virtual_dom$VirtualDom$attribute('pointsAtX');var _elm_lang$svg$Svg_Attributes$points=_elm_lang$virtual_dom$VirtualDom$attribute('points');var _elm_lang$svg$Svg_Attributes$pointOrder=_elm_lang$virtual_dom$VirtualDom$attribute('point-order');var _elm_lang$svg$Svg_Attributes$patternUnits=_elm_lang$virtual_dom$VirtualDom$attribute('patternUnits');var _elm_lang$svg$Svg_Attributes$patternTransform=_elm_lang$virtual_dom$VirtualDom$attribute('patternTransform');var _elm_lang$svg$Svg_Attributes$patternContentUnits=_elm_lang$virtual_dom$VirtualDom$attribute('patternContentUnits');var _elm_lang$svg$Svg_Attributes$pathLength=_elm_lang$virtual_dom$VirtualDom$attribute('pathLength');var _elm_lang$svg$Svg_Attributes$path=_elm_lang$virtual_dom$VirtualDom$attribute('path');var _elm_lang$svg$Svg_Attributes$panose1=_elm_lang$virtual_dom$VirtualDom$attribute('panose-1');var _elm_lang$svg$Svg_Attributes$overlineThickness=_elm_lang$virtual_dom$VirtualDom$attribute('overline-thickness');var _elm_lang$svg$Svg_Attributes$overlinePosition=_elm_lang$virtual_dom$VirtualDom$attribute('overline-position');var _elm_lang$svg$Svg_Attributes$origin=_elm_lang$virtual_dom$VirtualDom$attribute('origin');var _elm_lang$svg$Svg_Attributes$orientation=_elm_lang$virtual_dom$VirtualDom$attribute('orientation');var _elm_lang$svg$Svg_Attributes$orient=_elm_lang$virtual_dom$VirtualDom$attribute('orient');var _elm_lang$svg$Svg_Attributes$order=_elm_lang$virtual_dom$VirtualDom$attribute('order');var _elm_lang$svg$Svg_Attributes$operator=_elm_lang$virtual_dom$VirtualDom$attribute('operator');var _elm_lang$svg$Svg_Attributes$offset=_elm_lang$virtual_dom$VirtualDom$attribute('offset');var _elm_lang$svg$Svg_Attributes$numOctaves=_elm_lang$virtual_dom$VirtualDom$attribute('numOctaves');var _elm_lang$svg$Svg_Attributes$name=_elm_lang$virtual_dom$VirtualDom$attribute('name');var _elm_lang$svg$Svg_Attributes$mode=_elm_lang$virtual_dom$VirtualDom$attribute('mode');var _elm_lang$svg$Svg_Attributes$min=_elm_lang$virtual_dom$VirtualDom$attribute('min');var _elm_lang$svg$Svg_Attributes$method=_elm_lang$virtual_dom$VirtualDom$attribute('method');var _elm_lang$svg$Svg_Attributes$media=_elm_lang$virtual_dom$VirtualDom$attribute('media');var _elm_lang$svg$Svg_Attributes$max=_elm_lang$virtual_dom$VirtualDom$attribute('max');var _elm_lang$svg$Svg_Attributes$mathematical=_elm_lang$virtual_dom$VirtualDom$attribute('mathematical');var _elm_lang$svg$Svg_Attributes$maskUnits=_elm_lang$virtual_dom$VirtualDom$attribute('maskUnits');var _elm_lang$svg$Svg_Attributes$maskContentUnits=_elm_lang$virtual_dom$VirtualDom$attribute('maskContentUnits');var _elm_lang$svg$Svg_Attributes$markerWidth=_elm_lang$virtual_dom$VirtualDom$attribute('markerWidth');var _elm_lang$svg$Svg_Attributes$markerUnits=_elm_lang$virtual_dom$VirtualDom$attribute('markerUnits');var _elm_lang$svg$Svg_Attributes$markerHeight=_elm_lang$virtual_dom$VirtualDom$attribute('markerHeight');var _elm_lang$svg$Svg_Attributes$local=_elm_lang$virtual_dom$VirtualDom$attribute('local');var _elm_lang$svg$Svg_Attributes$limitingConeAngle=_elm_lang$virtual_dom$VirtualDom$attribute('limitingConeAngle');var _elm_lang$svg$Svg_Attributes$lengthAdjust=_elm_lang$virtual_dom$VirtualDom$attribute('lengthAdjust');var _elm_lang$svg$Svg_Attributes$lang=_elm_lang$virtual_dom$VirtualDom$attribute('lang');var _elm_lang$svg$Svg_Attributes$keyTimes=_elm_lang$virtual_dom$VirtualDom$attribute('keyTimes');var _elm_lang$svg$Svg_Attributes$keySplines=_elm_lang$virtual_dom$VirtualDom$attribute('keySplines');var _elm_lang$svg$Svg_Attributes$keyPoints=_elm_lang$virtual_dom$VirtualDom$attribute('keyPoints');var _elm_lang$svg$Svg_Attributes$kernelUnitLength=_elm_lang$virtual_dom$VirtualDom$attribute('kernelUnitLength');var _elm_lang$svg$Svg_Attributes$kernelMatrix=_elm_lang$virtual_dom$VirtualDom$attribute('kernelMatrix');var _elm_lang$svg$Svg_Attributes$k4=_elm_lang$virtual_dom$VirtualDom$attribute('k4');var _elm_lang$svg$Svg_Attributes$k3=_elm_lang$virtual_dom$VirtualDom$attribute('k3');var _elm_lang$svg$Svg_Attributes$k2=_elm_lang$virtual_dom$VirtualDom$attribute('k2');var _elm_lang$svg$Svg_Attributes$k1=_elm_lang$virtual_dom$VirtualDom$attribute('k1');var _elm_lang$svg$Svg_Attributes$k=_elm_lang$virtual_dom$VirtualDom$attribute('k');var _elm_lang$svg$Svg_Attributes$intercept=_elm_lang$virtual_dom$VirtualDom$attribute('intercept');var _elm_lang$svg$Svg_Attributes$in2=_elm_lang$virtual_dom$VirtualDom$attribute('in2');var _elm_lang$svg$Svg_Attributes$in_=_elm_lang$virtual_dom$VirtualDom$attribute('in');var _elm_lang$svg$Svg_Attributes$ideographic=_elm_lang$virtual_dom$VirtualDom$attribute('ideographic');var _elm_lang$svg$Svg_Attributes$id=_elm_lang$virtual_dom$VirtualDom$attribute('id');var _elm_lang$svg$Svg_Attributes$horizOriginY=_elm_lang$virtual_dom$VirtualDom$attribute('horiz-origin-y');var _elm_lang$svg$Svg_Attributes$horizOriginX=_elm_lang$virtual_dom$VirtualDom$attribute('horiz-origin-x');var _elm_lang$svg$Svg_Attributes$horizAdvX=_elm_lang$virtual_dom$VirtualDom$attribute('horiz-adv-x');var _elm_lang$svg$Svg_Attributes$height=_elm_lang$virtual_dom$VirtualDom$attribute('height');var _elm_lang$svg$Svg_Attributes$hanging=_elm_lang$virtual_dom$VirtualDom$attribute('hanging');var _elm_lang$svg$Svg_Attributes$gradientUnits=_elm_lang$virtual_dom$VirtualDom$attribute('gradientUnits');var _elm_lang$svg$Svg_Attributes$gradientTransform=_elm_lang$virtual_dom$VirtualDom$attribute('gradientTransform');var _elm_lang$svg$Svg_Attributes$glyphRef=_elm_lang$virtual_dom$VirtualDom$attribute('glyphRef');var _elm_lang$svg$Svg_Attributes$glyphName=_elm_lang$virtual_dom$VirtualDom$attribute('glyph-name');var _elm_lang$svg$Svg_Attributes$g2=_elm_lang$virtual_dom$VirtualDom$attribute('g2');var _elm_lang$svg$Svg_Attributes$g1=_elm_lang$virtual_dom$VirtualDom$attribute('g1');var _elm_lang$svg$Svg_Attributes$fy=_elm_lang$virtual_dom$VirtualDom$attribute('fy');var _elm_lang$svg$Svg_Attributes$fx=_elm_lang$virtual_dom$VirtualDom$attribute('fx');var _elm_lang$svg$Svg_Attributes$from=_elm_lang$virtual_dom$VirtualDom$attribute('from');var _elm_lang$svg$Svg_Attributes$format=_elm_lang$virtual_dom$VirtualDom$attribute('format');var _elm_lang$svg$Svg_Attributes$filterUnits=_elm_lang$virtual_dom$VirtualDom$attribute('filterUnits');var _elm_lang$svg$Svg_Attributes$filterRes=_elm_lang$virtual_dom$VirtualDom$attribute('filterRes');var _elm_lang$svg$Svg_Attributes$externalResourcesRequired=_elm_lang$virtual_dom$VirtualDom$attribute('externalResourcesRequired');var _elm_lang$svg$Svg_Attributes$exponent=_elm_lang$virtual_dom$VirtualDom$attribute('exponent');var _elm_lang$svg$Svg_Attributes$end=_elm_lang$virtual_dom$VirtualDom$attribute('end');var _elm_lang$svg$Svg_Attributes$elevation=_elm_lang$virtual_dom$VirtualDom$attribute('elevation');var _elm_lang$svg$Svg_Attributes$edgeMode=_elm_lang$virtual_dom$VirtualDom$attribute('edgeMode');var _elm_lang$svg$Svg_Attributes$dy=_elm_lang$virtual_dom$VirtualDom$attribute('dy');var _elm_lang$svg$Svg_Attributes$dx=_elm_lang$virtual_dom$VirtualDom$attribute('dx');var _elm_lang$svg$Svg_Attributes$dur=_elm_lang$virtual_dom$VirtualDom$attribute('dur');var _elm_lang$svg$Svg_Attributes$divisor=_elm_lang$virtual_dom$VirtualDom$attribute('divisor');var _elm_lang$svg$Svg_Attributes$diffuseConstant=_elm_lang$virtual_dom$VirtualDom$attribute('diffuseConstant');var _elm_lang$svg$Svg_Attributes$descent=_elm_lang$virtual_dom$VirtualDom$attribute('descent');var _elm_lang$svg$Svg_Attributes$decelerate=_elm_lang$virtual_dom$VirtualDom$attribute('decelerate');var _elm_lang$svg$Svg_Attributes$d=_elm_lang$virtual_dom$VirtualDom$attribute('d');var _elm_lang$svg$Svg_Attributes$cy=_elm_lang$virtual_dom$VirtualDom$attribute('cy');var _elm_lang$svg$Svg_Attributes$cx=_elm_lang$virtual_dom$VirtualDom$attribute('cx');var _elm_lang$svg$Svg_Attributes$contentStyleType=_elm_lang$virtual_dom$VirtualDom$attribute('contentStyleType');var _elm_lang$svg$Svg_Attributes$contentScriptType=_elm_lang$virtual_dom$VirtualDom$attribute('contentScriptType');var _elm_lang$svg$Svg_Attributes$clipPathUnits=_elm_lang$virtual_dom$VirtualDom$attribute('clipPathUnits');var _elm_lang$svg$Svg_Attributes$class=_elm_lang$virtual_dom$VirtualDom$attribute('class');var _elm_lang$svg$Svg_Attributes$capHeight=_elm_lang$virtual_dom$VirtualDom$attribute('cap-height');var _elm_lang$svg$Svg_Attributes$calcMode=_elm_lang$virtual_dom$VirtualDom$attribute('calcMode');var _elm_lang$svg$Svg_Attributes$by=_elm_lang$virtual_dom$VirtualDom$attribute('by');var _elm_lang$svg$Svg_Attributes$bias=_elm_lang$virtual_dom$VirtualDom$attribute('bias');var _elm_lang$svg$Svg_Attributes$begin=_elm_lang$virtual_dom$VirtualDom$attribute('begin');var _elm_lang$svg$Svg_Attributes$bbox=_elm_lang$virtual_dom$VirtualDom$attribute('bbox');var _elm_lang$svg$Svg_Attributes$baseProfile=_elm_lang$virtual_dom$VirtualDom$attribute('baseProfile');var _elm_lang$svg$Svg_Attributes$baseFrequency=_elm_lang$virtual_dom$VirtualDom$attribute('baseFrequency');var _elm_lang$svg$Svg_Attributes$azimuth=_elm_lang$virtual_dom$VirtualDom$attribute('azimuth');var _elm_lang$svg$Svg_Attributes$autoReverse=_elm_lang$virtual_dom$VirtualDom$attribute('autoReverse');var _elm_lang$svg$Svg_Attributes$attributeType=_elm_lang$virtual_dom$VirtualDom$attribute('attributeType');var _elm_lang$svg$Svg_Attributes$attributeName=_elm_lang$virtual_dom$VirtualDom$attribute('attributeName');var _elm_lang$svg$Svg_Attributes$ascent=_elm_lang$virtual_dom$VirtualDom$attribute('ascent');var _elm_lang$svg$Svg_Attributes$arabicForm=_elm_lang$virtual_dom$VirtualDom$attribute('arabic-form');var _elm_lang$svg$Svg_Attributes$amplitude=_elm_lang$virtual_dom$VirtualDom$attribute('amplitude');var _elm_lang$svg$Svg_Attributes$allowReorder=_elm_lang$virtual_dom$VirtualDom$attribute('allowReorder');var _elm_lang$svg$Svg_Attributes$alphabetic=_elm_lang$virtual_dom$VirtualDom$attribute('alphabetic');var _elm_lang$svg$Svg_Attributes$additive=_elm_lang$virtual_dom$VirtualDom$attribute('additive');var _elm_lang$svg$Svg_Attributes$accumulate=_elm_lang$virtual_dom$VirtualDom$attribute('accumulate');var _elm_lang$svg$Svg_Attributes$accelerate=_elm_lang$virtual_dom$VirtualDom$attribute('accelerate');var _elm_lang$svg$Svg_Attributes$accentHeight=_elm_lang$virtual_dom$VirtualDom$attribute('accent-height');var _evancz$url_parser$UrlParser$toKeyValuePair=function _evancz$url_parser$UrlParser$toKeyValuePair(segment){var _p0=A2(_elm_lang$core$String$split,'=',segment);if(_p0.ctor==='::'&&_p0._1.ctor==='::'&&_p0._1._1.ctor==='[]'){return A3(_elm_lang$core$Maybe$map2,F2(function(v0,v1){return{ctor:'_Tuple2',_0:v0,_1:v1};}),_elm_lang$http$Http$decodeUri(_p0._0),_elm_lang$http$Http$decodeUri(_p0._1._0));}else{return _elm_lang$core$Maybe$Nothing;}};var _evancz$url_parser$UrlParser$parseParams=function _evancz$url_parser$UrlParser$parseParams(queryString){return _elm_lang$core$Dict$fromList(A2(_elm_lang$core$List$filterMap,_evancz$url_parser$UrlParser$toKeyValuePair,A2(_elm_lang$core$String$split,'&',A2(_elm_lang$core$String$dropLeft,1,queryString))));};var _evancz$url_parser$UrlParser$splitUrl=function _evancz$url_parser$UrlParser$splitUrl(url){var _p1=A2(_elm_lang$core$String$split,'/',url);if(_p1.ctor==='::'&&_p1._0===''){return _p1._1;}else{return _p1;}};var _evancz$url_parser$UrlParser$parseHelp=function _evancz$url_parser$UrlParser$parseHelp(states){parseHelp:while(true){var _p2=states;if(_p2.ctor==='[]'){return _elm_lang$core$Maybe$Nothing;}else{var _p4=_p2._0;var _p3=_p4.unvisited;if(_p3.ctor==='[]'){return _elm_lang$core$Maybe$Just(_p4.value);}else{if(_p3._0===''&&_p3._1.ctor==='[]'){return _elm_lang$core$Maybe$Just(_p4.value);}else{var _v4=_p2._1;states=_v4;continue parseHelp;}}}}};var _evancz$url_parser$UrlParser$parse=F3(function(_p5,url,params){var _p6=_p5;return _evancz$url_parser$UrlParser$parseHelp(_p6._0({visited:{ctor:'[]'},unvisited:_evancz$url_parser$UrlParser$splitUrl(url),params:params,value:_elm_lang$core$Basics$identity}));});var _evancz$url_parser$UrlParser$parseHash=F2(function(parser,location){return A3(_evancz$url_parser$UrlParser$parse,parser,A2(_elm_lang$core$String$dropLeft,1,location.hash),_evancz$url_parser$UrlParser$parseParams(location.search));});var _evancz$url_parser$UrlParser$parsePath=F2(function(parser,location){return A3(_evancz$url_parser$UrlParser$parse,parser,location.pathname,_evancz$url_parser$UrlParser$parseParams(location.search));});var _evancz$url_parser$UrlParser$intParamHelp=function _evancz$url_parser$UrlParser$intParamHelp(maybeValue){var _p7=maybeValue;if(_p7.ctor==='Nothing'){return _elm_lang$core$Maybe$Nothing;}else{return _elm_lang$core$Result$toMaybe(_elm_lang$core$String$toInt(_p7._0));}};var _evancz$url_parser$UrlParser$mapHelp=F2(function(func,_p8){var _p9=_p8;return{visited:_p9.visited,unvisited:_p9.unvisited,params:_p9.params,value:func(_p9.value)};});var _evancz$url_parser$UrlParser$State=F4(function(a,b,c,d){return{visited:a,unvisited:b,params:c,value:d};});var _evancz$url_parser$UrlParser$Parser=function _evancz$url_parser$UrlParser$Parser(a){return{ctor:'Parser',_0:a};};var _evancz$url_parser$UrlParser$s=function _evancz$url_parser$UrlParser$s(str){return _evancz$url_parser$UrlParser$Parser(function(_p10){var _p11=_p10;var _p12=_p11.unvisited;if(_p12.ctor==='[]'){return{ctor:'[]'};}else{var _p13=_p12._0;return _elm_lang$core$Native_Utils.eq(_p13,str)?{ctor:'::',_0:A4(_evancz$url_parser$UrlParser$State,{ctor:'::',_0:_p13,_1:_p11.visited},_p12._1,_p11.params,_p11.value),_1:{ctor:'[]'}}:{ctor:'[]'};}});};var _evancz$url_parser$UrlParser$custom=F2(function(tipe,stringToSomething){return _evancz$url_parser$UrlParser$Parser(function(_p14){var _p15=_p14;var _p16=_p15.unvisited;if(_p16.ctor==='[]'){return{ctor:'[]'};}else{var _p18=_p16._0;var _p17=stringToSomething(_p18);if(_p17.ctor==='Ok'){return{ctor:'::',_0:A4(_evancz$url_parser$UrlParser$State,{ctor:'::',_0:_p18,_1:_p15.visited},_p16._1,_p15.params,_p15.value(_p17._0)),_1:{ctor:'[]'}};}else{return{ctor:'[]'};}}});});var _evancz$url_parser$UrlParser$string=A2(_evancz$url_parser$UrlParser$custom,'STRING',_elm_lang$core$Result$Ok);var _evancz$url_parser$UrlParser$int=A2(_evancz$url_parser$UrlParser$custom,'NUMBER',_elm_lang$core$String$toInt);var _evancz$url_parser$UrlParser_ops=_evancz$url_parser$UrlParser_ops||{};_evancz$url_parser$UrlParser_ops['</>']=F2(function(_p20,_p19){var _p21=_p20;var _p22=_p19;return _evancz$url_parser$UrlParser$Parser(function(state){return A2(_elm_lang$core$List$concatMap,_p22._0,_p21._0(state));});});var _evancz$url_parser$UrlParser$map=F2(function(subValue,_p23){var _p24=_p23;return _evancz$url_parser$UrlParser$Parser(function(_p25){var _p26=_p25;return A2(_elm_lang$core$List$map,_evancz$url_parser$UrlParser$mapHelp(_p26.value),_p24._0({visited:_p26.visited,unvisited:_p26.unvisited,params:_p26.params,value:subValue}));});});var _evancz$url_parser$UrlParser$oneOf=function _evancz$url_parser$UrlParser$oneOf(parsers){return _evancz$url_parser$UrlParser$Parser(function(state){return A2(_elm_lang$core$List$concatMap,function(_p27){var _p28=_p27;return _p28._0(state);},parsers);});};var _evancz$url_parser$UrlParser$top=_evancz$url_parser$UrlParser$Parser(function(state){return{ctor:'::',_0:state,_1:{ctor:'[]'}};});var _evancz$url_parser$UrlParser_ops=_evancz$url_parser$UrlParser_ops||{};_evancz$url_parser$UrlParser_ops['<?>']=F2(function(_p30,_p29){var _p31=_p30;var _p32=_p29;return _evancz$url_parser$UrlParser$Parser(function(state){return A2(_elm_lang$core$List$concatMap,_p32._0,_p31._0(state));});});var _evancz$url_parser$UrlParser$QueryParser=function _evancz$url_parser$UrlParser$QueryParser(a){return{ctor:'QueryParser',_0:a};};var _evancz$url_parser$UrlParser$customParam=F2(function(key,func){return _evancz$url_parser$UrlParser$QueryParser(function(_p33){var _p34=_p33;var _p35=_p34.params;return{ctor:'::',_0:A4(_evancz$url_parser$UrlParser$State,_p34.visited,_p34.unvisited,_p35,_p34.value(func(A2(_elm_lang$core$Dict$get,key,_p35)))),_1:{ctor:'[]'}};});});var _evancz$url_parser$UrlParser$stringParam=function _evancz$url_parser$UrlParser$stringParam(name){return A2(_evancz$url_parser$UrlParser$customParam,name,_elm_lang$core$Basics$identity);};var _evancz$url_parser$UrlParser$intParam=function _evancz$url_parser$UrlParser$intParam(name){return A2(_evancz$url_parser$UrlParser$customParam,name,_evancz$url_parser$UrlParser$intParamHelp);};var _mdgriffith$elm_style_animation$Animation_Model$matchPoints=F2(function(points1,points2){var diff=_elm_lang$core$List$length(points1)-_elm_lang$core$List$length(points2);if(_elm_lang$core$Native_Utils.cmp(diff,0)>0){var _p0=_elm_lang$core$List$head(_elm_lang$core$List$reverse(points2));if(_p0.ctor==='Nothing'){return{ctor:'_Tuple2',_0:points1,_1:points2};}else{return{ctor:'_Tuple2',_0:points1,_1:A2(_elm_lang$core$Basics_ops['++'],points2,A2(_elm_lang$core$List$repeat,_elm_lang$core$Basics$abs(diff),_p0._0))};}}else{if(_elm_lang$core$Native_Utils.cmp(diff,0)<0){var _p1=_elm_lang$core$List$head(_elm_lang$core$List$reverse(points1));if(_p1.ctor==='Nothing'){return{ctor:'_Tuple2',_0:points1,_1:points2};}else{return{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],points1,A2(_elm_lang$core$List$repeat,_elm_lang$core$Basics$abs(diff),_p1._0)),_1:points2};}}else{return{ctor:'_Tuple2',_0:points1,_1:points2};}}});var _mdgriffith$elm_style_animation$Animation_Model$vTolerance=0.1;var _mdgriffith$elm_style_animation$Animation_Model$tolerance=1.0e-2;var _mdgriffith$elm_style_animation$Animation_Model$isCmdDone=function _mdgriffith$elm_style_animation$Animation_Model$isCmdDone(cmd){var motionDone=function motionDone(motion){return _elm_lang$core$Native_Utils.eq(motion.velocity,0)&&_elm_lang$core$Native_Utils.eq(motion.position,motion.target);};var _p2=cmd;switch(_p2.ctor){case'Move':return motionDone(_p2._0)&&motionDone(_p2._1);case'MoveTo':return motionDone(_p2._0)&&motionDone(_p2._1);case'Line':return motionDone(_p2._0)&&motionDone(_p2._1);case'LineTo':return motionDone(_p2._0)&&motionDone(_p2._1);case'Horizontal':return motionDone(_p2._0);case'HorizontalTo':return motionDone(_p2._0);case'Vertical':return motionDone(_p2._0);case'VerticalTo':return motionDone(_p2._0);case'Curve':var _p5=_p2._0.point;var _p4=_p2._0.control2;var _p3=_p2._0.control1;return motionDone(_elm_lang$core$Tuple$first(_p3))&&motionDone(_elm_lang$core$Tuple$second(_p3))&&motionDone(_elm_lang$core$Tuple$first(_p4))&&motionDone(_elm_lang$core$Tuple$second(_p4))&&motionDone(_elm_lang$core$Tuple$first(_p5))&&motionDone(_elm_lang$core$Tuple$second(_p5));case'CurveTo':var _p8=_p2._0.point;var _p7=_p2._0.control2;var _p6=_p2._0.control1;return motionDone(_elm_lang$core$Tuple$first(_p6))&&motionDone(_elm_lang$core$Tuple$second(_p6))&&motionDone(_elm_lang$core$Tuple$first(_p7))&&motionDone(_elm_lang$core$Tuple$second(_p7))&&motionDone(_elm_lang$core$Tuple$first(_p8))&&motionDone(_elm_lang$core$Tuple$second(_p8));case'Quadratic':var _p10=_p2._0.point;var _p9=_p2._0.control;return motionDone(_elm_lang$core$Tuple$first(_p9))&&motionDone(_elm_lang$core$Tuple$second(_p9))&&motionDone(_elm_lang$core$Tuple$first(_p10))&&motionDone(_elm_lang$core$Tuple$second(_p10));case'QuadraticTo':var _p12=_p2._0.point;var _p11=_p2._0.control;return motionDone(_elm_lang$core$Tuple$first(_p11))&&motionDone(_elm_lang$core$Tuple$second(_p11))&&motionDone(_elm_lang$core$Tuple$first(_p12))&&motionDone(_elm_lang$core$Tuple$second(_p12));case'SmoothQuadratic':return A2(_elm_lang$core$List$all,function(_p13){var _p14=_p13;return motionDone(_p14._0)&&motionDone(_p14._1);},_p2._0);case'SmoothQuadraticTo':return A2(_elm_lang$core$List$all,function(_p15){var _p16=_p15;return motionDone(_p16._0)&&motionDone(_p16._1);},_p2._0);case'Smooth':return A2(_elm_lang$core$List$all,function(_p17){var _p18=_p17;return motionDone(_p18._0)&&motionDone(_p18._1);},_p2._0);case'SmoothTo':return A2(_elm_lang$core$List$all,function(_p19){var _p20=_p19;return motionDone(_p20._0)&&motionDone(_p20._1);},_p2._0);case'ClockwiseArc':var _p21=_p2._0;return motionDone(_p21.x)&&motionDone(_p21.y)&&motionDone(_p21.radius)&&motionDone(_p21.startAngle)&&motionDone(_p21.endAngle);case'AntiClockwiseArc':var _p22=_p2._0;return motionDone(_p22.x)&&motionDone(_p22.y)&&motionDone(_p22.radius)&&motionDone(_p22.startAngle)&&motionDone(_p22.endAngle);default:return true;}};var _mdgriffith$elm_style_animation$Animation_Model$isDone=function _mdgriffith$elm_style_animation$Animation_Model$isDone(property){var motionDone=function motionDone(motion){var _p23=motion.interpolation;switch(_p23.ctor){case'Spring':return _elm_lang$core$Native_Utils.eq(motion.velocity,0)&&_elm_lang$core$Native_Utils.eq(motion.position,motion.target);case'Easing':return _elm_lang$core$Native_Utils.eq(_p23._0.progress,1);default:return _elm_lang$core$Native_Utils.eq(motion.position,motion.target);}};var _p24=property;switch(_p24.ctor){case'ExactProperty':return true;case'ColorProperty':return A2(_elm_lang$core$List$all,motionDone,{ctor:'::',_0:_p24._1,_1:{ctor:'::',_0:_p24._2,_1:{ctor:'::',_0:_p24._3,_1:{ctor:'::',_0:_p24._4,_1:{ctor:'[]'}}}}});case'ShadowProperty':var _p25=_p24._2;return A2(_elm_lang$core$List$all,motionDone,{ctor:'::',_0:_p25.offsetX,_1:{ctor:'::',_0:_p25.offsetY,_1:{ctor:'::',_0:_p25.size,_1:{ctor:'::',_0:_p25.blur,_1:{ctor:'::',_0:_p25.red,_1:{ctor:'::',_0:_p25.green,_1:{ctor:'::',_0:_p25.blue,_1:{ctor:'::',_0:_p25.alpha,_1:{ctor:'[]'}}}}}}}}});case'Property':return motionDone(_p24._1);case'Property2':return motionDone(_p24._1)&&motionDone(_p24._2);case'Property3':return A2(_elm_lang$core$List$all,motionDone,{ctor:'::',_0:_p24._1,_1:{ctor:'::',_0:_p24._2,_1:{ctor:'::',_0:_p24._3,_1:{ctor:'[]'}}}});case'Property4':return A2(_elm_lang$core$List$all,motionDone,{ctor:'::',_0:_p24._1,_1:{ctor:'::',_0:_p24._2,_1:{ctor:'::',_0:_p24._3,_1:{ctor:'::',_0:_p24._4,_1:{ctor:'[]'}}}}});case'AngleProperty':return motionDone(_p24._1);case'Points':return A2(_elm_lang$core$List$all,function(_p26){var _p27=_p26;return motionDone(_p27._0)&&motionDone(_p27._1);},_p24._0);default:return A2(_elm_lang$core$List$all,_mdgriffith$elm_style_animation$Animation_Model$isCmdDone,_p24._0);}};var _mdgriffith$elm_style_animation$Animation_Model$refreshTiming=F2(function(now,timing){var dt=now-timing.current;return{current:now,dt:_elm_lang$core$Native_Utils.cmp(dt,34)>0||_elm_lang$core$Native_Utils.eq(timing.current,0)?16.666:dt};});var _mdgriffith$elm_style_animation$Animation_Model$propertyName=function _mdgriffith$elm_style_animation$Animation_Model$propertyName(prop){var _p28=prop;switch(_p28.ctor){case'ExactProperty':return _p28._0;case'ColorProperty':return _p28._0;case'ShadowProperty':return _p28._0;case'Property':return _p28._0;case'Property2':return _p28._0;case'Property3':return _p28._0;case'Property4':return _p28._0;case'AngleProperty':return _p28._0;case'Points':return'points';default:return'path';}};var _mdgriffith$elm_style_animation$Animation_Model$replaceProps=F2(function(props,replacements){var replacementNames=A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$propertyName,replacements);var removed=A2(_elm_lang$core$List$filter,function(prop){return!A2(_elm_lang$core$List$member,_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),replacementNames);},props);return A2(_elm_lang$core$Basics_ops['++'],removed,replacements);});var _mdgriffith$elm_style_animation$Animation_Model$zipPropertiesGreedy=F2(function(initialProps,newTargetProps){var propertyMatch=F2(function(prop1,prop2){return _elm_lang$core$Native_Utils.eq(_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop1),_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop2));});var _p29=A3(_elm_lang$core$List$foldl,F2(function(_p31,_p30){var _p32=_p30;var _p39=_p32._1;var _p38=_p32._0;var _p37=_p32._2;var _p33=_elm_lang$core$List$head(_p38);if(_p33.ctor==='Nothing'){return{ctor:'_Tuple3',_0:_p38,_1:_p39,_2:_p37};}else{var _p36=_p33._0;var _p34=A2(_elm_lang$core$List$partition,propertyMatch(_p36),_p39);var matchingBs=_p34._0;var nonMatchingBs=_p34._1;return{ctor:'_Tuple3',_0:A2(_elm_lang$core$List$drop,1,_p38),_1:function(){var _p35=matchingBs;if(_p35.ctor==='[]'){return nonMatchingBs;}else{return A2(_elm_lang$core$Basics_ops['++'],_p35._1,nonMatchingBs);}}(),_2:{ctor:'::',_0:{ctor:'_Tuple2',_0:_p36,_1:_elm_lang$core$List$head(matchingBs)},_1:_p37}};}}),{ctor:'_Tuple3',_0:initialProps,_1:newTargetProps,_2:{ctor:'[]'}},A2(_elm_lang$core$List$repeat,_elm_lang$core$List$length(initialProps),0));var warnings=_p29._1;var props=_p29._2;var _p40=A2(_elm_lang$core$List$map,function(b){return A2(_elm_lang$core$Debug$log,'elm-style-animation',A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation_Model$propertyName(b),' has no initial value and therefore will not be animated.'));},warnings);return _elm_lang$core$List$reverse(props);});var _mdgriffith$elm_style_animation$Animation_Model$Timing=F2(function(a,b){return{current:a,dt:b};});var _mdgriffith$elm_style_animation$Animation_Model$Motion=F6(function(a,b,c,d,e,f){return{position:a,velocity:b,target:c,interpolation:d,unit:e,interpolationOverride:f};});var _mdgriffith$elm_style_animation$Animation_Model$ShadowMotion=F8(function(a,b,c,d,e,f,g,h){return{offsetX:a,offsetY:b,size:c,blur:d,red:e,green:f,blue:g,alpha:h};});var _mdgriffith$elm_style_animation$Animation_Model$CubicCurveMotion=F3(function(a,b,c){return{control1:a,control2:b,point:c};});var _mdgriffith$elm_style_animation$Animation_Model$QuadraticCurveMotion=F2(function(a,b){return{control:a,point:b};});var _mdgriffith$elm_style_animation$Animation_Model$ArcMotion=F5(function(a,b,c,d,e){return{x:a,y:b,radius:c,startAngle:d,endAngle:e};});var _mdgriffith$elm_style_animation$Animation_Model$Animation=function _mdgriffith$elm_style_animation$Animation_Model$Animation(a){return{ctor:'Animation',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Tick=function _mdgriffith$elm_style_animation$Animation_Model$Tick(a){return{ctor:'Tick',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Loop=function _mdgriffith$elm_style_animation$Animation_Model$Loop(a){return{ctor:'Loop',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Repeat=F2(function(a,b){return{ctor:'Repeat',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$Send=function _mdgriffith$elm_style_animation$Animation_Model$Send(a){return{ctor:'Send',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Wait=function _mdgriffith$elm_style_animation$Animation_Model$Wait(a){return{ctor:'Wait',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Set=function _mdgriffith$elm_style_animation$Animation_Model$Set(a){return{ctor:'Set',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$ToWith=function _mdgriffith$elm_style_animation$Animation_Model$ToWith(a){return{ctor:'ToWith',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$To=function _mdgriffith$elm_style_animation$Animation_Model$To(a){return{ctor:'To',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Step={ctor:'Step'};var _mdgriffith$elm_style_animation$Animation_Model$AtSpeed=function _mdgriffith$elm_style_animation$Animation_Model$AtSpeed(a){return{ctor:'AtSpeed',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Easing=function _mdgriffith$elm_style_animation$Animation_Model$Easing(a){return{ctor:'Easing',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$stepInterpolation=F2(function(dtms,motion){var interpolationToUse=A2(_elm_lang$core$Maybe$withDefault,motion.interpolation,motion.interpolationOverride);var _p41=interpolationToUse;switch(_p41.ctor){case'AtSpeed':var _p43=_p41._0.perSecond;var _p42=function(){if(_elm_lang$core$Native_Utils.cmp(motion.position,motion.target)<0){var $new=motion.position+_p43*(dtms/1000);return{ctor:'_Tuple2',_0:$new,_1:_elm_lang$core$Native_Utils.cmp($new,motion.target)>-1};}else{var $new=motion.position-_p43*(dtms/1000);return{ctor:'_Tuple2',_0:$new,_1:_elm_lang$core$Native_Utils.cmp($new,motion.target)<1};}}();var newPos=_p42._0;var finished=_p42._1;return finished?_elm_lang$core$Native_Utils.update(motion,{position:motion.target,velocity:0.0}):_elm_lang$core$Native_Utils.update(motion,{position:newPos,velocity:_p43*1000});case'Spring':var fdamper=-1*_p41._0.damping*motion.velocity;var fspring=_p41._0.stiffness*(motion.target-motion.position);var a=fspring+fdamper;var dt=dtms/1000;var newVelocity=motion.velocity+a*dt;var newPos=motion.position+newVelocity*dt;var dx=_elm_lang$core$Basics$abs(motion.target-newPos);return _elm_lang$core$Native_Utils.cmp(dx,_mdgriffith$elm_style_animation$Animation_Model$tolerance)<0&&_elm_lang$core$Native_Utils.cmp(_elm_lang$core$Basics$abs(newVelocity),_mdgriffith$elm_style_animation$Animation_Model$vTolerance)<0?_elm_lang$core$Native_Utils.update(motion,{position:motion.target,velocity:0.0}):_elm_lang$core$Native_Utils.update(motion,{position:newPos,velocity:newVelocity});default:var _p48=_p41._0.start;var _p47=_p41._0.progress;var _p46=_p41._0.ease;var _p45=_p41._0.duration;var distance=motion.target-_p48;var newProgress=_elm_lang$core$Native_Utils.cmp(dtms/_p45+_p47,1)<0?dtms/_p45+_p47:1;var eased=_p46(newProgress);var newPos=eased*distance+_p48;var newVelocity=_elm_lang$core$Native_Utils.eq(newProgress,1)?0:(newPos-motion.position)/dtms;var _p44=motion.interpolationOverride;if(_p44.ctor==='Nothing'){return _elm_lang$core$Native_Utils.update(motion,{position:newPos,velocity:newVelocity,interpolation:_mdgriffith$elm_style_animation$Animation_Model$Easing({progress:newProgress,duration:_p45,ease:_p46,start:_p48})});}else{return _elm_lang$core$Native_Utils.update(motion,{position:newPos,velocity:newVelocity,interpolationOverride:_elm_lang$core$Maybe$Just(_mdgriffith$elm_style_animation$Animation_Model$Easing({progress:newProgress,duration:_p45,ease:_p46,start:_p48}))});}}});var _mdgriffith$elm_style_animation$Animation_Model$Spring=function _mdgriffith$elm_style_animation$Animation_Model$Spring(a){return{ctor:'Spring',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Path=function _mdgriffith$elm_style_animation$Animation_Model$Path(a){return{ctor:'Path',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Points=function _mdgriffith$elm_style_animation$Animation_Model$Points(a){return{ctor:'Points',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$AngleProperty=F2(function(a,b){return{ctor:'AngleProperty',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$Property4=F5(function(a,b,c,d,e){return{ctor:'Property4',_0:a,_1:b,_2:c,_3:d,_4:e};});var _mdgriffith$elm_style_animation$Animation_Model$Property3=F4(function(a,b,c,d){return{ctor:'Property3',_0:a,_1:b,_2:c,_3:d};});var _mdgriffith$elm_style_animation$Animation_Model$Property2=F3(function(a,b,c){return{ctor:'Property2',_0:a,_1:b,_2:c};});var _mdgriffith$elm_style_animation$Animation_Model$Property=F2(function(a,b){return{ctor:'Property',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$ShadowProperty=F3(function(a,b,c){return{ctor:'ShadowProperty',_0:a,_1:b,_2:c};});var _mdgriffith$elm_style_animation$Animation_Model$ColorProperty=F5(function(a,b,c,d,e){return{ctor:'ColorProperty',_0:a,_1:b,_2:c,_3:d,_4:e};});var _mdgriffith$elm_style_animation$Animation_Model$ExactProperty=F2(function(a,b){return{ctor:'ExactProperty',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$Close={ctor:'Close'};var _mdgriffith$elm_style_animation$Animation_Model$AntiClockwiseArc=function _mdgriffith$elm_style_animation$Animation_Model$AntiClockwiseArc(a){return{ctor:'AntiClockwiseArc',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$ClockwiseArc=function _mdgriffith$elm_style_animation$Animation_Model$ClockwiseArc(a){return{ctor:'ClockwiseArc',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$SmoothTo=function _mdgriffith$elm_style_animation$Animation_Model$SmoothTo(a){return{ctor:'SmoothTo',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Smooth=function _mdgriffith$elm_style_animation$Animation_Model$Smooth(a){return{ctor:'Smooth',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadraticTo=function _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadraticTo(a){return{ctor:'SmoothQuadraticTo',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadratic=function _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadratic(a){return{ctor:'SmoothQuadratic',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$QuadraticTo=function _mdgriffith$elm_style_animation$Animation_Model$QuadraticTo(a){return{ctor:'QuadraticTo',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Quadratic=function _mdgriffith$elm_style_animation$Animation_Model$Quadratic(a){return{ctor:'Quadratic',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$CurveTo=function _mdgriffith$elm_style_animation$Animation_Model$CurveTo(a){return{ctor:'CurveTo',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Curve=function _mdgriffith$elm_style_animation$Animation_Model$Curve(a){return{ctor:'Curve',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$VerticalTo=function _mdgriffith$elm_style_animation$Animation_Model$VerticalTo(a){return{ctor:'VerticalTo',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Vertical=function _mdgriffith$elm_style_animation$Animation_Model$Vertical(a){return{ctor:'Vertical',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$HorizontalTo=function _mdgriffith$elm_style_animation$Animation_Model$HorizontalTo(a){return{ctor:'HorizontalTo',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$Horizontal=function _mdgriffith$elm_style_animation$Animation_Model$Horizontal(a){return{ctor:'Horizontal',_0:a};};var _mdgriffith$elm_style_animation$Animation_Model$LineTo=F2(function(a,b){return{ctor:'LineTo',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$Line=F2(function(a,b){return{ctor:'Line',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$MoveTo=F2(function(a,b){return{ctor:'MoveTo',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$Move=F2(function(a,b){return{ctor:'Move',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation_Model$mapPathMotion=F2(function(fn,cmd){var mapCoords=function mapCoords(coords){return A2(_elm_lang$core$List$map,function(_p49){var _p50=_p49;return{ctor:'_Tuple2',_0:fn(_p50._0),_1:fn(_p50._1)};},coords);};var _p51=cmd;switch(_p51.ctor){case'Move':return A2(_mdgriffith$elm_style_animation$Animation_Model$Move,fn(_p51._0),fn(_p51._1));case'MoveTo':return A2(_mdgriffith$elm_style_animation$Animation_Model$MoveTo,fn(_p51._0),fn(_p51._1));case'Line':return A2(_mdgriffith$elm_style_animation$Animation_Model$Line,fn(_p51._0),fn(_p51._1));case'LineTo':return A2(_mdgriffith$elm_style_animation$Animation_Model$LineTo,fn(_p51._0),fn(_p51._1));case'Horizontal':return _mdgriffith$elm_style_animation$Animation_Model$Horizontal(fn(_p51._0));case'HorizontalTo':return _mdgriffith$elm_style_animation$Animation_Model$HorizontalTo(fn(_p51._0));case'Vertical':return _mdgriffith$elm_style_animation$Animation_Model$Vertical(fn(_p51._0));case'VerticalTo':return _mdgriffith$elm_style_animation$Animation_Model$VerticalTo(fn(_p51._0));case'Curve':var _p54=_p51._0.point;var _p53=_p51._0.control2;var _p52=_p51._0.control1;return _mdgriffith$elm_style_animation$Animation_Model$Curve({control1:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p52)),_1:fn(_elm_lang$core$Tuple$second(_p52))},control2:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p53)),_1:fn(_elm_lang$core$Tuple$second(_p53))},point:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p54)),_1:fn(_elm_lang$core$Tuple$second(_p54))}});case'CurveTo':var _p57=_p51._0.point;var _p56=_p51._0.control2;var _p55=_p51._0.control1;return _mdgriffith$elm_style_animation$Animation_Model$CurveTo({control1:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p55)),_1:fn(_elm_lang$core$Tuple$second(_p55))},control2:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p56)),_1:fn(_elm_lang$core$Tuple$second(_p56))},point:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p57)),_1:fn(_elm_lang$core$Tuple$second(_p57))}});case'Quadratic':var _p59=_p51._0.point;var _p58=_p51._0.control;return _mdgriffith$elm_style_animation$Animation_Model$Quadratic({control:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p58)),_1:fn(_elm_lang$core$Tuple$second(_p58))},point:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p59)),_1:fn(_elm_lang$core$Tuple$second(_p59))}});case'QuadraticTo':var _p61=_p51._0.point;var _p60=_p51._0.control;return _mdgriffith$elm_style_animation$Animation_Model$QuadraticTo({control:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p60)),_1:fn(_elm_lang$core$Tuple$second(_p60))},point:{ctor:'_Tuple2',_0:fn(_elm_lang$core$Tuple$first(_p61)),_1:fn(_elm_lang$core$Tuple$second(_p61))}});case'SmoothQuadratic':return _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadratic(mapCoords(_p51._0));case'SmoothQuadraticTo':return _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadraticTo(mapCoords(_p51._0));case'Smooth':return _mdgriffith$elm_style_animation$Animation_Model$Smooth(mapCoords(_p51._0));case'SmoothTo':return _mdgriffith$elm_style_animation$Animation_Model$SmoothTo(mapCoords(_p51._0));case'ClockwiseArc':var _p62=_p51._0;return _mdgriffith$elm_style_animation$Animation_Model$ClockwiseArc(function(){var endAngle=_p62.endAngle;var startAngle=_p62.startAngle;var radius=_p62.radius;var y=_p62.y;var x=_p62.x;return _elm_lang$core$Native_Utils.update(_p62,{x:fn(x),y:fn(y),radius:fn(radius),startAngle:fn(startAngle),endAngle:fn(endAngle)});}());case'AntiClockwiseArc':var _p63=_p51._0;return _mdgriffith$elm_style_animation$Animation_Model$AntiClockwiseArc(function(){var endAngle=_p63.endAngle;var startAngle=_p63.startAngle;var radius=_p63.radius;var y=_p63.y;var x=_p63.x;return _elm_lang$core$Native_Utils.update(_p63,{x:fn(x),y:fn(y),radius:fn(radius),startAngle:fn(startAngle),endAngle:fn(endAngle)});}());default:return _mdgriffith$elm_style_animation$Animation_Model$Close;}});var _mdgriffith$elm_style_animation$Animation_Model$mapToMotion=F2(function(fn,prop){var _p64=prop;switch(_p64.ctor){case'ExactProperty':return A2(_mdgriffith$elm_style_animation$Animation_Model$ExactProperty,_p64._0,_p64._1);case'ColorProperty':return A5(_mdgriffith$elm_style_animation$Animation_Model$ColorProperty,_p64._0,fn(_p64._1),fn(_p64._2),fn(_p64._3),fn(_p64._4));case'ShadowProperty':var _p65=_p64._2;var alpha=_p65.alpha;var blue=_p65.blue;var green=_p65.green;var red=_p65.red;var blur=_p65.blur;var size=_p65.size;var offsetY=_p65.offsetY;var offsetX=_p65.offsetX;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,_p64._0,_p64._1,{offsetX:fn(offsetX),offsetY:fn(offsetY),size:fn(size),blur:fn(blur),red:fn(red),green:fn(green),blue:fn(blue),alpha:fn(alpha)});case'Property':return A2(_mdgriffith$elm_style_animation$Animation_Model$Property,_p64._0,fn(_p64._1));case'Property2':return A3(_mdgriffith$elm_style_animation$Animation_Model$Property2,_p64._0,fn(_p64._1),fn(_p64._2));case'Property3':return A4(_mdgriffith$elm_style_animation$Animation_Model$Property3,_p64._0,fn(_p64._1),fn(_p64._2),fn(_p64._3));case'Property4':return A5(_mdgriffith$elm_style_animation$Animation_Model$Property4,_p64._0,fn(_p64._1),fn(_p64._2),fn(_p64._3),fn(_p64._4));case'AngleProperty':return A2(_mdgriffith$elm_style_animation$Animation_Model$AngleProperty,_p64._0,fn(_p64._1));case'Points':return _mdgriffith$elm_style_animation$Animation_Model$Points(A2(_elm_lang$core$List$map,function(_p66){var _p67=_p66;return{ctor:'_Tuple2',_0:fn(_p67._0),_1:fn(_p67._1)};},_p64._0));default:return _mdgriffith$elm_style_animation$Animation_Model$Path(A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$mapPathMotion(fn),_p64._0));}});var _mdgriffith$elm_style_animation$Animation_Model$setPathTarget=F2(function(cmd,targetCmd){var setMotionTarget=F2(function(motion,targetMotion){var _p68=motion.interpolation;if(_p68.ctor==='Easing'){return _elm_lang$core$Native_Utils.update(motion,{target:targetMotion.position,interpolation:_mdgriffith$elm_style_animation$Animation_Model$Easing(_elm_lang$core$Native_Utils.update(_p68._0,{start:motion.position}))});}else{return _elm_lang$core$Native_Utils.update(motion,{target:targetMotion.position});}});var _p69=cmd;switch(_p69.ctor){case'Move':var _p70=targetCmd;if(_p70.ctor==='Move'){return A2(_mdgriffith$elm_style_animation$Animation_Model$Move,A2(setMotionTarget,_p69._0,_p70._0),A2(setMotionTarget,_p69._1,_p70._1));}else{return cmd;}case'MoveTo':var _p71=targetCmd;if(_p71.ctor==='MoveTo'){return A2(_mdgriffith$elm_style_animation$Animation_Model$MoveTo,A2(setMotionTarget,_p69._0,_p71._0),A2(setMotionTarget,_p69._1,_p71._1));}else{return cmd;}case'Line':var _p72=targetCmd;if(_p72.ctor==='Line'){return A2(_mdgriffith$elm_style_animation$Animation_Model$Line,A2(setMotionTarget,_p69._0,_p72._0),A2(setMotionTarget,_p69._1,_p72._1));}else{return cmd;}case'LineTo':var _p73=targetCmd;if(_p73.ctor==='LineTo'){return A2(_mdgriffith$elm_style_animation$Animation_Model$LineTo,A2(setMotionTarget,_p69._0,_p73._0),A2(setMotionTarget,_p69._1,_p73._1));}else{return cmd;}case'Horizontal':var _p74=targetCmd;if(_p74.ctor==='Horizontal'){return _mdgriffith$elm_style_animation$Animation_Model$Horizontal(A2(setMotionTarget,_p69._0,_p74._0));}else{return cmd;}case'HorizontalTo':var _p75=targetCmd;if(_p75.ctor==='HorizontalTo'){return _mdgriffith$elm_style_animation$Animation_Model$HorizontalTo(A2(setMotionTarget,_p69._0,_p75._0));}else{return cmd;}case'Vertical':var _p76=targetCmd;if(_p76.ctor==='Vertical'){return _mdgriffith$elm_style_animation$Animation_Model$Vertical(A2(setMotionTarget,_p69._0,_p76._0));}else{return cmd;}case'VerticalTo':var _p77=targetCmd;if(_p77.ctor==='VerticalTo'){return _mdgriffith$elm_style_animation$Animation_Model$VerticalTo(A2(setMotionTarget,_p69._0,_p77._0));}else{return cmd;}case'Curve':var _p80=_p69._0;var _p78=targetCmd;if(_p78.ctor==='Curve'){var _p79=_p78._0;return _mdgriffith$elm_style_animation$Animation_Model$Curve({control1:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p80.control1),_elm_lang$core$Tuple$first(_p79.control1)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p80.control1),_elm_lang$core$Tuple$second(_p79.control1))},control2:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p80.control2),_elm_lang$core$Tuple$first(_p79.control2)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p80.control2),_elm_lang$core$Tuple$second(_p79.control2))},point:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p80.point),_elm_lang$core$Tuple$first(_p79.point)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p80.point),_elm_lang$core$Tuple$second(_p79.point))}});}else{return cmd;}case'CurveTo':var _p83=_p69._0;var _p81=targetCmd;if(_p81.ctor==='CurveTo'){var _p82=_p81._0;return _mdgriffith$elm_style_animation$Animation_Model$CurveTo({control1:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p83.control1),_elm_lang$core$Tuple$first(_p82.control1)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p83.control1),_elm_lang$core$Tuple$second(_p82.control1))},control2:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p83.control2),_elm_lang$core$Tuple$first(_p82.control2)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p83.control2),_elm_lang$core$Tuple$second(_p82.control2))},point:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p83.point),_elm_lang$core$Tuple$first(_p82.point)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p83.point),_elm_lang$core$Tuple$second(_p82.point))}});}else{return cmd;}case'Quadratic':var _p86=_p69._0;var _p84=targetCmd;if(_p84.ctor==='Quadratic'){var _p85=_p84._0;return _mdgriffith$elm_style_animation$Animation_Model$Quadratic({control:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p86.control),_elm_lang$core$Tuple$first(_p85.control)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p86.control),_elm_lang$core$Tuple$second(_p85.control))},point:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p86.point),_elm_lang$core$Tuple$first(_p85.point)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p86.point),_elm_lang$core$Tuple$second(_p85.point))}});}else{return cmd;}case'QuadraticTo':var _p89=_p69._0;var _p87=targetCmd;if(_p87.ctor==='QuadraticTo'){var _p88=_p87._0;return _mdgriffith$elm_style_animation$Animation_Model$QuadraticTo({control:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p89.control),_elm_lang$core$Tuple$first(_p88.control)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p89.control),_elm_lang$core$Tuple$second(_p88.control))},point:{ctor:'_Tuple2',_0:A2(setMotionTarget,_elm_lang$core$Tuple$first(_p89.point),_elm_lang$core$Tuple$first(_p88.point)),_1:A2(setMotionTarget,_elm_lang$core$Tuple$second(_p89.point),_elm_lang$core$Tuple$second(_p88.point))}});}else{return cmd;}case'SmoothQuadratic':var _p90=targetCmd;if(_p90.ctor==='SmoothQuadratic'){return _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadratic(A3(_elm_lang$core$List$map2,F2(function(_p92,_p91){var _p93=_p92;var _p94=_p91;return{ctor:'_Tuple2',_0:A2(setMotionTarget,_p93._0,_p94._0),_1:A2(setMotionTarget,_p93._1,_p94._1)};}),_p69._0,_p90._0));}else{return cmd;}case'SmoothQuadraticTo':var _p95=targetCmd;if(_p95.ctor==='SmoothQuadraticTo'){return _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadraticTo(A3(_elm_lang$core$List$map2,F2(function(_p97,_p96){var _p98=_p97;var _p99=_p96;return{ctor:'_Tuple2',_0:A2(setMotionTarget,_p98._0,_p99._0),_1:A2(setMotionTarget,_p98._1,_p99._1)};}),_p69._0,_p95._0));}else{return cmd;}case'Smooth':var _p100=targetCmd;if(_p100.ctor==='Smooth'){return _mdgriffith$elm_style_animation$Animation_Model$Smooth(A3(_elm_lang$core$List$map2,F2(function(_p102,_p101){var _p103=_p102;var _p104=_p101;return{ctor:'_Tuple2',_0:A2(setMotionTarget,_p103._0,_p104._0),_1:A2(setMotionTarget,_p103._1,_p104._1)};}),_p69._0,_p100._0));}else{return cmd;}case'SmoothTo':var _p105=targetCmd;if(_p105.ctor==='SmoothTo'){return _mdgriffith$elm_style_animation$Animation_Model$SmoothTo(A3(_elm_lang$core$List$map2,F2(function(_p107,_p106){var _p108=_p107;var _p109=_p106;return{ctor:'_Tuple2',_0:A2(setMotionTarget,_p108._0,_p109._0),_1:A2(setMotionTarget,_p108._1,_p109._1)};}),_p69._0,_p105._0));}else{return cmd;}case'ClockwiseArc':var _p112=_p69._0;var _p110=targetCmd;if(_p110.ctor==='ClockwiseArc'){var _p111=_p110._0;return _mdgriffith$elm_style_animation$Animation_Model$ClockwiseArc(function(){var endAngle=_p112.endAngle;var startAngle=_p112.startAngle;var radius=_p112.radius;var y=_p112.y;var x=_p112.x;return _elm_lang$core$Native_Utils.update(_p112,{x:A2(setMotionTarget,x,_p111.x),y:A2(setMotionTarget,y,_p111.y),radius:A2(setMotionTarget,radius,_p111.radius),startAngle:A2(setMotionTarget,startAngle,_p111.startAngle),endAngle:A2(setMotionTarget,endAngle,_p111.endAngle)});}());}else{return cmd;}case'AntiClockwiseArc':var _p115=_p69._0;var _p113=targetCmd;if(_p113.ctor==='AntiClockwiseArc'){var _p114=_p113._0;return _mdgriffith$elm_style_animation$Animation_Model$AntiClockwiseArc(function(){var endAngle=_p115.endAngle;var startAngle=_p115.startAngle;var radius=_p115.radius;var y=_p115.y;var x=_p115.x;return _elm_lang$core$Native_Utils.update(_p115,{x:A2(setMotionTarget,x,_p114.x),y:A2(setMotionTarget,y,_p114.y),radius:A2(setMotionTarget,radius,_p114.radius),startAngle:A2(setMotionTarget,startAngle,_p114.startAngle),endAngle:A2(setMotionTarget,endAngle,_p114.endAngle)});}());}else{return cmd;}default:return _mdgriffith$elm_style_animation$Animation_Model$Close;}});var _mdgriffith$elm_style_animation$Animation_Model$setTarget=F3(function(overrideInterpolation,current,newTarget){var setMotionTarget=F2(function(motion,targetMotion){var newMotion=overrideInterpolation?_elm_lang$core$Native_Utils.update(motion,{interpolationOverride:_elm_lang$core$Maybe$Just(targetMotion.interpolation)}):motion;var _p116=newMotion.interpolationOverride;if(_p116.ctor==='Nothing'){var _p117=newMotion.interpolation;if(_p117.ctor==='Easing'){return _elm_lang$core$Native_Utils.update(newMotion,{target:targetMotion.position,interpolation:_mdgriffith$elm_style_animation$Animation_Model$Easing(_elm_lang$core$Native_Utils.update(_p117._0,{start:motion.position,progress:0}))});}else{return _elm_lang$core$Native_Utils.update(newMotion,{target:targetMotion.position});}}else{var _p118=_p116._0;if(_p118.ctor==='Easing'){return _elm_lang$core$Native_Utils.update(newMotion,{target:targetMotion.position,interpolationOverride:_elm_lang$core$Maybe$Just(_mdgriffith$elm_style_animation$Animation_Model$Easing(_elm_lang$core$Native_Utils.update(_p118._0,{start:motion.position,progress:0})))});}else{return _elm_lang$core$Native_Utils.update(newMotion,{target:targetMotion.position});}}});var _p119=current;switch(_p119.ctor){case'ExactProperty':return A2(_mdgriffith$elm_style_animation$Animation_Model$ExactProperty,_p119._0,_p119._1);case'ColorProperty':var _p120=newTarget;if(_p120.ctor==='ColorProperty'){return A5(_mdgriffith$elm_style_animation$Animation_Model$ColorProperty,_p119._0,A2(setMotionTarget,_p119._1,_p120._1),A2(setMotionTarget,_p119._2,_p120._2),A2(setMotionTarget,_p119._3,_p120._3),A2(setMotionTarget,_p119._4,_p120._4));}else{return current;}case'ShadowProperty':var _p123=_p119._2;var _p121=newTarget;if(_p121.ctor==='ShadowProperty'){var _p122=_p121._2;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,_p119._0,_p119._1,{offsetX:A2(setMotionTarget,_p123.offsetX,_p122.offsetX),offsetY:A2(setMotionTarget,_p123.offsetY,_p122.offsetY),size:A2(setMotionTarget,_p123.size,_p122.size),blur:A2(setMotionTarget,_p123.blur,_p122.blur),red:A2(setMotionTarget,_p123.red,_p122.red),green:A2(setMotionTarget,_p123.green,_p122.green),blue:A2(setMotionTarget,_p123.blue,_p122.blue),alpha:A2(setMotionTarget,_p123.alpha,_p122.alpha)});}else{return current;}case'Property':var _p124=newTarget;if(_p124.ctor==='Property'){return A2(_mdgriffith$elm_style_animation$Animation_Model$Property,_p119._0,A2(setMotionTarget,_p119._1,_p124._1));}else{return current;}case'Property2':var _p125=newTarget;if(_p125.ctor==='Property2'){return A3(_mdgriffith$elm_style_animation$Animation_Model$Property2,_p119._0,A2(setMotionTarget,_p119._1,_p125._1),A2(setMotionTarget,_p119._2,_p125._2));}else{return current;}case'Property3':var _p126=newTarget;if(_p126.ctor==='Property3'){return A4(_mdgriffith$elm_style_animation$Animation_Model$Property3,_p119._0,A2(setMotionTarget,_p119._1,_p126._1),A2(setMotionTarget,_p119._2,_p126._2),A2(setMotionTarget,_p119._3,_p126._3));}else{return current;}case'Property4':var _p127=newTarget;if(_p127.ctor==='Property4'){return A5(_mdgriffith$elm_style_animation$Animation_Model$Property4,_p119._0,A2(setMotionTarget,_p119._1,_p127._1),A2(setMotionTarget,_p119._2,_p127._2),A2(setMotionTarget,_p119._3,_p127._3),A2(setMotionTarget,_p119._4,_p127._4));}else{return current;}case'AngleProperty':var _p128=newTarget;if(_p128.ctor==='AngleProperty'){return A2(_mdgriffith$elm_style_animation$Animation_Model$AngleProperty,_p119._0,A2(setMotionTarget,_p119._1,_p128._1));}else{return current;}case'Points':var _p129=newTarget;if(_p129.ctor==='Points'){var _p130=A2(_mdgriffith$elm_style_animation$Animation_Model$matchPoints,_p119._0,_p129._0);var m1s=_p130._0;var m2s=_p130._1;return _mdgriffith$elm_style_animation$Animation_Model$Points(A3(_elm_lang$core$List$map2,F2(function(_p132,_p131){var _p133=_p132;var _p134=_p131;return{ctor:'_Tuple2',_0:A2(setMotionTarget,_p133._0,_p134._0),_1:A2(setMotionTarget,_p133._1,_p134._1)};}),m1s,m2s));}else{return current;}default:var _p135=newTarget;if(_p135.ctor==='Path'){return _mdgriffith$elm_style_animation$Animation_Model$Path(A3(_elm_lang$core$List$map2,_mdgriffith$elm_style_animation$Animation_Model$setPathTarget,_p119._0,_p135._0));}else{return current;}}});var _mdgriffith$elm_style_animation$Animation_Model$startTowards=F3(function(overrideInterpolation,current,target){return A2(_elm_lang$core$List$filterMap,function(propPair){var _p136=propPair;if(_p136._1.ctor==='Just'){return _elm_lang$core$Maybe$Just(A3(_mdgriffith$elm_style_animation$Animation_Model$setTarget,overrideInterpolation,_p136._0,_p136._1._0));}else{return _elm_lang$core$Maybe$Just(_p136._0);}},A2(_mdgriffith$elm_style_animation$Animation_Model$zipPropertiesGreedy,current,target));});var _mdgriffith$elm_style_animation$Animation_Model$stepPath=F2(function(dt,cmd){var stepCoords=function stepCoords(coords){return A2(_elm_lang$core$List$map,function(_p137){var _p138=_p137;return{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p138._0),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p138._1)};},coords);};var _p139=cmd;switch(_p139.ctor){case'Move':return A2(_mdgriffith$elm_style_animation$Animation_Model$Move,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._1));case'MoveTo':return A2(_mdgriffith$elm_style_animation$Animation_Model$MoveTo,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._1));case'Line':return A2(_mdgriffith$elm_style_animation$Animation_Model$Line,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._1));case'LineTo':return A2(_mdgriffith$elm_style_animation$Animation_Model$LineTo,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._1));case'Horizontal':return _mdgriffith$elm_style_animation$Animation_Model$Horizontal(A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0));case'HorizontalTo':return _mdgriffith$elm_style_animation$Animation_Model$HorizontalTo(A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0));case'Vertical':return _mdgriffith$elm_style_animation$Animation_Model$Vertical(A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0));case'VerticalTo':return _mdgriffith$elm_style_animation$Animation_Model$VerticalTo(A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p139._0));case'Curve':var _p142=_p139._0.point;var _p141=_p139._0.control2;var _p140=_p139._0.control1;return _mdgriffith$elm_style_animation$Animation_Model$Curve({control1:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p140)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p140))},control2:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p141)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p141))},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p142)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p142))}});case'CurveTo':var _p145=_p139._0.point;var _p144=_p139._0.control2;var _p143=_p139._0.control1;return _mdgriffith$elm_style_animation$Animation_Model$CurveTo({control1:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p143)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p143))},control2:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p144)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p144))},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p145)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p145))}});case'Quadratic':var _p147=_p139._0.point;var _p146=_p139._0.control;return _mdgriffith$elm_style_animation$Animation_Model$Quadratic({control:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p146)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p146))},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p147)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p147))}});case'QuadraticTo':var _p149=_p139._0.point;var _p148=_p139._0.control;return _mdgriffith$elm_style_animation$Animation_Model$QuadraticTo({control:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p148)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p148))},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$first(_p149)),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_elm_lang$core$Tuple$second(_p149))}});case'SmoothQuadratic':return _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadratic(stepCoords(_p139._0));case'SmoothQuadraticTo':return _mdgriffith$elm_style_animation$Animation_Model$SmoothQuadraticTo(stepCoords(_p139._0));case'Smooth':return _mdgriffith$elm_style_animation$Animation_Model$Smooth(stepCoords(_p139._0));case'SmoothTo':return _mdgriffith$elm_style_animation$Animation_Model$SmoothTo(stepCoords(_p139._0));case'ClockwiseArc':var _p150=_p139._0;return _mdgriffith$elm_style_animation$Animation_Model$ClockwiseArc(_elm_lang$core$Native_Utils.update(_p150,{x:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p150.x),y:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p150.y),radius:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p150.radius),startAngle:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p150.startAngle),endAngle:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p150.endAngle)}));case'AntiClockwiseArc':var _p151=_p139._0;return _mdgriffith$elm_style_animation$Animation_Model$AntiClockwiseArc(_elm_lang$core$Native_Utils.update(_p151,{x:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p151.x),y:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p151.y),radius:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p151.radius),startAngle:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p151.startAngle),endAngle:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p151.endAngle)}));default:return _mdgriffith$elm_style_animation$Animation_Model$Close;}});var _mdgriffith$elm_style_animation$Animation_Model$step=F2(function(dt,props){var stepProp=function stepProp(property){var _p152=property;switch(_p152.ctor){case'ExactProperty':return A2(_mdgriffith$elm_style_animation$Animation_Model$ExactProperty,_p152._0,_p152._1);case'Property':return A2(_mdgriffith$elm_style_animation$Animation_Model$Property,_p152._0,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._1));case'Property2':return A3(_mdgriffith$elm_style_animation$Animation_Model$Property2,_p152._0,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._1),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._2));case'Property3':return A4(_mdgriffith$elm_style_animation$Animation_Model$Property3,_p152._0,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._1),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._2),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._3));case'Property4':return A5(_mdgriffith$elm_style_animation$Animation_Model$Property4,_p152._0,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._1),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._2),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._3),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._4));case'AngleProperty':return A2(_mdgriffith$elm_style_animation$Animation_Model$AngleProperty,_p152._0,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._1));case'ColorProperty':return A5(_mdgriffith$elm_style_animation$Animation_Model$ColorProperty,_p152._0,A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._1),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._2),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._3),A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p152._4));case'ShadowProperty':var _p153=_p152._2;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,_p152._0,_p152._1,{offsetX:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.offsetX),offsetY:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.offsetY),size:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.size),blur:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.blur),red:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.red),green:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.green),blue:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.blue),alpha:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p153.alpha)});case'Points':return _mdgriffith$elm_style_animation$Animation_Model$Points(A2(_elm_lang$core$List$map,function(_p154){var _p155=_p154;return{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p155._0),_1:A2(_mdgriffith$elm_style_animation$Animation_Model$stepInterpolation,dt,_p155._1)};},_p152._0));default:return _mdgriffith$elm_style_animation$Animation_Model$Path(A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$stepPath(dt),_p152._0));}};return A2(_elm_lang$core$List$map,stepProp,props);});var _mdgriffith$elm_style_animation$Animation_Model$resolveSteps=F3(function(currentStyle,steps,dt){resolveSteps:while(true){var _p156=_elm_lang$core$List$head(steps);if(_p156.ctor==='Nothing'){return{ctor:'_Tuple3',_0:currentStyle,_1:{ctor:'[]'},_2:{ctor:'[]'}};}else{var _p157=_p156._0;switch(_p157.ctor){case'Wait':var _p158=_p157._0;if(_elm_lang$core$Native_Utils.cmp(_p158,0)<1){var _v70=currentStyle,_v71=A2(_elm_lang$core$List$drop,1,steps),_v72=dt;currentStyle=_v70;steps=_v71;dt=_v72;continue resolveSteps;}else{return{ctor:'_Tuple3',_0:currentStyle,_1:{ctor:'[]'},_2:{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation_Model$Wait(_p158-dt),_1:A2(_elm_lang$core$List$drop,1,steps)}};}case'Send':var _p159=A3(_mdgriffith$elm_style_animation$Animation_Model$resolveSteps,currentStyle,A2(_elm_lang$core$List$drop,1,steps),dt);var newStyle=_p159._0;var msgs=_p159._1;var remainingSteps=_p159._2;return{ctor:'_Tuple3',_0:newStyle,_1:{ctor:'::',_0:_p157._0,_1:msgs},_2:remainingSteps};case'To':var _v73=A3(_mdgriffith$elm_style_animation$Animation_Model$startTowards,false,currentStyle,_p157._0),_v74={ctor:'::',_0:_mdgriffith$elm_style_animation$Animation_Model$Step,_1:A2(_elm_lang$core$List$drop,1,steps)},_v75=dt;currentStyle=_v73;steps=_v74;dt=_v75;continue resolveSteps;case'ToWith':var _v76=A3(_mdgriffith$elm_style_animation$Animation_Model$startTowards,true,currentStyle,_p157._0),_v77={ctor:'::',_0:_mdgriffith$elm_style_animation$Animation_Model$Step,_1:A2(_elm_lang$core$List$drop,1,steps)},_v78=dt;currentStyle=_v76;steps=_v77;dt=_v78;continue resolveSteps;case'Set':var _v79=A2(_mdgriffith$elm_style_animation$Animation_Model$replaceProps,currentStyle,_p157._0),_v80=A2(_elm_lang$core$List$drop,1,steps),_v81=dt;currentStyle=_v79;steps=_v80;dt=_v81;continue resolveSteps;case'Step':var stepped=A2(_mdgriffith$elm_style_animation$Animation_Model$step,dt,currentStyle);return A2(_elm_lang$core$List$all,_mdgriffith$elm_style_animation$Animation_Model$isDone,stepped)?{ctor:'_Tuple3',_0:A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$mapToMotion(function(m){return _elm_lang$core$Native_Utils.update(m,{interpolationOverride:_elm_lang$core$Maybe$Nothing});}),stepped),_1:{ctor:'[]'},_2:A2(_elm_lang$core$List$drop,1,steps)}:{ctor:'_Tuple3',_0:stepped,_1:{ctor:'[]'},_2:steps};case'Loop':var _p160=_p157._0;var _v82=currentStyle,_v83=A2(_elm_lang$core$Basics_ops['++'],_p160,{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation_Model$Loop(_p160),_1:{ctor:'[]'}}),_v84=dt;currentStyle=_v82;steps=_v83;dt=_v84;continue resolveSteps;default:var _p162=_p157._1;var _p161=_p157._0;if(_elm_lang$core$Native_Utils.eq(_p161,0)){return{ctor:'_Tuple3',_0:currentStyle,_1:{ctor:'[]'},_2:A2(_elm_lang$core$List$drop,1,_p162)};}else{var _v85=currentStyle,_v86=A2(_elm_lang$core$Basics_ops['++'],_p162,{ctor:'::',_0:A2(_mdgriffith$elm_style_animation$Animation_Model$Repeat,_p161-1,_p162),_1:{ctor:'[]'}}),_v87=dt;currentStyle=_v85;steps=_v86;dt=_v87;continue resolveSteps;}}}}});var _mdgriffith$elm_style_animation$Animation_Model$updateAnimation=F2(function(_p164,_p163){var _p165=_p164;var _p166=_p163;var _p175=_p166._0;var timing=A2(_mdgriffith$elm_style_animation$Animation_Model$refreshTiming,_p165._0,_p175.timing);var _p167=A2(_elm_lang$core$List$partition,function(_p168){var _p169=_p168;return _elm_lang$core$Native_Utils.cmp(_p169._0,0)<1;},A2(_elm_lang$core$List$map,function(_p170){var _p171=_p170;return{ctor:'_Tuple2',_0:_p171._0-timing.dt,_1:_p171._1};},_p175.interruption));var readyInterruption=_p167._0;var queuedInterruptions=_p167._1;var _p172=function(){var _p173=_elm_lang$core$List$head(readyInterruption);if(_p173.ctor==='Just'){return{ctor:'_Tuple2',_0:_p173._0._1,_1:A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$mapToMotion(function(m){return _elm_lang$core$Native_Utils.update(m,{interpolationOverride:_elm_lang$core$Maybe$Nothing});}),_p175.style)};}else{return{ctor:'_Tuple2',_0:_p175.steps,_1:_p175.style};}}();var steps=_p172._0;var style=_p172._1;var _p174=A3(_mdgriffith$elm_style_animation$Animation_Model$resolveSteps,style,steps,timing.dt);var revisedStyle=_p174._0;var sentMessages=_p174._1;var revisedSteps=_p174._2;return{ctor:'_Tuple2',_0:_mdgriffith$elm_style_animation$Animation_Model$Animation(_elm_lang$core$Native_Utils.update(_p175,{timing:timing,interruption:queuedInterruptions,running:!_elm_lang$core$Native_Utils.eq(_elm_lang$core$List$length(revisedSteps),0)||!_elm_lang$core$Native_Utils.eq(_elm_lang$core$List$length(queuedInterruptions),0),steps:revisedSteps,style:revisedStyle})),_1:_elm_lang$core$Platform_Cmd$batch(A2(_elm_lang$core$List$map,function(m){return A2(_elm_lang$core$Task$perform,_elm_lang$core$Basics$identity,_elm_lang$core$Task$succeed(m));},sentMessages))};});var _mdgriffith$elm_style_animation$Animation$pathCmdValue=function _mdgriffith$elm_style_animation$Animation$pathCmdValue(cmd){var renderPoints=function renderPoints(coords){return A2(_elm_lang$core$String$join,' ',A2(_elm_lang$core$List$map,function(_p0){var _p1=_p0;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p1._0.position),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p1._1.position)));},coords));};var _p2=cmd;switch(_p2.ctor){case'Move':return A2(_elm_lang$core$Basics_ops['++'],'m ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p2._0.position),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p2._1.position))));case'MoveTo':return A2(_elm_lang$core$Basics_ops['++'],'M ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p2._0.position),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p2._1.position))));case'Line':return A2(_elm_lang$core$Basics_ops['++'],'l ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p2._0.position),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p2._1.position))));case'LineTo':return A2(_elm_lang$core$Basics_ops['++'],'L ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p2._0.position),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p2._1.position))));case'Horizontal':return A2(_elm_lang$core$Basics_ops['++'],'h ',_elm_lang$core$Basics$toString(_p2._0.position));case'HorizontalTo':return A2(_elm_lang$core$Basics_ops['++'],'H ',_elm_lang$core$Basics$toString(_p2._0.position));case'Vertical':return A2(_elm_lang$core$Basics_ops['++'],'v ',_elm_lang$core$Basics$toString(_p2._0.position));case'VerticalTo':return A2(_elm_lang$core$Basics_ops['++'],'V ',_elm_lang$core$Basics$toString(_p2._0.position));case'Curve':var _p3=_p2._0.point;var p1x=_p3._0;var p1y=_p3._1;var _p4=_p2._0.control2;var c2x=_p4._0;var c2y=_p4._1;var _p5=_p2._0.control1;var c1x=_p5._0;var c1y=_p5._1;return A2(_elm_lang$core$Basics_ops['++'],'c ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1y.position),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c2x.position),A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c2y.position),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(p1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',_elm_lang$core$Basics$toString(p1y.position))))))))))));case'CurveTo':var _p6=_p2._0.point;var p1x=_p6._0;var p1y=_p6._1;var _p7=_p2._0.control2;var c2x=_p7._0;var c2y=_p7._1;var _p8=_p2._0.control1;var c1x=_p8._0;var c1y=_p8._1;return A2(_elm_lang$core$Basics_ops['++'],'C ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1y.position),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c2x.position),A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c2y.position),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(p1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',_elm_lang$core$Basics$toString(p1y.position))))))))))));case'Quadratic':var _p9=_p2._0.point;var p1x=_p9._0;var p1y=_p9._1;var _p10=_p2._0.control;var c1x=_p10._0;var c1y=_p10._1;return A2(_elm_lang$core$Basics_ops['++'],'q ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1y.position),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(p1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',_elm_lang$core$Basics$toString(p1y.position))))))));case'QuadraticTo':var _p11=_p2._0.point;var p1x=_p11._0;var p1y=_p11._1;var _p12=_p2._0.control;var c1x=_p12._0;var c1y=_p12._1;return A2(_elm_lang$core$Basics_ops['++'],'Q ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(c1y.position),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(p1x.position),A2(_elm_lang$core$Basics_ops['++'],' ',_elm_lang$core$Basics$toString(p1y.position))))))));case'SmoothQuadratic':return A2(_elm_lang$core$Basics_ops['++'],'t ',renderPoints(_p2._0));case'SmoothQuadraticTo':return A2(_elm_lang$core$Basics_ops['++'],'T ',renderPoints(_p2._0));case'Smooth':return A2(_elm_lang$core$Basics_ops['++'],'s ',renderPoints(_p2._0));case'SmoothTo':return A2(_elm_lang$core$Basics_ops['++'],'S ',renderPoints(_p2._0));case'ClockwiseArc':var _p13=_p2._0;var deltaAngle=_p13.endAngle.position-_p13.startAngle.position;if(_elm_lang$core$Native_Utils.cmp(deltaAngle,360-1.0e-6)>0){var dy=_p13.radius.position*_elm_lang$core$Basics$sin(_elm_lang$core$Basics$degrees(_p13.startAngle.position));var dx=_p13.radius.position*_elm_lang$core$Basics$cos(_elm_lang$core$Basics$degrees(_p13.startAngle.position));return A2(_elm_lang$core$Basics_ops['++'],'A ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.radius.position),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.radius.position),A2(_elm_lang$core$Basics_ops['++'],',0,1,1,',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.x.position-dx),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.y.position-dy),A2(_elm_lang$core$Basics_ops['++'],' A ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.radius.position),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.radius.position),A2(_elm_lang$core$Basics_ops['++'],',0,1,1,',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.x.position+dx),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p13.y.position+dy))))))))))))))));}else{return A2(_elm_lang$core$Basics_ops['++'],'A ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.radius.position),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.radius.position),A2(_elm_lang$core$Basics_ops['++'],' 0 ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Native_Utils.cmp(deltaAngle,180)>-1?'1':'0',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],'1',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p13.x.position+_p13.radius.position*_elm_lang$core$Basics$cos(_elm_lang$core$Basics$degrees(_p13.endAngle.position))),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p13.y.position+_p13.radius.position*_elm_lang$core$Basics$sin(_elm_lang$core$Basics$degrees(_p13.endAngle.position))))))))))))));}case'AntiClockwiseArc':var _p14=_p2._0;var deltaAngle=_p14.endAngle.position-_p14.startAngle.position;if(_elm_lang$core$Native_Utils.cmp(deltaAngle,360-1.0e-6)>0){var dy=_p14.radius.position*_elm_lang$core$Basics$sin(_elm_lang$core$Basics$degrees(_p14.startAngle.position));var dx=_p14.radius.position*_elm_lang$core$Basics$cos(_elm_lang$core$Basics$degrees(_p14.startAngle.position));return A2(_elm_lang$core$Basics_ops['++'],'A ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.radius.position),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.radius.position),A2(_elm_lang$core$Basics_ops['++'],',0,1,0,',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.x.position-dx),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.y.position-dy),A2(_elm_lang$core$Basics_ops['++'],' A ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.radius.position),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.radius.position),A2(_elm_lang$core$Basics_ops['++'],',0,1,1,',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.x.position+dx),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p14.y.position+dy))))))))))))))));}else{return A2(_elm_lang$core$Basics_ops['++'],'A ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.radius.position),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.radius.position),A2(_elm_lang$core$Basics_ops['++'],' 0 ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Native_Utils.cmp(_p14.startAngle.position-_p14.endAngle.position,180)>-1?'1':'0',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],'0',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p14.x.position+_p14.radius.position*_elm_lang$core$Basics$cos(_p14.endAngle.position)),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p14.y.position+_p14.radius.position*_elm_lang$core$Basics$sin(_p14.endAngle.position)))))))))))));}default:return'z';}};var _mdgriffith$elm_style_animation$Animation$propertyValue=F2(function(prop,delim){var _p15=prop;switch(_p15.ctor){case'ExactProperty':return _p15._1;case'ColorProperty':return A2(_elm_lang$core$Basics_ops['++'],'rgba(',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_elm_lang$core$Basics$round(_p15._1.position)),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_elm_lang$core$Basics$round(_p15._2.position)),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_elm_lang$core$Basics$round(_p15._3.position)),A2(_elm_lang$core$Basics_ops['++'],',',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p15._4.position),')'))))))));case'ShadowProperty':var _p17=_p15._2;var _p16=_p15._0;return A2(_elm_lang$core$Basics_ops['++'],_p15._1?'inset ':'',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p17.offsetX.position),A2(_elm_lang$core$Basics_ops['++'],'px',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p17.offsetY.position),A2(_elm_lang$core$Basics_ops['++'],'px',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p17.blur.position),A2(_elm_lang$core$Basics_ops['++'],'px',A2(_elm_lang$core$Basics_ops['++'],' ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Native_Utils.eq(_p16,'text-shadow')||_elm_lang$core$Native_Utils.eq(_p16,'drop-shadow')?'':A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p17.size.position),A2(_elm_lang$core$Basics_ops['++'],'px',' ')),A2(_elm_lang$core$Basics_ops['++'],'rgba(',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_elm_lang$core$Basics$round(_p17.red.position)),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_elm_lang$core$Basics$round(_p17.green.position)),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_elm_lang$core$Basics$round(_p17.blue.position)),A2(_elm_lang$core$Basics_ops['++'],', ',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p17.alpha.position),')')))))))))))))))))));case'Property':var _p18=_p15._1;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p18.position),_p18.unit);case'Property2':var _p20=_p15._2;var _p19=_p15._1;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p19.position),A2(_elm_lang$core$Basics_ops['++'],_p19.unit,A2(_elm_lang$core$Basics_ops['++'],delim,A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p20.position),_p20.unit))));case'Property3':var _p23=_p15._3;var _p22=_p15._2;var _p21=_p15._1;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p21.position),A2(_elm_lang$core$Basics_ops['++'],_p21.unit,A2(_elm_lang$core$Basics_ops['++'],delim,A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p22.position),A2(_elm_lang$core$Basics_ops['++'],_p22.unit,A2(_elm_lang$core$Basics_ops['++'],delim,A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p23.position),_p23.unit)))))));case'Property4':var _p27=_p15._4;var _p26=_p15._3;var _p25=_p15._2;var _p24=_p15._1;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p24.position),A2(_elm_lang$core$Basics_ops['++'],_p24.unit,A2(_elm_lang$core$Basics_ops['++'],delim,A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p25.position),A2(_elm_lang$core$Basics_ops['++'],_p25.unit,A2(_elm_lang$core$Basics_ops['++'],delim,A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p26.position),A2(_elm_lang$core$Basics_ops['++'],_p26.unit,A2(_elm_lang$core$Basics_ops['++'],delim,A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p27.position),_p27.unit))))))))));case'AngleProperty':var _p28=_p15._1;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p28.position),_p28.unit);case'Points':return A2(_elm_lang$core$String$join,' ',A2(_elm_lang$core$List$map,function(_p29){var _p30=_p29;return A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p30._0.position),A2(_elm_lang$core$Basics_ops['++'],',',_elm_lang$core$Basics$toString(_p30._1.position)));},_p15._0));default:return A2(_elm_lang$core$String$join,' ',A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation$pathCmdValue,_p15._0));}});var _mdgriffith$elm_style_animation$Animation$displayModeName=function _mdgriffith$elm_style_animation$Animation$displayModeName(mode){var _p31=mode;switch(_p31.ctor){case'None':return'none';case'Inline':return'inline';case'InlineBlock':return'inline-block';case'Block':return'block';case'Flex':return'flex';case'InlineFlex':return'inline-flex';default:return'list-item';}};var _mdgriffith$elm_style_animation$Animation$isAttr=function _mdgriffith$elm_style_animation$Animation$isAttr(prop){return A2(_elm_lang$core$String$startsWith,'attr:',_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop))||function(){var _p32=prop;switch(_p32.ctor){case'Points':return true;case'Path':return true;case'Property':var _p33=_p32._0;return _elm_lang$core$Native_Utils.eq(_p33,'cx')||_elm_lang$core$Native_Utils.eq(_p33,'cy')||_elm_lang$core$Native_Utils.eq(_p33,'x')||_elm_lang$core$Native_Utils.eq(_p33,'y')||_elm_lang$core$Native_Utils.eq(_p33,'rx')||_elm_lang$core$Native_Utils.eq(_p33,'ry')||_elm_lang$core$Native_Utils.eq(_p33,'r')||_elm_lang$core$Native_Utils.eq(_p33,'offset');case'Property4':return _elm_lang$core$Native_Utils.eq(_p32._0,'viewBox');default:return false;}}();};var _mdgriffith$elm_style_animation$Animation$webkitPrefix='-webkit-';var _mdgriffith$elm_style_animation$Animation$iePrefix='-ms-';var _mdgriffith$elm_style_animation$Animation$prefix=function _mdgriffith$elm_style_animation$Animation$prefix(stylePair){var propValue=_elm_lang$core$Tuple$second(stylePair);var propName=_elm_lang$core$Tuple$first(stylePair);var _p34=propName;switch(_p34){case'transform':return{ctor:'::',_0:stylePair,_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation$iePrefix,propName),_1:propValue},_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation$webkitPrefix,propName),_1:propValue},_1:{ctor:'[]'}}}};case'transform-origin':return{ctor:'::',_0:stylePair,_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation$iePrefix,propName),_1:propValue},_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation$webkitPrefix,propName),_1:propValue},_1:{ctor:'[]'}}}};case'filter':return{ctor:'::',_0:stylePair,_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation$iePrefix,propName),_1:propValue},_1:{ctor:'::',_0:{ctor:'_Tuple2',_0:A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation$webkitPrefix,propName),_1:propValue},_1:{ctor:'[]'}}}};default:return{ctor:'::',_0:stylePair,_1:{ctor:'[]'}};}};var _mdgriffith$elm_style_animation$Animation$isFilter=function _mdgriffith$elm_style_animation$Animation$isFilter(prop){return A2(_elm_lang$core$List$member,_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),{ctor:'::',_0:'filter-url',_1:{ctor:'::',_0:'blur',_1:{ctor:'::',_0:'brightness',_1:{ctor:'::',_0:'contrast',_1:{ctor:'::',_0:'grayscale',_1:{ctor:'::',_0:'hue-rotate',_1:{ctor:'::',_0:'invert',_1:{ctor:'::',_0:'saturate',_1:{ctor:'::',_0:'sepia',_1:{ctor:'::',_0:'drop-shadow',_1:{ctor:'[]'}}}}}}}}}}});};var _mdgriffith$elm_style_animation$Animation$render3dRotation=function _mdgriffith$elm_style_animation$Animation$render3dRotation(prop){var _p35=prop;if(_p35.ctor==='Property3'){var _p38=_p35._3;var _p37=_p35._2;var _p36=_p35._1;return A2(_elm_lang$core$Basics_ops['++'],'rotateX(',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p36.position),A2(_elm_lang$core$Basics_ops['++'],_p36.unit,A2(_elm_lang$core$Basics_ops['++'],') rotateY(',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p37.position),A2(_elm_lang$core$Basics_ops['++'],_p37.unit,A2(_elm_lang$core$Basics_ops['++'],') rotateZ(',A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(_p38.position),A2(_elm_lang$core$Basics_ops['++'],_p38.unit,')')))))))));}else{return'';}};var _mdgriffith$elm_style_animation$Animation$isTransformation=function _mdgriffith$elm_style_animation$Animation$isTransformation(prop){return A2(_elm_lang$core$List$member,_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),{ctor:'::',_0:'rotate',_1:{ctor:'::',_0:'rotateX',_1:{ctor:'::',_0:'rotateY',_1:{ctor:'::',_0:'rotateZ',_1:{ctor:'::',_0:'rotate3d',_1:{ctor:'::',_0:'translate',_1:{ctor:'::',_0:'translate3d',_1:{ctor:'::',_0:'scale',_1:{ctor:'::',_0:'scale3d',_1:{ctor:'[]'}}}}}}}}}});};var _mdgriffith$elm_style_animation$Animation$renderAttrs=function _mdgriffith$elm_style_animation$Animation$renderAttrs(prop){if(A2(_elm_lang$core$String$startsWith,'attr:',_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop))){return _elm_lang$core$Maybe$Just(A2(_elm_lang$html$Html_Attributes$attribute,A2(_elm_lang$core$String$dropLeft,5,_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop)),A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));}else{var _p39=prop;switch(_p39.ctor){case'Points':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$points(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'Path':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$d(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'Property':var _p40=_p39._0;switch(_p40){case'x':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$x(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'y':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$y(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'cx':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$cx(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'cy':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$cy(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'rx':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$rx(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'ry':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$ry(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'r':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$r(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));case'offset':return _elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$offset(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')));default:return _elm_lang$core$Maybe$Nothing;}case'Property4':return _elm_lang$core$Native_Utils.eq(_p39._0,'viewBox')?_elm_lang$core$Maybe$Just(_elm_lang$svg$Svg_Attributes$viewBox(A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' '))):_elm_lang$core$Maybe$Nothing;default:return _elm_lang$core$Maybe$Nothing;}}};var _mdgriffith$elm_style_animation$Animation$render=function _mdgriffith$elm_style_animation$Animation$render(_p41){var _p42=_p41;var _p43=A2(_elm_lang$core$List$partition,_mdgriffith$elm_style_animation$Animation$isAttr,_p42._0.style);var attrProps=_p43._0;var styleProps=_p43._1;var _p44=A3(_elm_lang$core$List$foldl,F2(function(prop,_p45){var _p46=_p45;var _p49=_p46._1;var _p48=_p46._0;var _p47=_p46._2;return _mdgriffith$elm_style_animation$Animation$isTransformation(prop)?{ctor:'_Tuple3',_0:_p48,_1:A2(_elm_lang$core$Basics_ops['++'],_p49,{ctor:'::',_0:prop,_1:{ctor:'[]'}}),_2:_p47}:_mdgriffith$elm_style_animation$Animation$isFilter(prop)?{ctor:'_Tuple3',_0:_p48,_1:_p49,_2:A2(_elm_lang$core$Basics_ops['++'],_p47,{ctor:'::',_0:prop,_1:{ctor:'[]'}})}:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p48,{ctor:'::',_0:prop,_1:{ctor:'[]'}}),_1:_p49,_2:_p47};}),{ctor:'_Tuple3',_0:{ctor:'[]'},_1:{ctor:'[]'},_2:{ctor:'[]'}},styleProps);var style=_p44._0;var transforms=_p44._1;var filters=_p44._2;var renderedStyle=A2(_elm_lang$core$List$map,function(prop){return{ctor:'_Tuple2',_0:_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),_1:A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,' ')};},style);var renderedTransforms=_elm_lang$core$List$isEmpty(transforms)?{ctor:'[]'}:{ctor:'::',_0:{ctor:'_Tuple2',_0:'transform',_1:A2(_elm_lang$core$String$join,' ',A2(_elm_lang$core$List$map,function(prop){return _elm_lang$core$Native_Utils.eq(_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),'rotate3d')?_mdgriffith$elm_style_animation$Animation$render3dRotation(prop):A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),A2(_elm_lang$core$Basics_ops['++'],'(',A2(_elm_lang$core$Basics_ops['++'],A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,', '),')')));},transforms))},_1:{ctor:'[]'}};var renderedFilters=_elm_lang$core$List$isEmpty(filters)?{ctor:'[]'}:{ctor:'::',_0:{ctor:'_Tuple2',_0:'filter',_1:A2(_elm_lang$core$String$join,' ',A2(_elm_lang$core$List$map,function(prop){var name=_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop);return _elm_lang$core$Native_Utils.eq(name,'filter-url')?A2(_elm_lang$core$Basics_ops['++'],'url(\"',A2(_elm_lang$core$Basics_ops['++'],A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,', '),'\")')):A2(_elm_lang$core$Basics_ops['++'],_mdgriffith$elm_style_animation$Animation_Model$propertyName(prop),A2(_elm_lang$core$Basics_ops['++'],'(',A2(_elm_lang$core$Basics_ops['++'],A2(_mdgriffith$elm_style_animation$Animation$propertyValue,prop,', '),')')));},filters))},_1:{ctor:'[]'}};var styleAttr=_elm_lang$html$Html_Attributes$style(A2(_elm_lang$core$List$concatMap,_mdgriffith$elm_style_animation$Animation$prefix,A2(_elm_lang$core$Basics_ops['++'],renderedTransforms,A2(_elm_lang$core$Basics_ops['++'],renderedFilters,renderedStyle))));var otherAttrs=A2(_elm_lang$core$List$filterMap,_mdgriffith$elm_style_animation$Animation$renderAttrs,attrProps);return{ctor:'::',_0:styleAttr,_1:otherAttrs};};var _mdgriffith$elm_style_animation$Animation$alignStartingPoint=function _mdgriffith$elm_style_animation$Animation$alignStartingPoint(points){var sums=A2(_elm_lang$core$List$map,function(_p50){var _p51=_p50;return _p51._0+_p51._1;},points);var maybeMin=_elm_lang$core$List$minimum(sums);var indexOfLowestPoint=function(){var _p52=maybeMin;if(_p52.ctor==='Nothing'){return _elm_lang$core$Maybe$Nothing;}else{return _elm_lang$core$List$head(A2(_elm_lang$core$List$filterMap,_elm_lang$core$Basics$identity,A2(_elm_lang$core$List$indexedMap,F2(function(i,val){return _elm_lang$core$Native_Utils.eq(val,_p52._0)?_elm_lang$core$Maybe$Just(i):_elm_lang$core$Maybe$Nothing;}),sums)));}}();var _p53=indexOfLowestPoint;if(_p53.ctor==='Nothing'){return points;}else{var _p54=_p53._0;return A2(_elm_lang$core$Basics_ops['++'],A2(_elm_lang$core$List$drop,_p54,points),A2(_elm_lang$core$List$take,_p54,points));}};var _mdgriffith$elm_style_animation$Animation$close=_mdgriffith$elm_style_animation$Animation_Model$Close;var _mdgriffith$elm_style_animation$Animation$path=function _mdgriffith$elm_style_animation$Animation$path(commands){return _mdgriffith$elm_style_animation$Animation_Model$Path(commands);};var _mdgriffith$elm_style_animation$Animation$display=function _mdgriffith$elm_style_animation$Animation$display(mode){return A2(_mdgriffith$elm_style_animation$Animation_Model$ExactProperty,'display',_mdgriffith$elm_style_animation$Animation$displayModeName(mode));};var _mdgriffith$elm_style_animation$Animation$exactly=F2(function(name,value){return A2(_mdgriffith$elm_style_animation$Animation_Model$ExactProperty,name,value);});var _mdgriffith$elm_style_animation$Animation$filterUrl=function _mdgriffith$elm_style_animation$Animation$filterUrl(url){return A2(_mdgriffith$elm_style_animation$Animation$exactly,'filter-url',url);};var _mdgriffith$elm_style_animation$Animation$initMotion=F2(function(position,unit){return{position:position,velocity:0,target:position,unit:unit,interpolation:_mdgriffith$elm_style_animation$Animation_Model$Spring({stiffness:170,damping:26}),interpolationOverride:_elm_lang$core$Maybe$Nothing};});var _mdgriffith$elm_style_animation$Animation$length=F3(function(name,x,unit){return A2(_mdgriffith$elm_style_animation$Animation_Model$Property,name,A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,unit));});var _mdgriffith$elm_style_animation$Animation$strokeWidth=function _mdgriffith$elm_style_animation$Animation$strokeWidth(x){return A3(_mdgriffith$elm_style_animation$Animation$length,'stroke-width',x,'');};var _mdgriffith$elm_style_animation$Animation$length2=F3(function(name,_p56,_p55){var _p57=_p56;var _p58=_p55;return A3(_mdgriffith$elm_style_animation$Animation_Model$Property2,name,A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p57._0,_p57._1),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p58._0,_p58._1));});var _mdgriffith$elm_style_animation$Animation$attr2=F3(function(name,value1,value2){return A3(_mdgriffith$elm_style_animation$Animation$length2,A2(_elm_lang$core$Basics_ops['++'],'attr:',name),value1,value2);});var _mdgriffith$elm_style_animation$Animation$custom2=F3(function(name,value,unit){return A3(_mdgriffith$elm_style_animation$Animation$length2,name,value,unit);});var _mdgriffith$elm_style_animation$Animation$length3=F4(function(name,_p61,_p60,_p59){var _p62=_p61;var _p63=_p60;var _p64=_p59;return A4(_mdgriffith$elm_style_animation$Animation_Model$Property3,name,A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p62._0,_p62._1),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p63._0,_p63._1),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p64._0,_p64._1));});var _mdgriffith$elm_style_animation$Animation$attr3=F4(function(name,value1,value2,value3){return A4(_mdgriffith$elm_style_animation$Animation$length3,A2(_elm_lang$core$Basics_ops['++'],'attr:',name),value1,value2,value3);});var _mdgriffith$elm_style_animation$Animation$rotate3d=F3(function(_p67,_p66,_p65){var _p68=_p67;var _p69=_p66;var _p70=_p65;return A4(_mdgriffith$elm_style_animation$Animation$length3,'rotate3d',{ctor:'_Tuple2',_0:_p68._0,_1:'rad'},{ctor:'_Tuple2',_0:_p69._0,_1:'rad'},{ctor:'_Tuple2',_0:_p70._0,_1:'rad'});});var _mdgriffith$elm_style_animation$Animation$length4=F5(function(name,_p74,_p73,_p72,_p71){var _p75=_p74;var _p76=_p73;var _p77=_p72;var _p78=_p71;return A5(_mdgriffith$elm_style_animation$Animation_Model$Property4,name,A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p75._0,_p75._1),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p76._0,_p76._1),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p77._0,_p77._1),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p78._0,_p78._1));});var _mdgriffith$elm_style_animation$Animation$attr4=F5(function(name,value1,value2,value3,value4){return A5(_mdgriffith$elm_style_animation$Animation$length4,A2(_elm_lang$core$Basics_ops['++'],'attr:',name),value1,value2,value3,value4);});var _mdgriffith$elm_style_animation$Animation$viewBox=F4(function(w,x,y,z){return A5(_mdgriffith$elm_style_animation$Animation$length4,'viewBox',{ctor:'_Tuple2',_0:w,_1:''},{ctor:'_Tuple2',_0:x,_1:''},{ctor:'_Tuple2',_0:y,_1:''},{ctor:'_Tuple2',_0:z,_1:''});});var _mdgriffith$elm_style_animation$Animation$attr=F3(function(name,value,unit){return A2(_mdgriffith$elm_style_animation$Animation_Model$Property,A2(_elm_lang$core$Basics_ops['++'],'attr:',name),A2(_mdgriffith$elm_style_animation$Animation$initMotion,value,unit));});var _mdgriffith$elm_style_animation$Animation$attrColor=F2(function(name,color){var _p79=_elm_lang$core$Color$toRgb(color);var red=_p79.red;var green=_p79.green;var blue=_p79.blue;var alpha=_p79.alpha;return A5(_mdgriffith$elm_style_animation$Animation_Model$ColorProperty,A2(_elm_lang$core$Basics_ops['++'],'attr:',name),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(red),''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(green),''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(blue),''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,alpha,''));});var _mdgriffith$elm_style_animation$Animation$custom=F3(function(name,value,unit){return A2(_mdgriffith$elm_style_animation$Animation_Model$Property,name,A2(_mdgriffith$elm_style_animation$Animation$initMotion,value,unit));});var _mdgriffith$elm_style_animation$Animation$opacity=function _mdgriffith$elm_style_animation$Animation$opacity(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'opacity',x,'');};var _mdgriffith$elm_style_animation$Animation$scale=function _mdgriffith$elm_style_animation$Animation$scale(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'scale',x,'');};var _mdgriffith$elm_style_animation$Animation$x=function _mdgriffith$elm_style_animation$Animation$x(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'x',x,'');};var _mdgriffith$elm_style_animation$Animation$y=function _mdgriffith$elm_style_animation$Animation$y(y){return A3(_mdgriffith$elm_style_animation$Animation$custom,'y',y,'');};var _mdgriffith$elm_style_animation$Animation$cx=function _mdgriffith$elm_style_animation$Animation$cx(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'cx',x,'');};var _mdgriffith$elm_style_animation$Animation$cy=function _mdgriffith$elm_style_animation$Animation$cy(y){return A3(_mdgriffith$elm_style_animation$Animation$custom,'cy',y,'');};var _mdgriffith$elm_style_animation$Animation$radius=function _mdgriffith$elm_style_animation$Animation$radius(r){return A3(_mdgriffith$elm_style_animation$Animation$custom,'r',r,'');};var _mdgriffith$elm_style_animation$Animation$radiusX=function _mdgriffith$elm_style_animation$Animation$radiusX(rx){return A3(_mdgriffith$elm_style_animation$Animation$custom,'rx',rx,'');};var _mdgriffith$elm_style_animation$Animation$radiusY=function _mdgriffith$elm_style_animation$Animation$radiusY(ry){return A3(_mdgriffith$elm_style_animation$Animation$custom,'ry',ry,'');};var _mdgriffith$elm_style_animation$Animation$brightness=function _mdgriffith$elm_style_animation$Animation$brightness(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'brightness',x,'%');};var _mdgriffith$elm_style_animation$Animation$contrast=function _mdgriffith$elm_style_animation$Animation$contrast(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'contrast',x,'%');};var _mdgriffith$elm_style_animation$Animation$grayscale=function _mdgriffith$elm_style_animation$Animation$grayscale(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'grayscale',x,'%');};var _mdgriffith$elm_style_animation$Animation$greyscale=function _mdgriffith$elm_style_animation$Animation$greyscale(x){return _mdgriffith$elm_style_animation$Animation$grayscale(x);};var _mdgriffith$elm_style_animation$Animation$invert=function _mdgriffith$elm_style_animation$Animation$invert(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'invert',x,'%');};var _mdgriffith$elm_style_animation$Animation$saturate=function _mdgriffith$elm_style_animation$Animation$saturate(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'saturate',x,'%');};var _mdgriffith$elm_style_animation$Animation$sepia=function _mdgriffith$elm_style_animation$Animation$sepia(x){return A3(_mdgriffith$elm_style_animation$Animation$custom,'sepia',x,'%');};var _mdgriffith$elm_style_animation$Animation$offset=function _mdgriffith$elm_style_animation$Animation$offset(value){return A3(_mdgriffith$elm_style_animation$Animation$custom,'offset',value,'');};var _mdgriffith$elm_style_animation$Animation$customColor=F2(function(name,color){var _p80=_elm_lang$core$Color$toRgb(color);var red=_p80.red;var green=_p80.green;var blue=_p80.blue;var alpha=_p80.alpha;return A5(_mdgriffith$elm_style_animation$Animation_Model$ColorProperty,name,A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(red),''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(green),''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(blue),''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,alpha,''));});var _mdgriffith$elm_style_animation$Animation$color=function _mdgriffith$elm_style_animation$Animation$color(c){return A2(_mdgriffith$elm_style_animation$Animation$customColor,'color',c);};var _mdgriffith$elm_style_animation$Animation$backgroundColor=function _mdgriffith$elm_style_animation$Animation$backgroundColor(c){return A2(_mdgriffith$elm_style_animation$Animation$customColor,'background-color',c);};var _mdgriffith$elm_style_animation$Animation$borderColor=function _mdgriffith$elm_style_animation$Animation$borderColor(c){return A2(_mdgriffith$elm_style_animation$Animation$customColor,'border-color',c);};var _mdgriffith$elm_style_animation$Animation$fill=function _mdgriffith$elm_style_animation$Animation$fill(color){return A2(_mdgriffith$elm_style_animation$Animation$customColor,'fill',color);};var _mdgriffith$elm_style_animation$Animation$stroke=function _mdgriffith$elm_style_animation$Animation$stroke(color){return A2(_mdgriffith$elm_style_animation$Animation$customColor,'stroke',color);};var _mdgriffith$elm_style_animation$Animation$stopColor=function _mdgriffith$elm_style_animation$Animation$stopColor(color){return A2(_mdgriffith$elm_style_animation$Animation$customColor,'stop-color',color);};var _mdgriffith$elm_style_animation$Animation$scale3d=F3(function(x,y,z){return A4(_mdgriffith$elm_style_animation$Animation_Model$Property3,'scale3d',A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,y,''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,z,''));});var _mdgriffith$elm_style_animation$Animation$rotate=function _mdgriffith$elm_style_animation$Animation$rotate(_p81){var _p82=_p81;return A2(_mdgriffith$elm_style_animation$Animation_Model$AngleProperty,'rotate',A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p82._0,'rad'));};var _mdgriffith$elm_style_animation$Animation$textShadow=function _mdgriffith$elm_style_animation$Animation$textShadow(shade){var _p83=_elm_lang$core$Color$toRgb(shade.color);var red=_p83.red;var green=_p83.green;var blue=_p83.blue;var alpha=_p83.alpha;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,'text-shadow',false,{offsetX:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetX,'px'),offsetY:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetY,'px'),size:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.size,'px'),blur:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.blur,'px'),red:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(red),'px'),green:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(green),'px'),blue:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(blue),'px'),alpha:A2(_mdgriffith$elm_style_animation$Animation$initMotion,alpha,'px')});};var _mdgriffith$elm_style_animation$Animation$shadow=function _mdgriffith$elm_style_animation$Animation$shadow(shade){var _p84=_elm_lang$core$Color$toRgb(shade.color);var red=_p84.red;var green=_p84.green;var blue=_p84.blue;var alpha=_p84.alpha;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,'box-shadow',false,{offsetX:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetX,'px'),offsetY:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetY,'px'),size:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.size,'px'),blur:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.blur,'px'),red:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(red),'px'),green:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(green),'px'),blue:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(blue),'px'),alpha:A2(_mdgriffith$elm_style_animation$Animation$initMotion,alpha,'px')});};var _mdgriffith$elm_style_animation$Animation$insetShadow=function _mdgriffith$elm_style_animation$Animation$insetShadow(shade){var _p85=_elm_lang$core$Color$toRgb(shade.color);var red=_p85.red;var green=_p85.green;var blue=_p85.blue;var alpha=_p85.alpha;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,'box-shadow',true,{offsetX:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetX,'px'),offsetY:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetY,'px'),size:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.size,'px'),blur:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.blur,'px'),red:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(red),'px'),green:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(green),'px'),blue:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(blue),'px'),alpha:A2(_mdgriffith$elm_style_animation$Animation$initMotion,alpha,'px')});};var _mdgriffith$elm_style_animation$Animation$move=F2(function(x,y){return A2(_mdgriffith$elm_style_animation$Animation_Model$Move,A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,y,''));});var _mdgriffith$elm_style_animation$Animation$moveTo=F2(function(x,y){return A2(_mdgriffith$elm_style_animation$Animation_Model$MoveTo,A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,y,''));});var _mdgriffith$elm_style_animation$Animation$line=F2(function(x,y){return A2(_mdgriffith$elm_style_animation$Animation_Model$Line,A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,y,''));});var _mdgriffith$elm_style_animation$Animation$lineTo=F2(function(x,y){return A2(_mdgriffith$elm_style_animation$Animation_Model$LineTo,A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''),A2(_mdgriffith$elm_style_animation$Animation$initMotion,y,''));});var _mdgriffith$elm_style_animation$Animation$horizontal=function _mdgriffith$elm_style_animation$Animation$horizontal(x){return _mdgriffith$elm_style_animation$Animation_Model$Horizontal(A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''));};var _mdgriffith$elm_style_animation$Animation$horizontalTo=function _mdgriffith$elm_style_animation$Animation$horizontalTo(x){return _mdgriffith$elm_style_animation$Animation_Model$HorizontalTo(A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''));};var _mdgriffith$elm_style_animation$Animation$vertical=function _mdgriffith$elm_style_animation$Animation$vertical(x){return _mdgriffith$elm_style_animation$Animation_Model$Vertical(A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''));};var _mdgriffith$elm_style_animation$Animation$verticalTo=function _mdgriffith$elm_style_animation$Animation$verticalTo(x){return _mdgriffith$elm_style_animation$Animation_Model$VerticalTo(A2(_mdgriffith$elm_style_animation$Animation$initMotion,x,''));};var _mdgriffith$elm_style_animation$Animation$curve2=function _mdgriffith$elm_style_animation$Animation$curve2(_p86){var _p87=_p86;var _p90=_p87.point;var _p89=_p87.control2;var _p88=_p87.control1;return _mdgriffith$elm_style_animation$Animation_Model$Curve({control1:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p88),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p88),'')},control2:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p89),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p89),'')},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p90),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p90),'')}});};var _mdgriffith$elm_style_animation$Animation$curve2To=function _mdgriffith$elm_style_animation$Animation$curve2To(_p91){var _p92=_p91;var _p95=_p92.point;var _p94=_p92.control2;var _p93=_p92.control1;return _mdgriffith$elm_style_animation$Animation_Model$CurveTo({control1:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p93),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p93),'')},control2:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p94),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p94),'')},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p95),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p95),'')}});};var _mdgriffith$elm_style_animation$Animation$curve=function _mdgriffith$elm_style_animation$Animation$curve(_p96){var _p97=_p96;var _p99=_p97.point;var _p98=_p97.control;return _mdgriffith$elm_style_animation$Animation_Model$Quadratic({control:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p98),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p98),'')},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p99),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p99),'')}});};var _mdgriffith$elm_style_animation$Animation$curveTo=function _mdgriffith$elm_style_animation$Animation$curveTo(_p100){var _p101=_p100;var _p103=_p101.point;var _p102=_p101.control;return _mdgriffith$elm_style_animation$Animation_Model$QuadraticTo({control:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p102),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p102),'')},point:{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$first(_p103),''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Tuple$second(_p103),'')}});};var _mdgriffith$elm_style_animation$Animation$arc=function _mdgriffith$elm_style_animation$Animation$arc(arc){return arc.clockwise?_mdgriffith$elm_style_animation$Animation_Model$ClockwiseArc({x:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.x,''),y:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.y,''),radius:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.radius,''),startAngle:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.startAngle,''),endAngle:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.endAngle,'')}):_mdgriffith$elm_style_animation$Animation_Model$AntiClockwiseArc({x:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.x,''),y:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.y,''),radius:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.radius,''),startAngle:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.startAngle,''),endAngle:A2(_mdgriffith$elm_style_animation$Animation$initMotion,arc.endAngle,'')});};var _mdgriffith$elm_style_animation$Animation$hueRotate=function _mdgriffith$elm_style_animation$Animation$hueRotate(_p104){var _p105=_p104;return A2(_mdgriffith$elm_style_animation$Animation_Model$AngleProperty,'hue-rotate',A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p105._0,'rad'));};var _mdgriffith$elm_style_animation$Animation$dropShadow=function _mdgriffith$elm_style_animation$Animation$dropShadow(shade){var _p106=_elm_lang$core$Color$toRgb(shade.color);var red=_p106.red;var green=_p106.green;var blue=_p106.blue;var alpha=_p106.alpha;return A3(_mdgriffith$elm_style_animation$Animation_Model$ShadowProperty,'drop-shadow',false,{offsetX:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetX,'px'),offsetY:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.offsetY,'px'),size:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.size,'px'),blur:A2(_mdgriffith$elm_style_animation$Animation$initMotion,shade.blur,'px'),red:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(red),'px'),green:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(green),'px'),blue:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_elm_lang$core$Basics$toFloat(blue),'px'),alpha:A2(_mdgriffith$elm_style_animation$Animation$initMotion,alpha,'px')});};var _mdgriffith$elm_style_animation$Animation$points=function _mdgriffith$elm_style_animation$Animation$points(pnts){return _mdgriffith$elm_style_animation$Animation_Model$Points(A2(_elm_lang$core$List$map,function(_p107){var _p108=_p107;return{ctor:'_Tuple2',_0:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p108._0,''),_1:A2(_mdgriffith$elm_style_animation$Animation$initMotion,_p108._1,'')};},_mdgriffith$elm_style_animation$Animation$alignStartingPoint(pnts)));};var _mdgriffith$elm_style_animation$Animation$lengthUnitName=function _mdgriffith$elm_style_animation$Animation$lengthUnitName(unit){var _p109=unit;switch(_p109.ctor){case'NoUnit':return'';case'Px':return'px';case'Percent':return'%';case'Rem':return'rem';case'Em':return'em';case'Ex':return'ex';case'Ch':return'ch';case'Vh':return'vh';case'Vw':return'vw';case'Vmin':return'vmin';case'Vmax':return'vmax';case'Mm':return'mm';case'Cm':return'cm';case'In':return'in';case'Pt':return'pt';default:return'pc';}};var _mdgriffith$elm_style_animation$Animation$height=function _mdgriffith$elm_style_animation$Animation$height(_p110){var _p111=_p110;return A3(_mdgriffith$elm_style_animation$Animation$length,'height',_p111._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p111._1));};var _mdgriffith$elm_style_animation$Animation$width=function _mdgriffith$elm_style_animation$Animation$width(_p112){var _p113=_p112;return A3(_mdgriffith$elm_style_animation$Animation$length,'width',_p113._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p113._1));};var _mdgriffith$elm_style_animation$Animation$left=function _mdgriffith$elm_style_animation$Animation$left(_p114){var _p115=_p114;return A3(_mdgriffith$elm_style_animation$Animation$length,'left',_p115._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p115._1));};var _mdgriffith$elm_style_animation$Animation$top=function _mdgriffith$elm_style_animation$Animation$top(_p116){var _p117=_p116;return A3(_mdgriffith$elm_style_animation$Animation$length,'top',_p117._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p117._1));};var _mdgriffith$elm_style_animation$Animation$right=function _mdgriffith$elm_style_animation$Animation$right(_p118){var _p119=_p118;return A3(_mdgriffith$elm_style_animation$Animation$length,'right',_p119._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p119._1));};var _mdgriffith$elm_style_animation$Animation$bottom=function _mdgriffith$elm_style_animation$Animation$bottom(_p120){var _p121=_p120;return A3(_mdgriffith$elm_style_animation$Animation$length,'bottom',_p121._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p121._1));};var _mdgriffith$elm_style_animation$Animation$maxHeight=function _mdgriffith$elm_style_animation$Animation$maxHeight(_p122){var _p123=_p122;return A3(_mdgriffith$elm_style_animation$Animation$length,'max-height',_p123._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p123._1));};var _mdgriffith$elm_style_animation$Animation$maxWidth=function _mdgriffith$elm_style_animation$Animation$maxWidth(_p124){var _p125=_p124;return A3(_mdgriffith$elm_style_animation$Animation$length,'max-width',_p125._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p125._1));};var _mdgriffith$elm_style_animation$Animation$minHeight=function _mdgriffith$elm_style_animation$Animation$minHeight(_p126){var _p127=_p126;return A3(_mdgriffith$elm_style_animation$Animation$length,'min-height',_p127._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p127._1));};var _mdgriffith$elm_style_animation$Animation$minWidth=function _mdgriffith$elm_style_animation$Animation$minWidth(_p128){var _p129=_p128;return A3(_mdgriffith$elm_style_animation$Animation$length,'min-width',_p129._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p129._1));};var _mdgriffith$elm_style_animation$Animation$padding=function _mdgriffith$elm_style_animation$Animation$padding(_p130){var _p131=_p130;return A3(_mdgriffith$elm_style_animation$Animation$length,'padding',_p131._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p131._1));};var _mdgriffith$elm_style_animation$Animation$paddingLeft=function _mdgriffith$elm_style_animation$Animation$paddingLeft(_p132){var _p133=_p132;return A3(_mdgriffith$elm_style_animation$Animation$length,'padding-left',_p133._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p133._1));};var _mdgriffith$elm_style_animation$Animation$paddingRight=function _mdgriffith$elm_style_animation$Animation$paddingRight(_p134){var _p135=_p134;return A3(_mdgriffith$elm_style_animation$Animation$length,'padding-right',_p135._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p135._1));};var _mdgriffith$elm_style_animation$Animation$paddingTop=function _mdgriffith$elm_style_animation$Animation$paddingTop(_p136){var _p137=_p136;return A3(_mdgriffith$elm_style_animation$Animation$length,'padding-top',_p137._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p137._1));};var _mdgriffith$elm_style_animation$Animation$paddingBottom=function _mdgriffith$elm_style_animation$Animation$paddingBottom(_p138){var _p139=_p138;return A3(_mdgriffith$elm_style_animation$Animation$length,'padding-bottom',_p139._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p139._1));};var _mdgriffith$elm_style_animation$Animation$margin=function _mdgriffith$elm_style_animation$Animation$margin(_p140){var _p141=_p140;return A3(_mdgriffith$elm_style_animation$Animation$length,'margin',_p141._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p141._1));};var _mdgriffith$elm_style_animation$Animation$marginLeft=function _mdgriffith$elm_style_animation$Animation$marginLeft(_p142){var _p143=_p142;return A3(_mdgriffith$elm_style_animation$Animation$length,'margin-left',_p143._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p143._1));};var _mdgriffith$elm_style_animation$Animation$marginRight=function _mdgriffith$elm_style_animation$Animation$marginRight(_p144){var _p145=_p144;return A3(_mdgriffith$elm_style_animation$Animation$length,'margin-right',_p145._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p145._1));};var _mdgriffith$elm_style_animation$Animation$marginTop=function _mdgriffith$elm_style_animation$Animation$marginTop(_p146){var _p147=_p146;return A3(_mdgriffith$elm_style_animation$Animation$length,'margin-top',_p147._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p147._1));};var _mdgriffith$elm_style_animation$Animation$marginBottom=function _mdgriffith$elm_style_animation$Animation$marginBottom(_p148){var _p149=_p148;return A3(_mdgriffith$elm_style_animation$Animation$length,'margin-bottom',_p149._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p149._1));};var _mdgriffith$elm_style_animation$Animation$borderWidth=function _mdgriffith$elm_style_animation$Animation$borderWidth(_p150){var _p151=_p150;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-width',_p151._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p151._1));};var _mdgriffith$elm_style_animation$Animation$borderLeftWidth=function _mdgriffith$elm_style_animation$Animation$borderLeftWidth(_p152){var _p153=_p152;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-left-width',_p153._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p153._1));};var _mdgriffith$elm_style_animation$Animation$borderRightWidth=function _mdgriffith$elm_style_animation$Animation$borderRightWidth(_p154){var _p155=_p154;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-right-width',_p155._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p155._1));};var _mdgriffith$elm_style_animation$Animation$borderTopWidth=function _mdgriffith$elm_style_animation$Animation$borderTopWidth(_p156){var _p157=_p156;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-top-width',_p157._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p157._1));};var _mdgriffith$elm_style_animation$Animation$borderBottomWidth=function _mdgriffith$elm_style_animation$Animation$borderBottomWidth(_p158){var _p159=_p158;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-bottom-width',_p159._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p159._1));};var _mdgriffith$elm_style_animation$Animation$borderRadius=function _mdgriffith$elm_style_animation$Animation$borderRadius(_p160){var _p161=_p160;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-radius',_p161._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p161._1));};var _mdgriffith$elm_style_animation$Animation$borderTopLeftRadius=function _mdgriffith$elm_style_animation$Animation$borderTopLeftRadius(_p162){var _p163=_p162;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-top-left-radius',_p163._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p163._1));};var _mdgriffith$elm_style_animation$Animation$borderTopRightRadius=function _mdgriffith$elm_style_animation$Animation$borderTopRightRadius(_p164){var _p165=_p164;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-top-right-radius',_p165._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p165._1));};var _mdgriffith$elm_style_animation$Animation$borderBottomLeftRadius=function _mdgriffith$elm_style_animation$Animation$borderBottomLeftRadius(_p166){var _p167=_p166;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-bottom-left-radius',_p167._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p167._1));};var _mdgriffith$elm_style_animation$Animation$borderBottomRightRadius=function _mdgriffith$elm_style_animation$Animation$borderBottomRightRadius(_p168){var _p169=_p168;return A3(_mdgriffith$elm_style_animation$Animation$length,'border-bottom-right-radius',_p169._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p169._1));};var _mdgriffith$elm_style_animation$Animation$letterSpacing=function _mdgriffith$elm_style_animation$Animation$letterSpacing(_p170){var _p171=_p170;return A3(_mdgriffith$elm_style_animation$Animation$length,'letter-spacing',_p171._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p171._1));};var _mdgriffith$elm_style_animation$Animation$lineHeight=function _mdgriffith$elm_style_animation$Animation$lineHeight(_p172){var _p173=_p172;return A3(_mdgriffith$elm_style_animation$Animation$length,'line-height',_p173._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p173._1));};var _mdgriffith$elm_style_animation$Animation$backgroundPosition=F2(function(_p175,_p174){var _p176=_p175;var _p177=_p174;return A3(_mdgriffith$elm_style_animation$Animation$length2,'background-position',{ctor:'_Tuple2',_0:_p176._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p176._1)},{ctor:'_Tuple2',_0:_p177._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p177._1)});});var _mdgriffith$elm_style_animation$Animation$translate=F2(function(_p179,_p178){var _p180=_p179;var _p181=_p178;return A3(_mdgriffith$elm_style_animation$Animation$length2,'translate',{ctor:'_Tuple2',_0:_p180._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p180._1)},{ctor:'_Tuple2',_0:_p181._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p181._1)});});var _mdgriffith$elm_style_animation$Animation$translate3d=F3(function(_p184,_p183,_p182){var _p185=_p184;var _p186=_p183;var _p187=_p182;return A4(_mdgriffith$elm_style_animation$Animation$length3,'translate3d',{ctor:'_Tuple2',_0:_p185._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p185._1)},{ctor:'_Tuple2',_0:_p186._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p186._1)},{ctor:'_Tuple2',_0:_p187._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p187._1)});});var _mdgriffith$elm_style_animation$Animation$transformOrigin=F3(function(_p190,_p189,_p188){var _p191=_p190;var _p192=_p189;var _p193=_p188;return A4(_mdgriffith$elm_style_animation$Animation$length3,'transform-origin',{ctor:'_Tuple2',_0:_p191._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p191._1)},{ctor:'_Tuple2',_0:_p192._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p192._1)},{ctor:'_Tuple2',_0:_p193._0,_1:_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p193._1)});});var _mdgriffith$elm_style_animation$Animation$blur=function _mdgriffith$elm_style_animation$Animation$blur(_p194){var _p195=_p194;return A3(_mdgriffith$elm_style_animation$Animation$length,'blur',_p195._0,_mdgriffith$elm_style_animation$Animation$lengthUnitName(_p195._1));};var _mdgriffith$elm_style_animation$Animation$update=F2(function(tick,animation){return _elm_lang$core$Tuple$first(A2(_mdgriffith$elm_style_animation$Animation_Model$updateAnimation,tick,animation));});var _mdgriffith$elm_style_animation$Animation$debug=function _mdgriffith$elm_style_animation$Animation$debug(_p196){var _p197=_p196;var _p207=_p197._0;var time=_p207.timing.current;var getValueTuple=function getValueTuple(prop){var _p198=prop;switch(_p198.ctor){case'ExactProperty':return{ctor:'[]'};case'ColorProperty':var _p199=_p198._0;return{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p199,'-red'),_1:_p198._1,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p199,'-green'),_1:_p198._2,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p199,'-blue'),_1:_p198._3,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p199,'-alpha'),_1:_p198._4,_2:time},_1:{ctor:'[]'}}}}};case'ShadowProperty':var _p201=_p198._2;var _p200=_p198._0;var name=_p198._1?A2(_elm_lang$core$Basics_ops['++'],_p200,'-inset'):_p200;return{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-offsetX'),_1:_p201.offsetX,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-offsetY'),_1:_p201.offsetY,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-size'),_1:_p201.size,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-blur'),_1:_p201.blur,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-red'),_1:_p201.red,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-green'),_1:_p201.green,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-blue'),_1:_p201.blue,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],name,'-alpha'),_1:_p201.alpha,_2:time},_1:{ctor:'[]'}}}}}}}}};case'Property':return{ctor:'::',_0:{ctor:'_Tuple3',_0:_p198._0,_1:_p198._1,_2:time},_1:{ctor:'[]'}};case'Property2':var _p202=_p198._0;return{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p202,'-x'),_1:_p198._1,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p202,'-y'),_1:_p198._2,_2:time},_1:{ctor:'[]'}}};case'Property3':var _p203=_p198._0;return{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p203,'-x'),_1:_p198._1,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p203,'-y'),_1:_p198._2,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p203,'-z'),_1:_p198._3,_2:time},_1:{ctor:'[]'}}}};case'Property4':var _p204=_p198._0;return{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p204,'-w'),_1:_p198._1,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p204,'-x'),_1:_p198._2,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p204,'-y'),_1:_p198._3,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_p204,'-z'),_1:_p198._4,_2:time},_1:{ctor:'[]'}}}}};case'AngleProperty':return{ctor:'::',_0:{ctor:'_Tuple3',_0:_p198._0,_1:_p198._1,_2:time},_1:{ctor:'[]'}};case'Points':var name='points';return _elm_lang$core$List$concat(A2(_elm_lang$core$List$indexedMap,F2(function(i,_p205){var _p206=_p205;return{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(i),A2(_elm_lang$core$Basics_ops['++'],name,'-x')),_1:_p206._0,_2:time},_1:{ctor:'::',_0:{ctor:'_Tuple3',_0:A2(_elm_lang$core$Basics_ops['++'],_elm_lang$core$Basics$toString(i),A2(_elm_lang$core$Basics_ops['++'],name,'-y')),_1:_p206._1,_2:time},_1:{ctor:'[]'}}};}),_p198._0));default:return{ctor:'[]'};}};return A2(_elm_lang$core$List$concatMap,getValueTuple,_p207.style);};var _mdgriffith$elm_style_animation$Animation$isRunning=function _mdgriffith$elm_style_animation$Animation$isRunning(_p208){var _p209=_p208;return _p209._0.running;};var _mdgriffith$elm_style_animation$Animation$subscription=F2(function(msg,states){return A2(_elm_lang$core$List$any,_mdgriffith$elm_style_animation$Animation$isRunning,states)?A2(_elm_lang$core$Platform_Sub$map,msg,_elm_lang$animation_frame$AnimationFrame$times(_mdgriffith$elm_style_animation$Animation_Model$Tick)):_elm_lang$core$Platform_Sub$none;});var _mdgriffith$elm_style_animation$Animation$extractInitialWait=function _mdgriffith$elm_style_animation$Animation$extractInitialWait(steps){var _p210=_elm_lang$core$List$head(steps);if(_p210.ctor==='Nothing'){return{ctor:'_Tuple2',_0:0,_1:{ctor:'[]'}};}else{var _p211=_p210._0;if(_p211.ctor==='Wait'){var _p212=_mdgriffith$elm_style_animation$Animation$extractInitialWait(A2(_elm_lang$core$List$drop,1,steps));var additionalTime=_p212._0;var remainingSteps=_p212._1;return{ctor:'_Tuple2',_0:_p211._0+additionalTime,_1:remainingSteps};}else{return{ctor:'_Tuple2',_0:0,_1:steps};}}};var _mdgriffith$elm_style_animation$Animation$interrupt=F2(function(steps,_p213){var _p214=_p213;var _p215=_p214._0;return _mdgriffith$elm_style_animation$Animation_Model$Animation(_elm_lang$core$Native_Utils.update(_p215,{interruption:{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$extractInitialWait(steps),_1:_p215.interruption},running:true}));});var _mdgriffith$elm_style_animation$Animation$queue=F2(function(steps,_p216){var _p217=_p216;var _p218=_p217._0;return _mdgriffith$elm_style_animation$Animation_Model$Animation(_elm_lang$core$Native_Utils.update(_p218,{steps:A2(_elm_lang$core$Basics_ops['++'],_p218.steps,steps),running:true}));});var _mdgriffith$elm_style_animation$Animation$warnForDoubleListedProperties=function _mdgriffith$elm_style_animation$Animation$warnForDoubleListedProperties(props){var _p219=A2(_elm_lang$core$List$map,function(propGroup){var _p220=_elm_lang$core$List$head(propGroup);if(_p220.ctor==='Nothing'){return'';}else{return _elm_lang$core$Native_Utils.cmp(_elm_lang$core$List$length(propGroup),1)>0?A2(_elm_lang$core$Debug$log,'elm-style-animation',A2(_elm_lang$core$Basics_ops['++'],'The \"',A2(_elm_lang$core$Basics_ops['++'],_p220._0,'\" css property is listed more than once.  Only the last instance will be used.'))):'';}},A2(_elm_community$list_extra$List_Extra$groupWhile,F2(function(x,y){return _elm_lang$core$Native_Utils.eq(x,y);}),_elm_lang$core$List$sort(A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$propertyName,A2(_elm_lang$core$List$filter,function(prop){return!_mdgriffith$elm_style_animation$Animation$isTransformation(prop);},props)))));return props;};var _mdgriffith$elm_style_animation$Animation$initialState=function _mdgriffith$elm_style_animation$Animation$initialState(current){return _mdgriffith$elm_style_animation$Animation_Model$Animation({steps:{ctor:'[]'},style:current,timing:{current:0,dt:0},running:false,interruption:{ctor:'[]'}});};var _mdgriffith$elm_style_animation$Animation$styleWith=F2(function(interp,props){return _mdgriffith$elm_style_animation$Animation$initialState(A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$mapToMotion(function(m){return _elm_lang$core$Native_Utils.update(m,{interpolation:interp});}),_mdgriffith$elm_style_animation$Animation$warnForDoubleListedProperties(props)));});var _mdgriffith$elm_style_animation$Animation$styleWithEach=function _mdgriffith$elm_style_animation$Animation$styleWithEach(props){var _p221=_mdgriffith$elm_style_animation$Animation$warnForDoubleListedProperties(A2(_elm_lang$core$List$map,_elm_lang$core$Tuple$second,props));return _mdgriffith$elm_style_animation$Animation$initialState(A2(_elm_lang$core$List$map,function(_p222){var _p223=_p222;return A2(_mdgriffith$elm_style_animation$Animation_Model$mapToMotion,function(m){return _elm_lang$core$Native_Utils.update(m,{interpolation:_p223._0});},_p223._1);},props));};var _mdgriffith$elm_style_animation$Animation$loop=function _mdgriffith$elm_style_animation$Animation$loop(steps){return _mdgriffith$elm_style_animation$Animation_Model$Loop(steps);};var _mdgriffith$elm_style_animation$Animation$repeat=F2(function(n,steps){return A2(_mdgriffith$elm_style_animation$Animation_Model$Repeat,n,steps);});var _mdgriffith$elm_style_animation$Animation$set=function _mdgriffith$elm_style_animation$Animation$set(props){return _mdgriffith$elm_style_animation$Animation_Model$Set(props);};var _mdgriffith$elm_style_animation$Animation$toWithEach=function _mdgriffith$elm_style_animation$Animation$toWithEach(interpProps){return _mdgriffith$elm_style_animation$Animation_Model$ToWith(A2(_elm_lang$core$List$map,function(_p224){var _p225=_p224;return A2(_mdgriffith$elm_style_animation$Animation_Model$mapToMotion,function(m){return _elm_lang$core$Native_Utils.update(m,{interpolation:_p225._0});},_p225._1);},interpProps));};var _mdgriffith$elm_style_animation$Animation$toWith=F2(function(interp,props){return _mdgriffith$elm_style_animation$Animation_Model$ToWith(A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation_Model$mapToMotion(function(m){return _elm_lang$core$Native_Utils.update(m,{interpolation:interp});}),props));});var _mdgriffith$elm_style_animation$Animation$to=function _mdgriffith$elm_style_animation$Animation$to(props){return _mdgriffith$elm_style_animation$Animation_Model$To(props);};var _mdgriffith$elm_style_animation$Animation$wait=function _mdgriffith$elm_style_animation$Animation$wait(till){return _mdgriffith$elm_style_animation$Animation_Model$Wait(till);};var _mdgriffith$elm_style_animation$Animation$speed=function _mdgriffith$elm_style_animation$Animation$speed(speed){return _mdgriffith$elm_style_animation$Animation_Model$AtSpeed(speed);};var _mdgriffith$elm_style_animation$Animation$defaultInterpolationByProperty=function _mdgriffith$elm_style_animation$Animation$defaultInterpolationByProperty(prop){var linear=function linear(duration){return _mdgriffith$elm_style_animation$Animation_Model$Easing({progress:1,start:0,duration:duration,ease:_elm_lang$core$Basics$identity});};var spring=_mdgriffith$elm_style_animation$Animation_Model$Spring({stiffness:170,damping:26});var _p226=prop;switch(_p226.ctor){case'ExactProperty':return spring;case'ColorProperty':return linear(0.4*_elm_lang$core$Time$second);case'ShadowProperty':return spring;case'Property':return spring;case'Property2':return spring;case'Property3':return _elm_lang$core$Native_Utils.eq(_p226._0,'rotate3d')?_mdgriffith$elm_style_animation$Animation$speed({perSecond:_elm_lang$core$Basics$pi}):spring;case'Property4':return spring;case'AngleProperty':return _mdgriffith$elm_style_animation$Animation$speed({perSecond:_elm_lang$core$Basics$pi});case'Points':return spring;default:return spring;}};var _mdgriffith$elm_style_animation$Animation$setDefaultInterpolation=function _mdgriffith$elm_style_animation$Animation$setDefaultInterpolation(prop){var interp=_mdgriffith$elm_style_animation$Animation$defaultInterpolationByProperty(prop);return A2(_mdgriffith$elm_style_animation$Animation_Model$mapToMotion,function(m){return _elm_lang$core$Native_Utils.update(m,{interpolation:interp});},prop);};var _mdgriffith$elm_style_animation$Animation$style=function _mdgriffith$elm_style_animation$Animation$style(props){return _mdgriffith$elm_style_animation$Animation$initialState(A2(_elm_lang$core$List$map,_mdgriffith$elm_style_animation$Animation$setDefaultInterpolation,_mdgriffith$elm_style_animation$Animation$warnForDoubleListedProperties(props)));};var _mdgriffith$elm_style_animation$Animation$easing=function _mdgriffith$elm_style_animation$Animation$easing(_p227){var _p228=_p227;return _mdgriffith$elm_style_animation$Animation_Model$Easing({progress:1,duration:_p228.duration,start:0,ease:_p228.ease});};var _mdgriffith$elm_style_animation$Animation$spring=function _mdgriffith$elm_style_animation$Animation$spring(settings){return _mdgriffith$elm_style_animation$Animation_Model$Spring(settings);};var _mdgriffith$elm_style_animation$Animation$Shadow=F5(function(a,b,c,d,e){return{offsetX:a,offsetY:b,size:c,blur:d,color:e};});var _mdgriffith$elm_style_animation$Animation$CubicCurve=F3(function(a,b,c){return{control1:a,control2:b,point:c};});var _mdgriffith$elm_style_animation$Animation$QuadraticCurve=F2(function(a,b){return{control:a,point:b};});var _mdgriffith$elm_style_animation$Animation$Arc=F6(function(a,b,c,d,e,f){return{x:a,y:b,radius:c,startAngle:d,endAngle:e,clockwise:f};});var _mdgriffith$elm_style_animation$Animation$Pc={ctor:'Pc'};var _mdgriffith$elm_style_animation$Animation$Pt={ctor:'Pt'};var _mdgriffith$elm_style_animation$Animation$In={ctor:'In'};var _mdgriffith$elm_style_animation$Animation$Cm={ctor:'Cm'};var _mdgriffith$elm_style_animation$Animation$Mm={ctor:'Mm'};var _mdgriffith$elm_style_animation$Animation$Vmax={ctor:'Vmax'};var _mdgriffith$elm_style_animation$Animation$Vmin={ctor:'Vmin'};var _mdgriffith$elm_style_animation$Animation$Vw={ctor:'Vw'};var _mdgriffith$elm_style_animation$Animation$Vh={ctor:'Vh'};var _mdgriffith$elm_style_animation$Animation$Ch={ctor:'Ch'};var _mdgriffith$elm_style_animation$Animation$Ex={ctor:'Ex'};var _mdgriffith$elm_style_animation$Animation$Em={ctor:'Em'};var _mdgriffith$elm_style_animation$Animation$Rem={ctor:'Rem'};var _mdgriffith$elm_style_animation$Animation$Percent={ctor:'Percent'};var _mdgriffith$elm_style_animation$Animation$Px={ctor:'Px'};var _mdgriffith$elm_style_animation$Animation$NoUnit={ctor:'NoUnit'};var _mdgriffith$elm_style_animation$Animation$Length=F2(function(a,b){return{ctor:'Length',_0:a,_1:b};});var _mdgriffith$elm_style_animation$Animation$px=function _mdgriffith$elm_style_animation$Animation$px(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Px);};var _mdgriffith$elm_style_animation$Animation$percent=function _mdgriffith$elm_style_animation$Animation$percent(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Percent);};var _mdgriffith$elm_style_animation$Animation$rem=function _mdgriffith$elm_style_animation$Animation$rem(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Rem);};var _mdgriffith$elm_style_animation$Animation$em=function _mdgriffith$elm_style_animation$Animation$em(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Em);};var _mdgriffith$elm_style_animation$Animation$ex=function _mdgriffith$elm_style_animation$Animation$ex(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Ex);};var _mdgriffith$elm_style_animation$Animation$ch=function _mdgriffith$elm_style_animation$Animation$ch(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Ch);};var _mdgriffith$elm_style_animation$Animation$vh=function _mdgriffith$elm_style_animation$Animation$vh(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Vh);};var _mdgriffith$elm_style_animation$Animation$vw=function _mdgriffith$elm_style_animation$Animation$vw(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Vw);};var _mdgriffith$elm_style_animation$Animation$vmin=function _mdgriffith$elm_style_animation$Animation$vmin(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Vmin);};var _mdgriffith$elm_style_animation$Animation$vmax=function _mdgriffith$elm_style_animation$Animation$vmax(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Vmax);};var _mdgriffith$elm_style_animation$Animation$mm=function _mdgriffith$elm_style_animation$Animation$mm(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Mm);};var _mdgriffith$elm_style_animation$Animation$cm=function _mdgriffith$elm_style_animation$Animation$cm(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Cm);};var _mdgriffith$elm_style_animation$Animation$inches=function _mdgriffith$elm_style_animation$Animation$inches(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$In);};var _mdgriffith$elm_style_animation$Animation$pt=function _mdgriffith$elm_style_animation$Animation$pt(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Pt);};var _mdgriffith$elm_style_animation$Animation$pc=function _mdgriffith$elm_style_animation$Animation$pc(x){return A2(_mdgriffith$elm_style_animation$Animation$Length,x,_mdgriffith$elm_style_animation$Animation$Pc);};var _mdgriffith$elm_style_animation$Animation$Radians=function _mdgriffith$elm_style_animation$Animation$Radians(a){return{ctor:'Radians',_0:a};};var _mdgriffith$elm_style_animation$Animation$deg=function _mdgriffith$elm_style_animation$Animation$deg(a){return _mdgriffith$elm_style_animation$Animation$Radians(a/360*(2*_elm_lang$core$Basics$pi));};var _mdgriffith$elm_style_animation$Animation$grad=function _mdgriffith$elm_style_animation$Animation$grad(a){return _mdgriffith$elm_style_animation$Animation$Radians(a/400*(2*_elm_lang$core$Basics$pi));};var _mdgriffith$elm_style_animation$Animation$rad=function _mdgriffith$elm_style_animation$Animation$rad(a){return _mdgriffith$elm_style_animation$Animation$Radians(a);};var _mdgriffith$elm_style_animation$Animation$turn=function _mdgriffith$elm_style_animation$Animation$turn(a){return _mdgriffith$elm_style_animation$Animation$Radians(a*(2*_elm_lang$core$Basics$pi));};var _mdgriffith$elm_style_animation$Animation$ListItem={ctor:'ListItem'};var _mdgriffith$elm_style_animation$Animation$listItem=_mdgriffith$elm_style_animation$Animation$ListItem;var _mdgriffith$elm_style_animation$Animation$InlineFlex={ctor:'InlineFlex'};var _mdgriffith$elm_style_animation$Animation$inlineFlex=_mdgriffith$elm_style_animation$Animation$InlineFlex;var _mdgriffith$elm_style_animation$Animation$Flex={ctor:'Flex'};var _mdgriffith$elm_style_animation$Animation$flex=_mdgriffith$elm_style_animation$Animation$Flex;var _mdgriffith$elm_style_animation$Animation$Block={ctor:'Block'};var _mdgriffith$elm_style_animation$Animation$block=_mdgriffith$elm_style_animation$Animation$Block;var _mdgriffith$elm_style_animation$Animation$InlineBlock={ctor:'InlineBlock'};var _mdgriffith$elm_style_animation$Animation$inlineBlock=_mdgriffith$elm_style_animation$Animation$InlineBlock;var _mdgriffith$elm_style_animation$Animation$Inline={ctor:'Inline'};var _mdgriffith$elm_style_animation$Animation$inline=_mdgriffith$elm_style_animation$Animation$Inline;var _mdgriffith$elm_style_animation$Animation$None={ctor:'None'};var _mdgriffith$elm_style_animation$Animation$none=_mdgriffith$elm_style_animation$Animation$None;var _thaterikperson$elm_blackjack$Blackjack$serializeType=function _thaterikperson$elm_blackjack$Blackjack$serializeType(type_){var _p0=type_;switch(_p0.ctor){case'Two':return 0;case'Three':return 1;case'Four':return 2;case'Five':return 3;case'Six':return 4;case'Seven':return 5;case'Eight':return 6;case'Nine':return 7;case'Ten':return 8;case'Jack':return 9;case'Queen':return 10;case'King':return 11;default:return 12;}};var _thaterikperson$elm_blackjack$Blackjack$serializeSuit=function _thaterikperson$elm_blackjack$Blackjack$serializeSuit(suit){var _p1=suit;switch(_p1.ctor){case'Clubs':return 0;case'Diamonds':return 1;case'Hearts':return 2;default:return 3;}};var _thaterikperson$elm_blackjack$Blackjack$cardValue=function _thaterikperson$elm_blackjack$Blackjack$cardValue(_p2){var _p3=_p2;var _p4=_p3._0.type_;switch(_p4.ctor){case'King':return 10;case'Queen':return 10;case'Jack':return 10;case'Ten':return 10;case'Nine':return 9;case'Eight':return 8;case'Seven':return 7;case'Six':return 6;case'Five':return 5;case'Four':return 4;case'Three':return 3;case'Two':return 2;default:return 0;}};var _thaterikperson$elm_blackjack$Blackjack$isVirtualTen=function _thaterikperson$elm_blackjack$Blackjack$isVirtualTen(_p5){var _p6=_p5;var _p7=_p6._0.type_;switch(_p7.ctor){case'King':return true;case'Queen':return true;case'Ten':return true;case'Jack':return true;default:return false;}};var _thaterikperson$elm_blackjack$Blackjack$isBlackjack=function _thaterikperson$elm_blackjack$Blackjack$isBlackjack(_p8){var _p9=_p8;var _p10=_p9._0;if(_p10.ctor==='::'&&_p10._1.ctor==='::'&&_p10._1._1.ctor==='[]'){var _p11={ctor:'_Tuple2',_0:_p10._0._0.type_,_1:_p10._1._0._0.type_};_v8_2:do{if(_p11.ctor==='_Tuple2'){if(_p11._0.ctor==='Ace'){return _thaterikperson$elm_blackjack$Blackjack$isVirtualTen(_p10._1._0);}else{if(_p11._1.ctor==='Ace'){return _thaterikperson$elm_blackjack$Blackjack$isVirtualTen(_p10._0);}else{break _v8_2;}}}else{break _v8_2;}}while(false);return false;}else{return false;}};var _thaterikperson$elm_blackjack$Blackjack$isSplittable=function _thaterikperson$elm_blackjack$Blackjack$isSplittable(_p12){var _p13=_p12;var _p14=_p13._0;if(_p14.ctor==='::'&&_p14._1.ctor==='::'&&_p14._1._1.ctor==='[]'){return _elm_lang$core$Native_Utils.eq(_p14._0._0.type_,_p14._1._0._0.type_)||_thaterikperson$elm_blackjack$Blackjack$isVirtualTen(_p14._0)&&_thaterikperson$elm_blackjack$Blackjack$isVirtualTen(_p14._1._0);}else{return false;}};var _thaterikperson$elm_blackjack$Blackjack$typeOfCard=function _thaterikperson$elm_blackjack$Blackjack$typeOfCard(_p15){var _p16=_p15;return _p16._0.type_;};var _thaterikperson$elm_blackjack$Blackjack$suitOfCard=function _thaterikperson$elm_blackjack$Blackjack$suitOfCard(_p17){var _p18=_p17;return _p18._0.suit;};var _thaterikperson$elm_blackjack$Blackjack$BjHand=function _thaterikperson$elm_blackjack$Blackjack$BjHand(a){return{ctor:'BjHand',_0:a};};var _thaterikperson$elm_blackjack$Blackjack$newHand=_thaterikperson$elm_blackjack$Blackjack$BjHand({ctor:'[]'});var _thaterikperson$elm_blackjack$Blackjack$addCardToHand=F2(function(card,_p19){var _p20=_p19;return _thaterikperson$elm_blackjack$Blackjack$BjHand({ctor:'::',_0:card,_1:_p20._0});});var _thaterikperson$elm_blackjack$Blackjack$addCardsToHand=F2(function(cards,_p21){var _p22=_p21;return _thaterikperson$elm_blackjack$Blackjack$BjHand(A2(_elm_lang$core$Basics_ops['++'],cards,_p22._0));});var _thaterikperson$elm_blackjack$Blackjack$BjCard=function _thaterikperson$elm_blackjack$Blackjack$BjCard(a){return{ctor:'BjCard',_0:a};};var _thaterikperson$elm_blackjack$Blackjack$newCard=F2(function(type_,suit){return _thaterikperson$elm_blackjack$Blackjack$BjCard({type_:type_,suit:suit});});var _thaterikperson$elm_blackjack$Blackjack$Two={ctor:'Two'};var _thaterikperson$elm_blackjack$Blackjack$Three={ctor:'Three'};var _thaterikperson$elm_blackjack$Blackjack$Four={ctor:'Four'};var _thaterikperson$elm_blackjack$Blackjack$Five={ctor:'Five'};var _thaterikperson$elm_blackjack$Blackjack$Six={ctor:'Six'};var _thaterikperson$elm_blackjack$Blackjack$Seven={ctor:'Seven'};var _thaterikperson$elm_blackjack$Blackjack$Eight={ctor:'Eight'};var _thaterikperson$elm_blackjack$Blackjack$Nine={ctor:'Nine'};var _thaterikperson$elm_blackjack$Blackjack$Ten={ctor:'Ten'};var _thaterikperson$elm_blackjack$Blackjack$Jack={ctor:'Jack'};var _thaterikperson$elm_blackjack$Blackjack$Queen={ctor:'Queen'};var _thaterikperson$elm_blackjack$Blackjack$King={ctor:'King'};var _thaterikperson$elm_blackjack$Blackjack$Ace={ctor:'Ace'};var _thaterikperson$elm_blackjack$Blackjack$hasAce=function _thaterikperson$elm_blackjack$Blackjack$hasAce(_p23){var _p24=_p23;return A2(_elm_lang$core$List$any,function(_p25){var _p26=_p25;return _elm_lang$core$Native_Utils.eq(_p26._0.type_,_thaterikperson$elm_blackjack$Blackjack$Ace);},_p24._0);};var _thaterikperson$elm_blackjack$Blackjack$potentialScores=function _thaterikperson$elm_blackjack$Blackjack$potentialScores(_p27){var _p28=_p27;var func=F2(function(_p29,scores){var _p30=_p29;var plus11=A2(_elm_lang$core$List$map,function(s){return s+11;},scores);var plus1=A2(_elm_lang$core$List$map,function(s){return s+1;},scores);return A2(_elm_lang$core$Basics_ops['++'],plus11,plus1);});var _p31=A2(_elm_lang$core$List$partition,function(_p32){var _p33=_p32;return _elm_lang$core$Native_Utils.eq(_p33._0.type_,_thaterikperson$elm_blackjack$Blackjack$Ace);},_p28._0);var aces=_p31._0;var noAces=_p31._1;var preAcesSum=_elm_lang$core$List$sum(A2(_elm_lang$core$List$map,_thaterikperson$elm_blackjack$Blackjack$cardValue,noAces));var afterAces=A3(_elm_lang$core$List$foldl,func,{ctor:'::',_0:preAcesSum,_1:{ctor:'[]'}},aces);return A2(_elm_lang$core$List$sortWith,F2(function(a,b){return A2(_elm_lang$core$Basics$compare,b,a);}),afterAces);};var _thaterikperson$elm_blackjack$Blackjack$bestScore=function _thaterikperson$elm_blackjack$Blackjack$bestScore(hand){var goodScores=A2(_elm_lang$core$List$filter,function(c){return _elm_lang$core$Native_Utils.cmp(c,21)<1;},_thaterikperson$elm_blackjack$Blackjack$potentialScores(hand));return A2(_elm_lang$core$Maybe$withDefault,0,_elm_lang$core$List$head(goodScores));};var _thaterikperson$elm_blackjack$Blackjack$isBust=function _thaterikperson$elm_blackjack$Blackjack$isBust(hand){return _elm_lang$core$Native_Utils.eq(_thaterikperson$elm_blackjack$Blackjack$bestScore(hand),0);};var _thaterikperson$elm_blackjack$Blackjack$isTwentyOne=function _thaterikperson$elm_blackjack$Blackjack$isTwentyOne(hand){return _elm_lang$core$Native_Utils.eq(_thaterikperson$elm_blackjack$Blackjack$bestScore(hand),21);};var _thaterikperson$elm_blackjack$Blackjack$isHandBetterThan=F2(function(hand1,hand2){return _elm_lang$core$Native_Utils.cmp(_thaterikperson$elm_blackjack$Blackjack$bestScore(hand1),_thaterikperson$elm_blackjack$Blackjack$bestScore(hand2))>0;});var _thaterikperson$elm_blackjack$Blackjack$isHandTiedWith=F2(function(hand1,hand2){return _elm_lang$core$Native_Utils.eq(_thaterikperson$elm_blackjack$Blackjack$bestScore(hand1),_thaterikperson$elm_blackjack$Blackjack$bestScore(hand2));});var _thaterikperson$elm_blackjack$Blackjack$deserializeType=function _thaterikperson$elm_blackjack$Blackjack$deserializeType(type_){var _p34=type_;switch(_p34){case 0:return _thaterikperson$elm_blackjack$Blackjack$Two;case 1:return _thaterikperson$elm_blackjack$Blackjack$Three;case 2:return _thaterikperson$elm_blackjack$Blackjack$Four;case 3:return _thaterikperson$elm_blackjack$Blackjack$Five;case 4:return _thaterikperson$elm_blackjack$Blackjack$Six;case 5:return _thaterikperson$elm_blackjack$Blackjack$Seven;case 6:return _thaterikperson$elm_blackjack$Blackjack$Eight;case 7:return _thaterikperson$elm_blackjack$Blackjack$Nine;case 8:return _thaterikperson$elm_blackjack$Blackjack$Ten;case 9:return _thaterikperson$elm_blackjack$Blackjack$Jack;case 10:return _thaterikperson$elm_blackjack$Blackjack$Queen;case 11:return _thaterikperson$elm_blackjack$Blackjack$King;default:return _thaterikperson$elm_blackjack$Blackjack$Ace;}};var _thaterikperson$elm_blackjack$Blackjack$Spades={ctor:'Spades'};var _thaterikperson$elm_blackjack$Blackjack$Hearts={ctor:'Hearts'};var _thaterikperson$elm_blackjack$Blackjack$Diamonds={ctor:'Diamonds'};var _thaterikperson$elm_blackjack$Blackjack$Clubs={ctor:'Clubs'};var _thaterikperson$elm_blackjack$Blackjack$deserializeSuit=function _thaterikperson$elm_blackjack$Blackjack$deserializeSuit(suit){var _p35=suit;switch(_p35){case 0:return _thaterikperson$elm_blackjack$Blackjack$Clubs;case 1:return _thaterikperson$elm_blackjack$Blackjack$Diamonds;case 2:return _thaterikperson$elm_blackjack$Blackjack$Hearts;default:return _thaterikperson$elm_blackjack$Blackjack$Spades;}};var _thaterikperson$elm_blackjack$Blackjack$deserializeCard=F2(function(type_,suit){return _thaterikperson$elm_blackjack$Blackjack$BjCard({type_:_thaterikperson$elm_blackjack$Blackjack$deserializeType(type_),suit:_thaterikperson$elm_blackjack$Blackjack$deserializeSuit(suit)});});var _user$project$Routes$pageToPath=function _user$project$Routes$pageToPath(page){var _p0=page;switch(_p0.ctor){case'Home':return'/';case'About':return'/about';default:return A2(_elm_lang$core$Basics_ops['++'],'/theme/',_p0._0);}};var _user$project$Routes$Theme=function _user$project$Routes$Theme(a){return{ctor:'Theme',_0:a};};var _user$project$Routes$About={ctor:'About'};var _user$project$Routes$Home={ctor:'Home'};var _user$project$Routes$pageParser=_evancz$url_parser$UrlParser$oneOf({ctor:'::',_0:A2(_evancz$url_parser$UrlParser$map,_user$project$Routes$Home,_evancz$url_parser$UrlParser$s('')),_1:{ctor:'::',_0:A2(_evancz$url_parser$UrlParser$map,_user$project$Routes$About,_evancz$url_parser$UrlParser$s('about')),_1:{ctor:'::',_0:A2(_evancz$url_parser$UrlParser$map,_user$project$Routes$Theme,A2(_evancz$url_parser$UrlParser_ops['</>'],_evancz$url_parser$UrlParser$s('theme'),_evancz$url_parser$UrlParser$string)),_1:{ctor:'[]'}}}});var _user$project$Routes$pathParser=function _user$project$Routes$pathParser(location){return A2(_evancz$url_parser$UrlParser$parsePath,_user$project$Routes$pageParser,location);};var _user$project$Model$shuffle=F3(function(unshuffled,i,seed){shuffle:while(true){var mAtI=A2(_elm_lang$core$Array$get,i,unshuffled);var g=A2(_elm_lang$core$Random$int,0,_elm_lang$core$Array$length(unshuffled)-i-1);var _p0=A2(_elm_lang$core$Random$step,g,seed);var j=_p0._0;var nextSeed=_p0._1;var mAtIJ=A2(_elm_lang$core$Array$get,i+j,unshuffled);var shuffled=function(){var _p1={ctor:'_Tuple2',_0:mAtI,_1:mAtIJ};if(_p1.ctor==='_Tuple2'&&_p1._0.ctor==='Just'&&_p1._1.ctor==='Just'){return A3(_elm_lang$core$Array$set,i+j,_p1._0._0,A3(_elm_lang$core$Array$set,i,_p1._1._0,unshuffled));}else{return unshuffled;}}();if(_elm_lang$core$Native_Utils.cmp(i,_elm_lang$core$Array$length(shuffled)-2)>0){return shuffled;}else{var _v1=shuffled,_v2=i+1,_v3=nextSeed;unshuffled=_v1;i=_v2;seed=_v3;continue shuffle;}}});var _user$project$Model$shuffledDeck=function _user$project$Model$shuffledDeck(time){var seed=_elm_lang$core$Random$initialSeed(time);var types={ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Ace,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$King,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Queen,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Jack,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Ten,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Nine,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Eight,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Seven,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Six,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Five,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Four,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Three,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Two,_1:{ctor:'[]'}}}}}}}}}}}}}};var suits={ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Clubs,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Diamonds,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Hearts,_1:{ctor:'::',_0:_thaterikperson$elm_blackjack$Blackjack$Spades,_1:{ctor:'[]'}}}}};var cardsWithSuits=A2(_elm_lang$core$List$concatMap,function(type_){return A2(_elm_lang$core$List$map,_thaterikperson$elm_blackjack$Blackjack$newCard(type_),suits);},types);var fullDeck=_elm_lang$core$Array$fromList(cardsWithSuits);return _elm_lang$core$Array$toList(A3(_user$project$Model$shuffle,fullDeck,0,seed));};var _user$project$Model$Model=function _user$project$Model$Model(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return function(i){return function(j){return function(k){return{card:a,previousCard:b,remainingCards:c,counter:d,error:e,numberOfHands:f,numberOfWins:g,favoriteCasino:h,page:i,isMenuOpen:j,menuStyle:k};};};};};};};};};};};};var _user$project$Model$Animate=function _user$project$Model$Animate(a){return{ctor:'Animate',_0:a};};var _user$project$Model$ToggleMenu={ctor:'ToggleMenu'};var _user$project$Model$NavigateTo=function _user$project$Model$NavigateTo(a){return{ctor:'NavigateTo',_0:a};};var _user$project$Model$UrlChange=function _user$project$Model$UrlChange(a){return{ctor:'UrlChange',_0:a};};var _user$project$Model$DealHand={ctor:'DealHand'};var _user$project$Model$Ceasars={ctor:'Ceasars'};var _user$project$Model$Belagio={ctor:'Belagio'};var _user$project$Model$Unknown={ctor:'Unknown'};var _user$project$Model$initialModel={card:_elm_lang$core$Maybe$Nothing,previousCard:_elm_lang$core$Maybe$Nothing,remainingCards:_user$project$Model$shuffledDeck(0),counter:0,error:_elm_lang$core$Maybe$Nothing,numberOfHands:0,numberOfWins:0,favoriteCasino:_user$project$Model$Unknown,page:_user$project$Routes$Home,isMenuOpen:false,menuStyle:_mdgriffith$elm_style_animation$Animation$style({ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$top(_mdgriffith$elm_style_animation$Animation$rem(-4)),_1:{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$opacity(0.0),_1:{ctor:'[]'}}})};var _user$project$View$onLinkClick=function _user$project$View$onLinkClick(msg){return A3(_elm_lang$html$Html_Events$onWithOptions,'click',{stopPropagation:true,preventDefault:true},_elm_lang$core$Json_Decode$succeed(msg));};var _user$project$View$navView=function _user$project$View$navView(model){var styles=_mdgriffith$elm_style_animation$Animation$render(model.menuStyle);var attributes={ctor:'::',_0:_elm_lang$html$Html_Attributes$class('submenu'),_1:styles};return A2(_elm_lang$html$Html$nav,{ctor:'[]'},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('menu'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$a,{ctor:'::',_0:_elm_lang$html$Html_Attributes$href('#'),_1:{ctor:'::',_0:_user$project$View$onLinkClick(_user$project$Model$ToggleMenu),_1:{ctor:'[]'}}},{ctor:'::',_0:_elm_lang$html$Html$text('Menu'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$span,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('title'),_1:{ctor:'[]'}},{ctor:'::',_0:_elm_lang$html$Html$text('Elm Blackjack'),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('submenu-w'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,attributes,{ctor:'::',_0:A2(_elm_lang$html$Html$a,{ctor:'::',_0:_elm_lang$html$Html_Attributes$href('/'),_1:{ctor:'::',_0:_user$project$View$onLinkClick(_user$project$Model$NavigateTo(_user$project$Routes$Home)),_1:{ctor:'[]'}}},{ctor:'::',_0:_elm_lang$html$Html$text('Black Theme'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$a,{ctor:'::',_0:_elm_lang$html$Html_Attributes$href('/theme/blue'),_1:{ctor:'::',_0:_user$project$View$onLinkClick(_user$project$Model$NavigateTo(_user$project$Routes$Theme('blue'))),_1:{ctor:'[]'}}},{ctor:'::',_0:_elm_lang$html$Html$text('Blue Theme'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$a,{ctor:'::',_0:_elm_lang$html$Html_Attributes$href('/theme/red'),_1:{ctor:'::',_0:_user$project$View$onLinkClick(_user$project$Model$NavigateTo(_user$project$Routes$Theme('red'))),_1:{ctor:'[]'}}},{ctor:'::',_0:_elm_lang$html$Html$text('Red Theme'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$a,{ctor:'::',_0:_elm_lang$html$Html_Attributes$href('/about'),_1:{ctor:'::',_0:_user$project$View$onLinkClick(_user$project$Model$NavigateTo(_user$project$Routes$About)),_1:{ctor:'[]'}}},{ctor:'::',_0:_elm_lang$html$Html$text('About'),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}}}}),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}});};var _user$project$View$aboutView=function _user$project$View$aboutView(model){return A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('main container'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('row'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('eight columns offset-by-two'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$h1,{ctor:'[]'},{ctor:'::',_0:_elm_lang$html$Html$text('Blackjack by Elmseeds'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$p,{ctor:'[]'},{ctor:'::',_0:_elm_lang$html$Html$text('A work in progress Blackjack game.'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$p,{ctor:'[]'},{ctor:'::',_0:_elm_lang$html$Html$text('Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus egestas augue porttitor est cursus, non interdum diam luctus. Duis ac auctor quam, eget auctor erat. In porttitor turpis et libero iaculis vestibulum. Cras interdum mi in arcu sagittis dapibus. Suspendisse potenti. Duis id lectus luctus lorem tristique interdum ornare eu lorem. Vivamus eleifend aliquet vulputate. Quisque pretium semper elementum. Vivamus at purus eleifend, viverra nibh nec, euismod felis. Nullam condimentum venenatis elit, id vestibulum leo accumsan at. Nulla sit amet turpis ipsum. Quisque placerat interdum erat a pulvinar. Sed tristique, nisl quis aliquam commodo, metus lectus blandit erat, non porttitor sapien eros eu enim. Sed hendrerit turpis nec risus congue, in lacinia ipsum pretium. Suspendisse a ultricies diam, sit amet ornare augue. Aenean mollis sapien sit amet ligula vestibulum rhoncus. In eget ipsum mollis, consectetur libero nec, venenatis odio. Etiam semper quam vel imperdiet varius.'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$p,{ctor:'[]'},{ctor:'::',_0:A2(_elm_lang$html$Html$a,{ctor:'::',_0:_elm_lang$html$Html_Attributes$href('/'),_1:{ctor:'::',_0:_user$project$View$onLinkClick(_user$project$Model$NavigateTo(_user$project$Routes$About)),_1:{ctor:'[]'}}},{ctor:'::',_0:_elm_lang$html$Html$text('Home'),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}}}}),_1:{ctor:'[]'}}),_1:{ctor:'[]'}});};var _user$project$View$dateToString=function _user$project$View$dateToString(date){var month=function(){var _p0=_elm_lang$core$Date$month(date);switch(_p0.ctor){case'Jan':return'Jan';case'Feb':return'Feb';case'Mar':return'Mar';case'Apr':return'Apr';case'May':return'May';case'Jun':return'Jun';case'Jul':return'Jul';case'Aug':return'Aug';case'Sep':return'Sep';case'Oct':return'Oct';case'Nov':return'Nov';default:return'Dec';}}();return A2(_elm_lang$core$Basics_ops['++'],month,A2(_elm_lang$core$Basics_ops['++'],' ',_elm_lang$core$Basics$toString(_elm_lang$core$Date$day(date))));};var _user$project$View$cardToText=function _user$project$View$cardToText(card){var typeText=function(){var _p1=_thaterikperson$elm_blackjack$Blackjack$typeOfCard(card);switch(_p1.ctor){case'Ace':return'A';case'King':return'K';case'Queen':return'Q';case'Jack':return'J';case'Ten':return'10';case'Nine':return'9';case'Eight':return'8';case'Seven':return'7';case'Six':return'6';case'Five':return'5';case'Four':return'4';case'Three':return'3';default:return'2';}}();var suitText=function(){var _p2=_thaterikperson$elm_blackjack$Blackjack$suitOfCard(card);switch(_p2.ctor){case'Clubs':return'Clubs';case'Diamonds':return'Diamonds';case'Hearts':return'Hearts';default:return'Spades';}}();return A2(_elm_lang$core$Basics_ops['++'],typeText,A2(_elm_lang$core$Basics_ops['++'],' ',suitText));};var _user$project$View$customThemeView=F2(function(theme,model){var deckView=A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('deck'),_1:{ctor:'[]'}},{ctor:'[]'});var cardLabel=function cardLabel(c){return A2(_elm_lang$html$Html$label,{ctor:'[]'},{ctor:'::',_0:_elm_lang$html$Html$text(_user$project$View$cardToText(c)),_1:{ctor:'[]'}});};var blank=A2(_elm_lang$html$Html$span,{ctor:'[]'},{ctor:'[]'});var cardView=function(){var _p3=model.card;if(_p3.ctor==='Nothing'){return blank;}else{return A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('card'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('back'),_1:{ctor:'[]'}},{ctor:'::',_0:_elm_lang$html$Html$text('back'),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('front'),_1:{ctor:'[]'}},{ctor:'::',_0:cardLabel(_p3._0),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}});}}();return A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class(A2(_elm_lang$core$Basics_ops['++'],'main container ',theme)),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('row card-row'),_1:{ctor:'[]'}},{ctor:'::',_0:deckView,_1:{ctor:'::',_0:cardView,_1:{ctor:'[]'}}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('row'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('one-third column'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$button,{ctor:'::',_0:_elm_lang$html$Html_Events$onClick(_user$project$Model$DealHand),_1:{ctor:'[]'}},{ctor:'::',_0:_elm_lang$html$Html$text('Deal'),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}),_1:{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('row'),_1:{ctor:'[]'}},{ctor:'::',_0:A2(_elm_lang$html$Html$div,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('one-third column'),_1:{ctor:'[]'}},{ctor:'::',_0:function(){var _p4=model.error;if(_p4.ctor==='Nothing'){return A2(_elm_lang$html$Html$span,{ctor:'[]'},{ctor:'[]'});}else{return A2(_elm_lang$html$Html$span,{ctor:'::',_0:_elm_lang$html$Html_Attributes$class('error'),_1:{ctor:'[]'}},{ctor:'::',_0:_elm_lang$html$Html$text(_p4._0),_1:{ctor:'[]'}});}}(),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}),_1:{ctor:'[]'}}}});});var _user$project$View$homeView=function _user$project$View$homeView(model){return A2(_user$project$View$customThemeView,'black',model);};var _user$project$View$mainView=function _user$project$View$mainView(model){var bodyView=function(){var _p5=model.page;switch(_p5.ctor){case'Home':return _user$project$View$homeView(model);case'About':return _user$project$View$aboutView(model);default:return A2(_user$project$View$customThemeView,_p5._0,model);}}();return A2(_elm_lang$html$Html$div,{ctor:'[]'},{ctor:'::',_0:_user$project$View$navView(model),_1:{ctor:'::',_0:bodyView,_1:{ctor:'[]'}}});};var _user$project$Main$modelWithLocation=F2(function(location,model){var page=A2(_elm_lang$core$Maybe$withDefault,_user$project$Routes$Home,_user$project$Routes$pathParser(location));return _elm_lang$core$Native_Utils.update(model,{page:page});});var _user$project$Main$update=F2(function(msg,model){var _p0=function(){var _p1=model.remainingCards;if(_p1.ctor==='::'&&_p1._1.ctor==='::'){return{ctor:'_Tuple3',_0:_elm_lang$core$Maybe$Just(_p1._0),_1:_elm_lang$core$Maybe$Just(_p1._1._0),_2:_p1._1._1};}else{return{ctor:'_Tuple3',_0:_elm_lang$core$Maybe$Nothing,_1:_elm_lang$core$Maybe$Nothing,_2:{ctor:'[]'}};}}();var leftCard=_p0._0;var rightCard=_p0._1;var remainingCards=_p0._2;var _p2=msg;switch(_p2.ctor){case'DealHand':var updated=_elm_lang$core$Native_Utils.update(model,{card:rightCard,previousCard:leftCard,counter:model.counter+1,error:_elm_lang$core$Maybe$Nothing,remainingCards:remainingCards});return A2(_elm_lang$core$Platform_Cmd_ops['!'],updated,{ctor:'[]'});case'ToggleMenu':var tos=model.isMenuOpen?{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$top(_mdgriffith$elm_style_animation$Animation$rem(-4)),_1:{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$opacity(0.0),_1:{ctor:'[]'}}}:{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$top(_mdgriffith$elm_style_animation$Animation$rem(0)),_1:{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$opacity(1.0),_1:{ctor:'[]'}}};var menuStyle=A2(_mdgriffith$elm_style_animation$Animation$interrupt,{ctor:'::',_0:_mdgriffith$elm_style_animation$Animation$to(tos),_1:{ctor:'[]'}},model.menuStyle);return A2(_elm_lang$core$Platform_Cmd_ops['!'],_elm_lang$core$Native_Utils.update(model,{isMenuOpen:!model.isMenuOpen,menuStyle:menuStyle}),{ctor:'[]'});case'Animate':var updated=_elm_lang$core$Native_Utils.update(model,{menuStyle:A2(_mdgriffith$elm_style_animation$Animation$update,_p2._0,model.menuStyle)});return A2(_elm_lang$core$Platform_Cmd_ops['!'],updated,{ctor:'[]'});case'UrlChange':return A2(_elm_lang$core$Platform_Cmd_ops['!'],A2(_user$project$Main$modelWithLocation,_p2._0,model),{ctor:'[]'});default:var cmd=_elm_lang$navigation$Navigation$newUrl(_user$project$Routes$pageToPath(_p2._0));return A2(_elm_lang$core$Platform_Cmd_ops['!'],model,{ctor:'::',_0:cmd,_1:{ctor:'[]'}});}});var _user$project$Main$initialState=function _user$project$Main$initialState(location){return A2(_elm_lang$core$Platform_Cmd_ops['!'],A2(_user$project$Main$modelWithLocation,location,_user$project$Model$initialModel),{ctor:'[]'});};var _user$project$Main$main=A2(_elm_lang$navigation$Navigation$program,_user$project$Model$UrlChange,{init:_user$project$Main$initialState,update:_user$project$Main$update,view:_user$project$View$mainView,subscriptions:function subscriptions(model){return A2(_mdgriffith$elm_style_animation$Animation$subscription,_user$project$Model$Animate,{ctor:'::',_0:model.menuStyle,_1:{ctor:'[]'}});}})();var Elm={};Elm['Main']=Elm['Main']||{};if(typeof _user$project$Main$main!=='undefined'){_user$project$Main$main(Elm['Main'],'Main',undefined);}if(typeof define==="function"&&define['amd']){define([],function(){return Elm;});return;}if((typeof module==='undefined'?'undefined':_typeof(module))==="object"){module['exports']=Elm;return;}var globalElm=this['Elm'];if(typeof globalElm==="undefined"){this['Elm']=Elm;return;}for(var publicModule in Elm){if(publicModule in globalElm){throw new Error('There are two Elm modules called `'+publicModule+'` on this page! Rename one of them.');}globalElm[publicModule]=Elm[publicModule];}}).call(undefined);
  });
  
  require.register("web/static/js/socket.js", function(exports, require, module) {
  "use strict";
  
  Object.defineProperty(exports, "__esModule", {
    value: true
  });
  
  var _phoenix = require("phoenix");
  
  var socket = new _phoenix.Socket("/socket", { params: { token: window.userToken } });
  
  // When you connect, you'll often need to authenticate the client.
  // For example, imagine you have an authentication plug, `MyAuth`,
  // which authenticates the session and assigns a `:current_user`.
  // If the current user exists you can assign the user's token in
  // the connection for use in the layout.
  //
  // In your "web/router.ex":
  //
  //     pipeline :browser do
  //       ...
  //       plug MyAuth
  //       plug :put_user_token
  //     end
  //
  //     defp put_user_token(conn, _) do
  //       if current_user = conn.assigns[:current_user] do
  //         token = Phoenix.Token.sign(conn, "user socket", current_user.id)
  //         assign(conn, :user_token, token)
  //       else
  //         conn
  //       end
  //     end
  //
  // Now you need to pass this token to JavaScript. You can do so
  // inside a script tag in "web/templates/layout/app.html.eex":
  //
  //     <script>window.userToken = "<%= assigns[:user_token] %>";</script>
  //
  // You will need to verify the user token in the "connect/2" function
  // in "web/channels/user_socket.ex":
  //
  //     def connect(%{"token" => token}, socket) do
  //       # max_age: 1209600 is equivalent to two weeks in seconds
  //       case Phoenix.Token.verify(socket, "user socket", token, max_age: 1209600) do
  //         {:ok, user_id} ->
  //           {:ok, assign(socket, :user, user_id)}
  //         {:error, reason} ->
  //           :error
  //       end
  //     end
  //
  // Finally, pass the token on connect as below. Or remove it
  // from connect if you don't care about authentication.
  
  // NOTE: The contents of this file will only be executed if
  // you uncomment its entry in "web/static/js/app.js".
  
  // To use Phoenix channels, the first step is to import Socket
  // and connect at the socket path in "lib/my_app/endpoint.ex":
  socket.connect();
  
  // Now that you are connected, you can join channels with a topic:
  var channel = socket.channel("topic:subtopic", {});
  channel.join().receive("ok", function (resp) {
    console.log("Joined successfully", resp);
  }).receive("error", function (resp) {
    console.log("Unable to join", resp);
  });
  
  exports.default = socket;
  });
  
  ;require.alias("process/browser.js", "process");
  require.alias("phoenix_html/priv/static/phoenix_html.js", "phoenix_html");
  require.alias("phoenix/priv/static/phoenix.js", "phoenix");process = require('process');require.register("___globals___", function(exports, require, module) {
    
  });})();require('___globals___');
  
  require('web/static/js/app');
  //# sourceMappingURL=app.js.map