===========================================================
                                      .___ __  __   
          _________________  __ __  __| _/|__|/  |_ 
         / ___\_` __ \__  \ |  |  \/ __ | | \\_  __\
        / /_/  >  | \// __ \|  |  / /_/ | |  ||  |  
        \___  /|__|  (____  /____/\____ | |__||__|  
       /_____/            \/           \/           
              grep rough audit - static analysis tool
                  v2.8 written by @Wireghoul
=================================[justanotherhacker.com]===
r-cran-shiny-1.5.0+dfsg/man/req.Rd-129-
r-cran-shiny-1.5.0+dfsg/man/req.Rd:130:      ## to require that the user types something, use: `req(input$data)`
r-cran-shiny-1.5.0+dfsg/man/req.Rd-131-      ## but better: require that input$data is valid and leave the last
##############################################
r-cran-shiny-1.5.0+dfsg/man/MockShinySession.Rd-24-## ------------------------------------------------
r-cran-shiny-1.5.0+dfsg/man/MockShinySession.Rd:25:## Method `MockShinySession$setInputs`
r-cran-shiny-1.5.0+dfsg/man/MockShinySession.Rd-26-## ------------------------------------------------
##############################################
r-cran-shiny-1.5.0+dfsg/R/server-input-handlers.R-199-
r-cran-shiny-1.5.0+dfsg/R/server-input-handlers.R:200:  # `val$datapath` should be a filename without a path, for security reasons.
r-cran-shiny-1.5.0+dfsg/R/server-input-handlers.R-201-  if (basename(val$datapath) != val$datapath) {
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-32-#' @export
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:33:`$.mockclientdata` <- function(x, name) {
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-34-  if (name == "allowDataUriScheme") { return(TRUE) }
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-63-#' @export
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:64:`[[.mockclientdata` <- `$.mockclientdata`
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-65-
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-187-#'   `ShinySession`. The environment of each implementation function is set to
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:188:#'   `instance$.__enclos_env` before the method is added.
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-189-#' @noRd
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-352-
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:353:    #' @description Sets reactive values associated with the `session$inputs`
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-354-    #'  object and flushes the reactives.
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-627-    nsPrefix = "mock-session",
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:628:    # @field idCounter Incremented every time `$genId()` is called.
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-629-    idCounter = 0,
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-631-    #   `filename` and `output` elements, each a function. Updated by
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:632:    #   `$registerDownload()` and read by `$getOutput()`. Files are generated
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-633-    #   on demand when the output is accessed.
##############################################
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-682-    # @description Binds a domain to `expr` and uses `createVarPromiseDomain()`
r-cran-shiny-1.5.0+dfsg/R/mock-session.R:683:    #   to ensure `private$currentOutputName` is set to `name` around any of
r-cran-shiny-1.5.0+dfsg/R/mock-session.R-684-    #   the promise's callbacks. Domains are something like dynamic scopes but
##############################################
r-cran-shiny-1.5.0+dfsg/R/input-select.R-249-#'  used with rlang's [rlang::!!()]. For example,
r-cran-shiny-1.5.0+dfsg/R/input-select.R:250:#'  `ggplot2::aes(!!input$variable)`.
r-cran-shiny-1.5.0+dfsg/R/input-select.R-251-#'  * A list of symbols if `multiple = TRUE`. The `input` value
##############################################
r-cran-shiny-1.5.0+dfsg/R/input-select.R-253-#'  the symbol list as individual arguments. For example,
r-cran-shiny-1.5.0+dfsg/R/input-select.R:254:#'  `dplyr::select(mtcars, !!!input$variabls)` which is
r-cran-shiny-1.5.0+dfsg/R/input-select.R:255:#'  equivalent to `dplyr::select(mtcars, !!input$variabls[[1]], !!input$variabls[[2]], ..., !!input$variabls[[length(input$variabls)]])`.
r-cran-shiny-1.5.0+dfsg/R/input-select.R-256-#'
##############################################
r-cran-shiny-1.5.0+dfsg/R/shinywrappers.R-197-#'   is useful if you want to save an expression in a variable.
r-cran-shiny-1.5.0+dfsg/R/shinywrappers.R:198:#' @param deleteFile Should the file in `func()$src` be deleted after
r-cran-shiny-1.5.0+dfsg/R/shinywrappers.R-199-#'   it is sent to the client browser? Generally speaking, if the image is a
##############################################
r-cran-shiny-1.5.0+dfsg/R/bootstrap-layout.R-550-#'   Shiny containers, such as [sidebarLayout()],
r-cran-shiny-1.5.0+dfsg/R/bootstrap-layout.R:551:#'   [navbarPage()], or even `tags$div`, you will probably find
r-cran-shiny-1.5.0+dfsg/R/bootstrap-layout.R-552-#'   that they will not appear. This is due to `fillRow` and `fillCol`
##############################################
r-cran-shiny-1.5.0+dfsg/R/modules.R-15-#' @export
r-cran-shiny-1.5.0+dfsg/R/modules.R:16:`$.session_proxy` <- function(x, name) {
r-cran-shiny-1.5.0+dfsg/R/modules.R-17-  if (name %in% names(.subset2(x, "overrides")))
##############################################
r-cran-shiny-1.5.0+dfsg/R/modules.R-23-#' @export
r-cran-shiny-1.5.0+dfsg/R/modules.R:24:`[[.session_proxy` <- `$.session_proxy`
r-cran-shiny-1.5.0+dfsg/R/modules.R-25-
##############################################
r-cran-shiny-1.5.0+dfsg/R/modules.R-27-#' @export
r-cran-shiny-1.5.0+dfsg/R/modules.R:28:`$<-.session_proxy` <- function(x, name, value) {
r-cran-shiny-1.5.0+dfsg/R/modules.R-29-  # this line allows users to write into session$userData
r-cran-shiny-1.5.0+dfsg/R/modules.R:30:  # (e.g. it allows something like `session$userData$x <- TRUE`,
r-cran-shiny-1.5.0+dfsg/R/modules.R:31:  # but not `session$userData <- TRUE`) from within a module
r-cran-shiny-1.5.0+dfsg/R/modules.R-32-  # without any hacks (see PR #1732)
##############################################
r-cran-shiny-1.5.0+dfsg/R/modules.R-36-
r-cran-shiny-1.5.0+dfsg/R/modules.R:37:`[[<-.session_proxy` <- `$<-.session_proxy`
r-cran-shiny-1.5.0+dfsg/R/modules.R-38-
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-101-#' in the environment; they can be accessed using the `$` operator (for
r-cran-shiny-1.5.0+dfsg/R/shiny.R:102:#' example, `session$clientData$url_search`).
r-cran-shiny-1.5.0+dfsg/R/shiny.R-103-#'
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-153-#'   Server-side version of [`ns <- NS(id)`][NS]. If bare IDs need to be
r-cran-shiny-1.5.0+dfsg/R/shiny.R:154:#'   explicitly namespaced for the current module, `session$ns("name")`
r-cran-shiny-1.5.0+dfsg/R/shiny.R-155-#'   will return the fully-qualified ID.
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-535-                lapply(private$testExportExprs, function(item) {
r-cran-shiny-1.5.0+dfsg/R/shiny.R:536:                  eval(item$expr, envir = item$env)
r-cran-shiny-1.5.0+dfsg/R/shiny.R-537-                })
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-543-                lapply(private$testExportExprs[items], function(item) {
r-cran-shiny-1.5.0+dfsg/R/shiny.R:544:                  eval(item$expr, envir = item$env)
r-cran-shiny-1.5.0+dfsg/R/shiny.R-545-                })
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-738-      # Private items for this scope. Can't be part of the scope object because
r-cran-shiny-1.5.0+dfsg/R/shiny.R:739:      # `$<-.session_proxy` doesn't allow assignment on overidden names.
r-cran-shiny-1.5.0+dfsg/R/shiny.R-740-      bookmarkCallbacks <- Callbacks$new()
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2053-#' @export
r-cran-shiny-1.5.0+dfsg/R/shiny.R:2054:`$<-.shinyoutput` <- function(x, name, value) {
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2055-  name <- .subset2(x, 'ns')(name)
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2072-#' @export
r-cran-shiny-1.5.0+dfsg/R/shiny.R:2073:`[[<-.shinyoutput` <- `$<-.shinyoutput`
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2074-
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2075-#' @export
r-cran-shiny-1.5.0+dfsg/R/shiny.R:2076:`$.shinyoutput` <- function(x, name) {
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2077-  name <- .subset2(x, 'ns')(name)
##############################################
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2086-#' @export
r-cran-shiny-1.5.0+dfsg/R/shiny.R:2087:`[[.shinyoutput` <- `$.shinyoutput`
r-cran-shiny-1.5.0+dfsg/R/shiny.R-2088-
##############################################
r-cran-shiny-1.5.0+dfsg/R/middleware-shiny.R-69-
r-cran-shiny-1.5.0+dfsg/R/middleware-shiny.R:70:  matches <- regmatches(path, regexec('^(/session/([0-9a-f]+))(/.*)$', path))
r-cran-shiny-1.5.0+dfsg/R/middleware-shiny.R-71-  if (length(matches[[1]]) == 0)
##############################################
r-cran-shiny-1.5.0+dfsg/R/progress.R-17-#' CSS), you can use `style="old"` each time you call
r-cran-shiny-1.5.0+dfsg/R/progress.R:18:#' `Progress$new()`. If you don't want to set the style each time
r-cran-shiny-1.5.0+dfsg/R/progress.R:19:#' `Progress$new` is called, you can instead call
r-cran-shiny-1.5.0+dfsg/R/progress.R-20-#' [`shinyOptions(progress.style="old")`][shinyOptions] just once, inside the server
##############################################
r-cran-shiny-1.5.0+dfsg/R/server.R-394-              if (.globals$showcaseOverride &&
r-cran-shiny-1.5.0+dfsg/R/server.R:395:                  exists(".clientdata_url_search", where = msg$data)) {
r-cran-shiny-1.5.0+dfsg/R/server.R-396-                mode <- showcaseModeOfQuerystring(msg$data$.clientdata_url_search)
##############################################
r-cran-shiny-1.5.0+dfsg/R/server.R-1112-#'
r-cran-shiny-1.5.0+dfsg/R/server.R:1113:#' Similar to `runApp`, but handles `input$cancel` automatically, and
r-cran-shiny-1.5.0+dfsg/R/server.R-1114-#' if running in RStudio, defaults to viewing the app in the Viewer pane.
##############################################
r-cran-shiny-1.5.0+dfsg/R/server.R-1124-#' @param stopOnCancel If `TRUE` (the default), then an `observeEvent`
r-cran-shiny-1.5.0+dfsg/R/server.R:1125:#'   is automatically created that handles `input$cancel` by calling
r-cran-shiny-1.5.0+dfsg/R/server.R-1126-#'   `stopApp()` with an error. Pass `FALSE` if you want to handle
r-cran-shiny-1.5.0+dfsg/R/server.R:1127:#'   `input$cancel` yourself.
r-cran-shiny-1.5.0+dfsg/R/server.R-1128-#' @return The value returned by the gadget.
##############################################
r-cran-shiny-1.5.0+dfsg/R/image-interact.R-41-#' @param brush,coordinfo The data from a brush or click/dblclick/hover event
r-cran-shiny-1.5.0+dfsg/R/image-interact.R:42:#'   e.g. `input$plot_brush`, `input$plot_click`.
r-cran-shiny-1.5.0+dfsg/R/image-interact.R-43-#' @param xvar,yvar A string giving the name of the variable on the x or y axis.
##############################################
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-7-#' @param id Input value name. For example, if the value is `"plot_click"`,
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R:8:#'   then the click coordinates will be available as `input$plot_click`.
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-9-#' @param clip Should the click area be clipped to the plotting area? If FALSE,
##############################################
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-31-#'   `"plot_dblclick"`, then the click coordinates will be available as
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R:32:#'   `input$plot_dblclick`.
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-33-#' @param clip Should the click area be clipped to the plotting area? If FALSE,
##############################################
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-56-#' @param id Input value name. For example, if the value is `"plot_hover"`,
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R:57:#'   then the hover coordinates will be available as `input$plot_hover`.
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-58-#' @param delay How long to delay (in milliseconds) when debouncing or
##############################################
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-93-#' @param id Input value name. For example, if the value is `"plot_brush"`,
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R:94:#'   then the coordinates will be available as `input$plot_brush`. Multiple
r-cran-shiny-1.5.0+dfsg/R/image-interact-opts.R-95-#'   `imageOutput`/`plotOutput` calls may share the same `id`
##############################################
r-cran-shiny-1.5.0+dfsg/R/render-cached-plot.R-37-#' Internally, the result from `cacheKeyExpr` is combined with the name of
r-cran-shiny-1.5.0+dfsg/R/render-cached-plot.R:38:#' the output (if you assign it to `output$plot1`, it will be combined
r-cran-shiny-1.5.0+dfsg/R/render-cached-plot.R-39-#' with `"plot1"`) to form the actual key that is used. As a result, even
##############################################
r-cran-shiny-1.5.0+dfsg/R/render-cached-plot.R-335-    } else {
r-cran-shiny-1.5.0+dfsg/R/render-cached-plot.R:336:      stop('`cache` must either be "app", "session", or a cache object with methods, `$get`, and `$set`.')
r-cran-shiny-1.5.0+dfsg/R/render-cached-plot.R-337-    }
##############################################
r-cran-shiny-1.5.0+dfsg/R/insert-ui.R-17-#' @param selector A string that is accepted by jQuery's selector
r-cran-shiny-1.5.0+dfsg/R/insert-ui.R:18:#'   (i.e. the string `s` to be placed in a `$(s)` jQuery call).
r-cran-shiny-1.5.0+dfsg/R/insert-ui.R-19-#'
##############################################
r-cran-shiny-1.5.0+dfsg/R/insert-ui.R-39-#'   multiple elements in one call, make sure to wrap them in either a
r-cran-shiny-1.5.0+dfsg/R/insert-ui.R:40:#'   `tagList()` or a `tags$div()` (the latter option has the
r-cran-shiny-1.5.0+dfsg/R/insert-ui.R-41-#'   advantage that you can give it an `id` to make it easier to
##############################################
r-cran-shiny-1.5.0+dfsg/R/graph.R-444-    freezeReactiveKey = function(reactId, key, domain) {
r-cran-shiny-1.5.0+dfsg/R/graph.R:445:      self$freezeReactiveVal(self$keyIdStr(reactId, key), domain)
r-cran-shiny-1.5.0+dfsg/R/graph.R-446-    },
##############################################
r-cran-shiny-1.5.0+dfsg/R/graph.R-455-    thawReactiveKey = function(reactId, key, domain) {
r-cran-shiny-1.5.0+dfsg/R/graph.R:456:      self$thawReactiveVal(self$keyIdStr(reactId, key), domain)
r-cran-shiny-1.5.0+dfsg/R/graph.R-457-    },
##############################################
r-cran-shiny-1.5.0+dfsg/R/html-deps.R-10-#'   then `href` and/or `file` names must be present.
r-cran-shiny-1.5.0+dfsg/R/html-deps.R:11:#' @param scrubFile If TRUE (the default), remove `src$file` for the
r-cran-shiny-1.5.0+dfsg/R/html-deps.R-12-#'   dependency. This prevents the local file path from being sent to the client
r-cran-shiny-1.5.0+dfsg/R/html-deps.R-13-#'   when dynamic web dependencies are used. If FALSE, don't remove
r-cran-shiny-1.5.0+dfsg/R/html-deps.R:14:#'   `src$file`. Setting it to FALSE should be needed only in very unusual
r-cran-shiny-1.5.0+dfsg/R/html-deps.R-15-#'   cases.
##############################################
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-825-                 `data-toggle` = "tab",
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R:826:                 `data-value` = divTag$attribs$`data-value`,
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-827-                 getIcon(iconClass = divTag$attribs$`data-icon-class`),
##############################################
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-988-#'   the plot will send coordinates to the server whenever it is clicked, and
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R:989:#'   the value will be accessible via `input$plot_click`. The value will be
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-990-#'   a named list  with `x` and `y` elements indicating the mouse
##############################################
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-998-#'   the plot will send coordinates to the server pauses on the plot, and the
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R:999:#'   value will be accessible via `input$plot_hover`. The value will be a
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-1000-#'   named list with `x` and `y` elements indicating the mouse
##############################################
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-1008-#'   information about the brushed area to the server, and the value will be
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R:1009:#'   accessible via `input$plot_brush`. Brushing means that the user will
r-cran-shiny-1.5.0+dfsg/R/bootstrap.R-1010-#'   be able to draw a rectangle in the plotting area and drag it around. The
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-110-      }
r-cran-shiny-1.5.0+dfsg/R/reactives.R:111:      rLog$freezeReactiveVal(private$reactId, session)
r-cran-shiny-1.5.0+dfsg/R/reactives.R-112-      session$onFlushed(function() {
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-117-    thaw = function(session = getDefaultReactiveDomain()) {
r-cran-shiny-1.5.0+dfsg/R/reactives.R:118:      rLog$thawReactiveVal(private$reactId, session)
r-cran-shiny-1.5.0+dfsg/R/reactives.R-119-      private$frozen <- FALSE
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-610-#' @export
r-cran-shiny-1.5.0+dfsg/R/reactives.R:611:`$.reactivevalues` <- function(x, name) {
r-cran-shiny-1.5.0+dfsg/R/reactives.R-612-  checkName(name)
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-616-#' @export
r-cran-shiny-1.5.0+dfsg/R/reactives.R:617:`[[.reactivevalues` <- `$.reactivevalues`
r-cran-shiny-1.5.0+dfsg/R/reactives.R-618-
r-cran-shiny-1.5.0+dfsg/R/reactives.R-619-#' @export
r-cran-shiny-1.5.0+dfsg/R/reactives.R:620:`$<-.reactivevalues` <- function(x, name, value) {
r-cran-shiny-1.5.0+dfsg/R/reactives.R-621-  if (.subset2(x, 'readonly')) {
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-629-#' @export
r-cran-shiny-1.5.0+dfsg/R/reactives.R:630:`[[<-.reactivevalues` <- `$<-.reactivevalues`
r-cran-shiny-1.5.0+dfsg/R/reactives.R-631-
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-1002-
r-cran-shiny-1.5.0+dfsg/R/reactives.R:1003:  m <- regexec("(.*)(<-|=)\\s*reactive\\s*\\($", firstLine)
r-cran-shiny-1.5.0+dfsg/R/reactives.R-1004-  if (m[[1]][1] == -1) {
##############################################
r-cran-shiny-1.5.0+dfsg/R/reactives.R-2041-#' @param eventExpr A (quoted or unquoted) expression that represents the event;
r-cran-shiny-1.5.0+dfsg/R/reactives.R:2042:#'   this can be a simple reactive value like `input$click`, a call to a
r-cran-shiny-1.5.0+dfsg/R/reactives.R-2043-#'   reactive expression like `dataset()`, or even a complex expression
##############################################
r-cran-shiny-1.5.0+dfsg/R/test.R-24-#' all scripts in the directory are shinytest scripts.
r-cran-shiny-1.5.0+dfsg/R/test.R:25:#' Scans for the magic string of `app <- ShinyDriver$new(` as an indicator that
r-cran-shiny-1.5.0+dfsg/R/test.R-26-#' this is a shinytest.
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1149-#' logical values. For example, if you allow `NA` but not `NULL`, you
r-cran-shiny-1.5.0+dfsg/R/utils.R:1150:#' can use the condition `!is.null(input$foo)`, because `!is.null(NA)
r-cran-shiny-1.5.0+dfsg/R/utils.R-1151-#' == TRUE`.
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1161-#' automatically propagate to outputs that use the reactive expression. In
r-cran-shiny-1.5.0+dfsg/R/utils.R:1162:#' other words, if reactive expression `a` needs `input$x`, and two
r-cran-shiny-1.5.0+dfsg/R/utils.R:1163:#' outputs use `a` (and thus depend indirectly on `input$x`), it's
r-cran-shiny-1.5.0+dfsg/R/utils.R:1164:#' not necessary for the outputs to validate `input$x` explicitly, as long
r-cran-shiny-1.5.0+dfsg/R/utils.R-1165-#' as `a` does validate it.
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1256-#'
r-cran-shiny-1.5.0+dfsg/R/utils.R:1257:#' In this example, if `r()` is called and any of `input$a`,
r-cran-shiny-1.5.0+dfsg/R/utils.R:1258:#' `input$b`, and `rv$state` are `NULL`, `FALSE`, `""`,
r-cran-shiny-1.5.0+dfsg/R/utils.R-1259-#' etc., then the `req` call will trigger an error that propagates all the
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1271-#'
r-cran-shiny-1.5.0+dfsg/R/utils.R:1272:#' In this example, `req(input$plotType)` first checks that
r-cran-shiny-1.5.0+dfsg/R/utils.R:1273:#' `input$plotType` is truthy, and if so, returns it. This is a convenient
r-cran-shiny-1.5.0+dfsg/R/utils.R-1274-#' way to check for a value "inline" with its first use.
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1308-#'
r-cran-shiny-1.5.0+dfsg/R/utils.R:1309:#' `req(input$a != 0)`
r-cran-shiny-1.5.0+dfsg/R/utils.R-1310-#'
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1327-#' Note that this is always going to be the case if
r-cran-shiny-1.5.0+dfsg/R/utils.R:1328:#' this is used inside an output context (e.g. `output$txt <- ...`). It may
r-cran-shiny-1.5.0+dfsg/R/utils.R-1329-#' or may not be the case if it is used inside a non-output context (e.g.
r-cran-shiny-1.5.0+dfsg/R/utils.R-1330-#' [reactive()], [observe()] or [observeEvent()])
r-cran-shiny-1.5.0+dfsg/R/utils.R:1331:#' --- depending on whether or not there is an `output$...` that is triggered
r-cran-shiny-1.5.0+dfsg/R/utils.R-1332-#' as a result of those calls. See the examples below for concrete scenarios.
##############################################
r-cran-shiny-1.5.0+dfsg/R/utils.R-1352-#'
r-cran-shiny-1.5.0+dfsg/R/utils.R:1353:#'       ## to require that the user types something, use: `req(input$data)`
r-cran-shiny-1.5.0+dfsg/R/utils.R-1354-#'       ## but better: require that input$data is valid and leave the last
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-31-
r-cran-shiny-1.5.0+dfsg/NEWS.md:32:* `getDefaultReactiveDomain()` can now be called inside a `session$onSessionEnded` callback and will return the calling `session` information. (#2757)
r-cran-shiny-1.5.0+dfsg/NEWS.md-33-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-269-
r-cran-shiny-1.5.0+dfsg/NEWS.md:270:* If a shiny output contains a css class of `shiny-report-size`, its container height and width are now reported in `session$clientData`. So, for an output with an id with `"myID"`, the height/width can be accessed via `session$clientData[['output_myID_height']]`/`session$clientData[['output_myID_width']]`. Addresses #1980. (Thanks, @cpsievert! #1981)
r-cran-shiny-1.5.0+dfsg/NEWS.md-271-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-281-
r-cran-shiny-1.5.0+dfsg/NEWS.md:282:* #1989: The server side of outputs can now be removed (e.g. `output$plot <- NULL`). This is not usually necessary but it does allow some objects to be garbage collected, which might matter if you are dynamically creating and destroying many outputs. (Thanks, @mmuurr! #2011)
r-cran-shiny-1.5.0+dfsg/NEWS.md-283-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-378-
r-cran-shiny-1.5.0+dfsg/NEWS.md:379:* Fixed #1546: make it possible (without any hacks) to write arbitrary data into a module's `session$userData` (which is exactly the same environment as the parent's `session$userData`). To be clear, it allows something like `session$userData$x <- TRUE`, but not something like `session$userData <- TRUE` (that is not allowed in any context, whether you're in the main app, or in a module) (#1732).
r-cran-shiny-1.5.0+dfsg/NEWS.md-380-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-456-
r-cran-shiny-1.5.0+dfsg/NEWS.md:457:* Exported `session$user` (if it exists) to the client-side; it's accessible in the Shiny object: `Shiny.user`. (#1563)
r-cran-shiny-1.5.0+dfsg/NEWS.md-458-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-543-
r-cran-shiny-1.5.0+dfsg/NEWS.md:544:* Implemented #1512: added a `userData` environment to `session`, for storing arbitrary session-related variables. Generally, session-scoped variables are created just by declaring normal variables that are local to the Shiny server function, but `session$userData` may be more convenient for some advanced scenarios. (#1513)
r-cran-shiny-1.5.0+dfsg/NEWS.md-545-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-657-**_Important note_:**
r-cran-shiny-1.5.0+dfsg/NEWS.md:658:> If you were already using progress bars and had customized them with your own CSS, you can add the `style = "old"` argument to your `withProgress()` call (or `Progress$new()`). This will result in the same appearance as before. You can also call `shinyOptions(progress.style = "old")` in your app's server function to make all progress indicators use the old styling.
r-cran-shiny-1.5.0+dfsg/NEWS.md-659-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-735-
r-cran-shiny-1.5.0+dfsg/NEWS.md:736:* Added the ability for the client browser to reconnect to a new session on the server, by setting `session$allowReconnect(TRUE)`. This requires a version of Shiny Server that supports reconnections. (#1074)
r-cran-shiny-1.5.0+dfsg/NEWS.md-737-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-763-
r-cran-shiny-1.5.0+dfsg/NEWS.md:764:* Added `session$resetBrush(brushId)` (R) and `Shiny.resetBrush(brushId)` (JS) to programatically clear brushes from `imageOutput`/`plotOutput`. (#1197)
r-cran-shiny-1.5.0+dfsg/NEWS.md-765-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-767-
r-cran-shiny-1.5.0+dfsg/NEWS.md:768:* Added `session$sendBinaryMessage(type, message)` method for sending custom binary data to the client. See `?session`. (thanks, [@daef](https://github.com/daef)! #1316 and #1320)
r-cran-shiny-1.5.0+dfsg/NEWS.md-769-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-867-
r-cran-shiny-1.5.0+dfsg/NEWS.md:868:* Added `session$reload()` method, the equivalent of hitting the browser's Reload button.
r-cran-shiny-1.5.0+dfsg/NEWS.md-869-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-1123-
r-cran-shiny-1.5.0+dfsg/NEWS.md:1124:* Searching in DataTables is case-insensitive and the search strings are not treated as regular expressions by default now. If you want case-sensitive searching or regular expressions, you can use the configuration options `search$caseInsensitive` and `search$regex`, e.g. `renderDataTable(..., options = list(search = list(caseInsensitve = FALSE, regex = TRUE)))`.
r-cran-shiny-1.5.0+dfsg/NEWS.md-1125-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-1209-
r-cran-shiny-1.5.0+dfsg/NEWS.md:1210:* Make `tags$head()` and `singleton()` behave correctly when used with `renderUI()` and `uiOutput()`. Previously, "hoisting content to the head" and "only rendering items a single time" were features that worked only when the page was initially loading, not in dynamic rendering.
r-cran-shiny-1.5.0+dfsg/NEWS.md-1211-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-1295-
r-cran-shiny-1.5.0+dfsg/NEWS.md:1296:* The `input` and `output` objects are now also accessible via `session$input` and `session$output`.
r-cran-shiny-1.5.0+dfsg/NEWS.md-1297-
##############################################
r-cran-shiny-1.5.0+dfsg/NEWS.md-1313-
r-cran-shiny-1.5.0+dfsg/NEWS.md:1314:* The HTTP request object that created the websocket is now accessible from the `session` object, as `session$request`. This is a Rook-like request environment that can be used to access HTTP headers, among other things. (Note: When running in a Shiny Server environment, the request will reflect the proxy HTTP request that was made from the Shiny Server process to the R process, not the request that was made from the web browser to Shiny Server.)
r-cran-shiny-1.5.0+dfsg/NEWS.md-1315-
##############################################
r-cran-shiny-1.5.0+dfsg/inst/examples/01_hello/Readme.md-2-
r-cran-shiny-1.5.0+dfsg/inst/examples/01_hello/Readme.md:3:Move the *Number of bins* slider and notice how the `renderPlot` expression is automatically re-evaluated when its dependant, `input$bins`, changes, causing a histogram with a new number of bins to be rendered.
##############################################
r-cran-shiny-1.5.0+dfsg/inst/examples/09_upload/Readme.md-2-e.g. `fileInput('foo')`. In the `server` function, we can access the 
r-cran-shiny-1.5.0+dfsg/inst/examples/09_upload/Readme.md:3:uploaded files via `input$foo`.
##############################################
r-cran-shiny-1.5.0+dfsg/inst/examples/03_reactivity/Readme.md-2-
r-cran-shiny-1.5.0+dfsg/inst/examples/03_reactivity/Readme.md:3:Notice that the reactive expression depends on the input expression `input$dataset`, and that it's used by two output expressions: `output$summary` and `output$view`. Try changing the dataset (using *Choose a dataset*) while looking at the reactive and then at the outputs; you will see first the reactive and then its dependencies flash. 
r-cran-shiny-1.5.0+dfsg/inst/examples/03_reactivity/Readme.md-4-
r-cran-shiny-1.5.0+dfsg/inst/examples/03_reactivity/Readme.md:5:Notice also that the reactive expression doesn't just update whenever anything changes--only the inputs it depends on will trigger an update. Change the "Caption" field and notice how only the `output$caption` expression is re-evaluated; the reactive and its dependents are left alone.
##############################################
r-cran-shiny-1.5.0+dfsg/inst/examples/06_tabsets/Readme.md-5-1. Scroll to the bottom of the `server` function. You might need to use the *show with app* option so you can easily view the code and interact with the app at the same time.
r-cran-shiny-1.5.0+dfsg/inst/examples/06_tabsets/Readme.md:6:2. Change the number of observations, and observe that only `output$plot` is evaluated.
r-cran-shiny-1.5.0+dfsg/inst/examples/06_tabsets/Readme.md:7:3. Click the Summary tab, and observe that `output$summary` is evaluated.
r-cran-shiny-1.5.0+dfsg/inst/examples/06_tabsets/Readme.md:8:4. Change the number of observations again, and observe that now only `output$summary` is evaluated.
r-cran-shiny-1.5.0+dfsg/inst/examples/06_tabsets/Readme.md-9-
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js.map:1:{"version":3,"sources":["../../srcjs/_start.js","../../srcjs/utils.js","../../srcjs/browser.js","../../srcjs/input_rate.js","../../srcjs/shinyapp.js","../../srcjs/notifications.js","../../srcjs/modal.js","../../srcjs/file_processor.js","../../srcjs/binding_registry.js","../../srcjs/output_binding.js","../../srcjs/output_binding_text.js","../../srcjs/output_binding_image.js","../../srcjs/output_binding_html.js","../../srcjs/output_binding_downloadlink.js","../../srcjs/output_binding_datatable.js","../../srcjs/output_binding_adapter.js","../../srcjs/input_binding.js","../../srcjs/input_binding_text.js","../../srcjs/input_binding_textarea.js","../../srcjs/input_binding_password.js","../../srcjs/input_binding_number.js","../../srcjs/input_binding_checkbox.js","../../srcjs/input_binding_slider.js","../../srcjs/input_binding_date.js","../../srcjs/input_binding_daterange.js","../../srcjs/input_binding_select.js","../../srcjs/input_binding_radio.js","../../srcjs/input_binding_checkboxgroup.js","../../srcjs/input_binding_actionbutton.js","../../srcjs/input_binding_tabinput.js","../../srcjs/input_binding_fileinput.js","../../srcjs/init_shiny.js","../../srcjs/reactlog.js","../../srcjs/_end.js"],"names":[],"mappings":"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","sourcesContent":["//---------------------------------------------------------------------\n// Source file: ../srcjs/_start.js\n\n(function() {\n  var $ = jQuery;\n\n  var exports = window.Shiny = window.Shiny || {};\n\n  exports.version = \"{{ VERSION }}\";  // Version number inserted by Grunt\n\n  var origPushState = window.history.pushState;\n  window.history.pushState = function() {\n    var result = origPushState.apply(this, arguments);\n    $(document).trigger(\"pushstate\");\n    return result;\n  };\n\n  $(document).on('submit', 'form:not([action])', function(e) {\n    e.preventDefault();\n  });\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/utils.js\n\nfunction escapeHTML(str) {\n  var escaped = {\n    \"&\": \"&amp;\",\n    \"<\": \"&lt;\",\n    \">\": \"&gt;\",\n    '\"': \"&quot;\",\n    \"'\": \"&#039;\",\n    \"/\": \"&#x2F;\"\n  };\n\n  return str.replace(/[&<>'\"\\/]/g, function(m) {\n    return escaped[m];\n  });\n}\n\nfunction randomId() {\n  return Math.floor(0x100000000 + (Math.random() * 0xF00000000)).toString(16);\n}\n\nfunction strToBool(str) {\n  if (!str || !str.toLowerCase)\n    return undefined;\n\n  switch(str.toLowerCase()) {\n    case 'true':\n      return true;\n    case 'false':\n      return false;\n    default:\n      return undefined;\n  }\n}\n\n// A wrapper for getComputedStyle that is compatible with older browsers.\n// This is significantly faster than jQuery's .css() function.\nfunction getStyle(el, styleProp) {\n  var x;\n  if (el.currentStyle)\n    x = el.currentStyle[styleProp];\n  else if (window.getComputedStyle) {\n    // getComputedStyle can return null when we're inside a hidden iframe on\n    // Firefox; don't attempt to retrieve style props in this case.\n    // https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n    var style = document.defaultView.getComputedStyle(el, null);\n    if (style)\n      x = style.getPropertyValue(styleProp);\n  }\n  return x;\n}\n\n// Convert a number to a string with leading zeros\nfunction padZeros(n, digits) {\n  var str = n.toString();\n  while (str.length < digits)\n    str = \"0\" + str;\n  return str;\n}\n\n// Round to a specified number of significant digits.\nfunction roundSignif(x, digits = 1) {\n  if (digits < 1)\n    throw \"Significant digits must be at least 1.\";\n\n  // This converts to a string and back to a number, which is inelegant, but\n  // is less prone to FP rounding error than an alternate method which used\n  // Math.round().\n  return parseFloat(x.toPrecision(digits));\n}\n\n// Take a string with format \"YYYY-MM-DD\" and return a Date object.\n// IE8 and QTWebKit don't support YYYY-MM-DD, but they support YYYY/MM/DD\nfunction parseDate(dateString) {\n  var date = new Date(dateString);\n  if (isNaN(date))\n    date = new Date(dateString.replace(/-/g, \"/\"));\n  return date;\n}\n\n// Given a Date object, return a string in yyyy-mm-dd format, using the\n// UTC date. This may be a day off from the date in the local time zone.\nfunction formatDateUTC(date) {\n  if (date instanceof Date) {\n    return date.getUTCFullYear() + '-' +\n           padZeros(date.getUTCMonth()+1, 2) + '-' +\n           padZeros(date.getUTCDate(), 2);\n\n  } else {\n    return null;\n  }\n}\n\n\n// Given an element and a function(width, height), returns a function(). When\n// the output function is called, it calls the input function with the offset\n// width and height of the input element--but only if the size of the element\n// is non-zero and the size is different than the last time the output\n// function was called.\n//\n// Basically we are trying to filter out extraneous calls to func, so that\n// when the window size changes or whatever, we don't run resize logic for\n// elements that haven't actually changed size or aren't visible anyway.\nfunction makeResizeFilter(el, func) {\n  var lastSize = {};\n  return function() {\n    var size = { w: el.offsetWidth, h: el.offsetHeight };\n    if (size.w === 0 && size.h === 0)\n      return;\n    if (size.w === lastSize.w && size.h === lastSize.h)\n      return;\n    lastSize = size;\n    func(size.w, size.h);\n  };\n}\n\nvar _BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||\n    window.MozBlobBuilder || window.MSBlobBuilder;\n\nfunction makeBlob(parts) {\n\n  // Browser compatibility is a mess right now. The code as written works in\n  // a variety of modern browsers, but sadly gives a deprecation warning\n  // message on the console in current versions (as of this writing) of\n  // Chrome.\n\n  // Safari 6.0 (8536.25) on Mac OS X 10.8.1:\n  // Has Blob constructor but it doesn't work with ArrayBufferView args\n\n  // Google Chrome 21.0.1180.81 on Xubuntu 12.04:\n  // Has Blob constructor, accepts ArrayBufferView args, accepts ArrayBuffer\n  // but with a deprecation warning message\n\n  // Firefox 15.0 on Xubuntu 12.04:\n  // Has Blob constructor, accepts both ArrayBuffer and ArrayBufferView args\n\n  // Chromium 18.0.1025.168 (Developer Build 134367 Linux) on Xubuntu 12.04:\n  // No Blob constructor. Has WebKitBlobBuilder.\n\n  try {\n    return new Blob(parts);\n  }\n  catch (e) {\n    var blobBuilder = new _BlobBuilder();\n    $.each(parts, function(i, part) {\n      blobBuilder.append(part);\n    });\n    return blobBuilder.getBlob();\n  }\n}\n\nfunction pixelRatio() {\n  if (window.devicePixelRatio) {\n    return window.devicePixelRatio;\n  } else {\n    return 1;\n  }\n}\n\n// Takes a string expression and returns a function that takes an argument.\n//\n// When the function is executed, it will evaluate that expression using\n// \"with\" on the argument value, and return the result.\nfunction scopeExprToFunc(expr) {\n  /*jshint evil: true */\n  var expr_escaped = expr\n    .replace(/[\\\\\"']/g, '\\\\$&')\n    .replace(/\\u0000/g, '\\\\0')\n    .replace(/\\n/g, '\\\\n')\n    .replace(/\\r/g, '\\\\r')\n    // \\b has a special meaning; need [\\b] to match backspace char.\n    .replace(/[\\b]/g, '\\\\b');\n\n  try {\n    var func = new Function(\n      `with (this) {\n        try {\n          return (${expr});\n        } catch (e) {\n          console.error('Error evaluating expression: ${expr_escaped}');\n          throw e;\n        }\n      }`\n    );\n  } catch (e) {\n    console.error(\"Error parsing expression: \" + expr);\n    throw e;\n  }\n\n\n  return function(scope) {\n    return func.call(scope);\n  };\n}\n\nfunction asArray(value) {\n  if (value === null || value === undefined)\n    return [];\n  if ($.isArray(value))\n    return value;\n  return [value];\n}\n\n// We need a stable sorting algorithm for ordering\n// bindings by priority and insertion order.\nfunction mergeSort(list, sortfunc) {\n  function merge(sortfunc, a, b) {\n    var ia = 0;\n    var ib = 0;\n    var sorted = [];\n    while (ia < a.length && ib < b.length) {\n      if (sortfunc(a[ia], b[ib]) <= 0) {\n        sorted.push(a[ia++]);\n      }\n      else {\n        sorted.push(b[ib++]);\n      }\n    }\n    while (ia < a.length)\n      sorted.push(a[ia++]);\n    while (ib < b.length)\n      sorted.push(b[ib++]);\n    return sorted;\n  }\n\n  // Don't mutate list argument\n  list = list.slice(0);\n\n  for (var chunkSize = 1; chunkSize < list.length; chunkSize *= 2) {\n    for (var i = 0; i < list.length; i += chunkSize * 2) {\n      var listA = list.slice(i, i + chunkSize);\n      var listB = list.slice(i + chunkSize, i + chunkSize * 2);\n      var merged = merge(sortfunc, listA, listB);\n      var args = [i, merged.length];\n      Array.prototype.push.apply(args, merged);\n      Array.prototype.splice.apply(list, args);\n    }\n  }\n\n  return list;\n}\n\n// Escape jQuery selector metacharacters: !\"#$%&'()*+,./:;<=>?@[\\]^`{|}~\nvar $escape = exports.$escape = function(val) {\n  return val.replace(/([!\"#$%&'()*+,.\\/:;<=>?@\\[\\\\\\]^`{|}~])/g, '\\\\$1');\n};\n\n// Maps a function over an object, preserving keys. Like the mapValues\n// function from lodash.\nfunction mapValues(obj, f) {\n  const newObj = {};\n  for (let key in obj) {\n    if (obj.hasOwnProperty(key))\n      newObj[key] = f(obj[key], key, obj);\n  }\n  return newObj;\n}\n\n// This is does the same as Number.isNaN, but that function unfortunately does\n// not exist in any version of IE.\nfunction isnan(x) {\n  return typeof(x) === 'number' && isNaN(x);\n}\n\n// Binary equality function used by the equal function.\nfunction _equal(x, y) {\n  if ($.type(x) === \"object\" && $.type(y) === \"object\") {\n    if (Object.keys(x).length !== Object.keys(y).length) return false;\n    for (let prop in x)\n      if (!y.hasOwnProperty(prop) || !_equal(x[prop], y[prop]))\n        return false;\n    return true;\n  } else if ($.type(x) === \"array\" && $.type(y) === \"array\") {\n    if (x.length !== y.length) return false;\n    for (let i = 0; i < x.length; i++)\n      if (!_equal(x[i], y[i])) return false;\n    return true;\n  } else {\n    return (x === y);\n  }\n}\n\n// Structural or \"deep\" equality predicate. Tests two or more arguments for\n// equality, traversing arrays and objects (as determined by $.type) as\n// necessary.\n//\n// Objects other than objects and arrays are tested for equality using ===.\nfunction equal(...args) {\n  if (args.length < 2) throw new Error(\"equal requires at least two arguments.\");\n  for (let i = 0; i < args.length-1; i++) {\n    if (!_equal(args[i], args[i+1]))\n      return false;\n  }\n  return true;\n};\n\n// Compare version strings like \"1.0.1\", \"1.4-2\". `op` must be a string like\n// \"==\" or \"<\".\nexports.compareVersion = function(a, op, b) {\n  function versionParts(ver) {\n    return (ver + \"\")\n      .replace(/-/, \".\")\n      .replace(/(\\.0)+[^\\.]*$/, \"\")\n      .split(\".\");\n  }\n\n  function cmpVersion(a, b) {\n    a = versionParts(a);\n    b = versionParts(b);\n    var len = Math.min(a.length, b.length);\n    var cmp;\n\n    for(var i=0; i<len; i++) {\n      cmp = parseInt(a[i], 10) - parseInt(b[i], 10);\n      if(cmp !== 0) {\n        return cmp;\n      }\n    }\n    return a.length - b.length;\n  }\n\n  var diff = cmpVersion(a, b);\n\n  if (op === \"==\")      return (diff === 0);\n  else if (op === \">=\") return (diff >=  0);\n  else if (op === \">\")  return (diff >   0);\n  else if (op === \"<=\") return (diff <=  0);\n  else if (op === \"<\")  return (diff <   0);\n  else                  throw `Unknown operator: ${op}`;\n};\n\n\nfunction updateLabel(labelTxt, labelNode) {\n  // Only update if label was specified in the update method\n  if (typeof labelTxt === \"undefined\") return;\n  if (labelNode.length !== 1) {\n    throw new Error(\"labelNode must be of length 1\");\n  }\n\n  // Should the label be empty?\n  var emptyLabel = $.isArray(labelTxt) && labelTxt.length === 0;\n\n  if (emptyLabel) {\n    labelNode.addClass(\"shiny-label-null\");\n  } else {\n    labelNode.text(labelTxt);\n    labelNode.removeClass(\"shiny-label-null\");\n  }\n\n}\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/browser.js\n\nvar browser = (function() {\n\n  var isQt = false;\n  // For easy handling of Qt quirks using CSS\n  if (/\\bQt\\//.test(window.navigator.userAgent)) {\n    $(document.documentElement).addClass('qt');\n    isQt = true;\n  }\n\n  // Enable special treatment for Qt 5 quirks on Linux\n  if (/\\bQt\\/5/.test(window.navigator.userAgent) &&\n      /Linux/.test(window.navigator.userAgent)) {\n    $(document.documentElement).addClass('qt5');\n  }\n\n  // Detect IE information\n  var isIE = (navigator.appName === 'Microsoft Internet Explorer');\n\n  function getIEVersion() {\n    var rv = -1;\n    if (isIE) {\n      var ua = navigator.userAgent;\n      var re  = new RegExp(\"MSIE ([0-9]{1,}[\\\\.0-9]{0,})\");\n      if (re.exec(ua) !== null)\n        rv = parseFloat(RegExp.$1);\n    }\n    return rv;\n  }\n\n  return {\n    isQt: isQt,\n    isIE: isIE,\n    IEVersion: getIEVersion()\n  };\n\n})();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_rate.js\n\nvar Invoker = function(target, func) {\n  this.target = target;\n  this.func = func;\n};\n\n(function() {\n  this.normalCall =\n  this.immediateCall = function() {\n    this.func.apply(this.target, arguments);\n  };\n}).call(Invoker.prototype);\n\nvar Debouncer = function(target, func, delayMs) {\n  this.target = target;\n  this.func = func;\n  this.delayMs = delayMs;\n\n  this.timerId = null;\n  this.args = null;\n};\n\n(function() {\n  this.normalCall = function() {\n    var self = this;\n\n    this.$clearTimer();\n    this.args = arguments;\n\n    this.timerId = setTimeout(function() {\n      // IE8 doesn't reliably clear timeout, so this additional\n      // check is needed\n      if (self.timerId === null)\n        return;\n      self.$clearTimer();\n      self.$invoke();\n    }, this.delayMs);\n  };\n  this.immediateCall = function() {\n    this.$clearTimer();\n    this.args = arguments;\n    this.$invoke();\n  };\n  this.isPending = function() {\n    return this.timerId !== null;\n  };\n  this.$clearTimer = function() {\n    if (this.timerId !== null) {\n      clearTimeout(this.timerId);\n      this.timerId = null;\n    }\n  };\n  this.$invoke = function() {\n    this.func.apply(this.target, this.args);\n    this.args = null;\n  };\n}).call(Debouncer.prototype);\n\nvar Throttler = function(target, func, delayMs) {\n  this.target = target;\n  this.func = func;\n  this.delayMs = delayMs;\n\n  this.timerId = null;\n  this.args = null;\n};\n\n(function() {\n  this.normalCall = function() {\n    var self = this;\n\n    this.args = arguments;\n    if (this.timerId === null) {\n      this.$invoke();\n      this.timerId = setTimeout(function() {\n        // IE8 doesn't reliably clear timeout, so this additional\n        // check is needed\n        if (self.timerId === null)\n          return;\n        self.$clearTimer();\n        if (self.args)\n          self.normalCall.apply(self, self.args);\n      }, this.delayMs);\n    }\n  };\n  this.immediateCall = function() {\n    this.$clearTimer();\n    this.args = arguments;\n    this.$invoke();\n  };\n  this.isPending = function() {\n    return this.timerId !== null;\n  };\n  this.$clearTimer = function() {\n    if (this.timerId !== null) {\n      clearTimeout(this.timerId);\n      this.timerId = null;\n    }\n  };\n  this.$invoke = function() {\n    this.func.apply(this.target, this.args);\n    this.args = null;\n  };\n}).call(Throttler.prototype);\n\n// Returns a debounced version of the given function.\n// Debouncing means that when the function is invoked,\n// there is a delay of `threshold` milliseconds before\n// it is actually executed, and if the function is\n// invoked again before that threshold has elapsed then\n// the clock starts over.\n//\n// For example, if a function is debounced with a\n// threshold of 1000ms, then calling it 17 times at\n// 900ms intervals will result in a single execution\n// of the underlying function, 1000ms after the 17th\n// call.\nfunction debounce(threshold, func) {\n  var timerId = null;\n  var self, args;\n  return function() {\n    self = this;\n    args = arguments;\n    if (timerId !== null) {\n      clearTimeout(timerId);\n      timerId = null;\n    }\n    timerId = setTimeout(function() {\n      // IE8 doesn't reliably clear timeout, so this additional\n      // check is needed\n      if (timerId === null)\n        return;\n      timerId = null;\n      func.apply(self, args);\n    }, threshold);\n  };\n}\n\n// Returns a throttled version of the given function.\n// Throttling means that the underlying function will\n// be executed no more than once every `threshold`\n// milliseconds.\n//\n// For example, if a function is throttled with a\n// threshold of 1000ms, then calling it 17 times at\n// 900ms intervals will result in something like 15\n// or 16 executions of the underlying function.\n// eslint-disable-next-line no-unused-vars\nfunction throttle(threshold, func) {\n  var executionPending = false;\n  var timerId = null;\n  var self, args;\n\n  function throttled() {\n    self = null;\n    args = null;\n    if (timerId === null) {\n      // Haven't seen a call recently. Execute now and\n      // start a timer to buffer any subsequent calls.\n      timerId = setTimeout(function() {\n        // When time expires, clear the timer; and if\n        // there has been a call in the meantime, repeat.\n        timerId = null;\n        if (executionPending) {\n          executionPending = false;\n          throttled.apply(self, args);\n        }\n      }, threshold);\n      func.apply(this, arguments);\n    }\n    else {\n      // Something executed recently. Don't do anything\n      // except set up target/arguments to be called later\n      executionPending = true;\n      self = this;\n      args = arguments;\n    }\n  }\n  return throttled;\n}\n\n\n// Schedules data to be sent to shinyapp at the next setTimeout(0).\n// Batches multiple input calls into one websocket message.\nvar InputBatchSender = function(shinyapp) {\n  this.shinyapp = shinyapp;\n  this.timerId = null;\n  this.pendingData = {};\n  this.reentrant = false;\n  this.lastChanceCallback = [];\n};\n(function() {\n  this.setInput = function(nameType, value, opts) {\n    this.pendingData[nameType] = value;\n\n    if (!this.reentrant) {\n      if (opts.priority === \"event\") {\n        this.$sendNow();\n      } else if (!this.timerId) {\n        this.timerId = setTimeout(this.$sendNow.bind(this), 0);\n      }\n    }\n  };\n\n  this.$sendNow = function() {\n    if (this.reentrant) {\n      console.trace(\"Unexpected reentrancy in InputBatchSender!\");\n    }\n\n    this.reentrant = true;\n    try {\n      this.timerId = null;\n      $.each(this.lastChanceCallback, (i, callback) => {\n        callback();\n      });\n      var currentData = this.pendingData;\n      this.pendingData = {};\n      this.shinyapp.sendInput(currentData);\n    } finally {\n      this.reentrant = false;\n    }\n  };\n}).call(InputBatchSender.prototype);\n\n\nvar InputNoResendDecorator = function(target, initialValues) {\n  this.target = target;\n  this.lastSentValues = this.reset(initialValues);\n};\n(function() {\n  this.setInput = function(nameType, value, opts) {\n    const { name: inputName, inputType: inputType } = splitInputNameType(nameType);\n    const jsonValue = JSON.stringify(value);\n\n    if (opts.priority !== \"event\" &&\n        this.lastSentValues[inputName] &&\n        this.lastSentValues[inputName].jsonValue === jsonValue &&\n        this.lastSentValues[inputName].inputType === inputType) {\n      return;\n    }\n    this.lastSentValues[inputName] = { jsonValue, inputType };\n    this.target.setInput(nameType, value, opts);\n  };\n  this.reset = function(values = {}) {\n    // Given an object with flat name-value format:\n    //   { x: \"abc\", \"y.shiny.number\": 123 }\n    // Create an object in cache format and save it:\n    //   { x: { jsonValue: '\"abc\"', inputType: \"\" },\n    //     y: { jsonValue: \"123\", inputType: \"shiny.number\" } }\n    const cacheValues = {};\n\n    for (let inputName in values) {\n      if (values.hasOwnProperty(inputName)) {\n        let { name, inputType } = splitInputNameType(inputName);\n        cacheValues[name] = {\n          jsonValue: JSON.stringify(values[inputName]),\n          inputType: inputType\n        };\n      }\n    }\n\n    this.lastSentValues = cacheValues;\n  };\n}).call(InputNoResendDecorator.prototype);\n\n\nvar InputEventDecorator = function(target) {\n  this.target = target;\n};\n(function() {\n  this.setInput = function(nameType, value, opts) {\n    var evt = jQuery.Event(\"shiny:inputchanged\");\n\n    const input = splitInputNameType(nameType);\n    evt.name      = input.name;\n    evt.inputType = input.inputType;\n    evt.value     = value;\n    evt.binding   = opts.binding;\n    evt.el        = opts.el;\n    evt.priority    = opts.priority;\n\n    $(opts.el).trigger(evt);\n\n    if (!evt.isDefaultPrevented()) {\n      let name = evt.name;\n      if (evt.inputType !== '') name += ':' + evt.inputType;\n\n      // Most opts aren't passed along to lower levels in the input decorator\n      // stack.\n      this.target.setInput(name, evt.value, { priority: opts.priority });\n    }\n  };\n}).call(InputEventDecorator.prototype);\n\n\nvar InputRateDecorator = function(target) {\n  this.target = target;\n  this.inputRatePolicies = {};\n};\n(function() {\n  // Note that the first argument of setInput() and setRatePolicy()\n  // are passed both the input name (i.e., inputId) and type.\n  // https://github.com/rstudio/shiny/blob/67d3a/srcjs/init_shiny.js#L111-L126\n  // However, $ensureInit() and $doSetInput() are meant to be passed just\n  // the input name (i.e., inputId), which is why we distinguish between\n  // nameType and name.\n  this.setInput = function(nameType, value, opts) {\n    const {name: inputName} = splitInputNameType(nameType);\n\n    this.$ensureInit(inputName);\n\n    if (opts.priority !== \"deferred\")\n      this.inputRatePolicies[inputName].immediateCall(nameType, value, opts);\n    else\n      this.inputRatePolicies[inputName].normalCall(nameType, value, opts);\n  };\n  this.setRatePolicy = function(nameType, mode, millis) {\n    const {name: inputName} = splitInputNameType(nameType);\n\n    if (mode === 'direct') {\n      this.inputRatePolicies[inputName] = new Invoker(this, this.$doSetInput);\n    }\n    else if (mode === 'debounce') {\n      this.inputRatePolicies[inputName] = new Debouncer(this, this.$doSetInput, millis);\n    }\n    else if (mode === 'throttle') {\n      this.inputRatePolicies[inputName] = new Throttler(this, this.$doSetInput, millis);\n    }\n  };\n  this.$ensureInit = function(name) {\n    if (!(name in this.inputRatePolicies))\n      this.setRatePolicy(name, 'direct');\n  };\n  this.$doSetInput = function(nameType, value, opts) {\n    this.target.setInput(nameType, value, opts);\n  };\n}).call(InputRateDecorator.prototype);\n\n\nvar InputDeferDecorator = function(target) {\n  this.target = target;\n  this.pendingInput = {};\n};\n(function() {\n  this.setInput = function(nameType, value, opts) {\n    if (/^\\./.test(nameType))\n      this.target.setInput(nameType, value, opts);\n    else\n      this.pendingInput[nameType] = { value, opts };\n  };\n  this.submit = function() {\n    for (var nameType in this.pendingInput) {\n      if (this.pendingInput.hasOwnProperty(nameType)) {\n        let { value, opts } = this.pendingInput[nameType];\n        this.target.setInput(nameType, value, opts);\n      }\n    }\n  };\n}).call(InputDeferDecorator.prototype);\n\n\nconst InputValidateDecorator = function(target) {\n  this.target = target;\n};\n(function() {\n  this.setInput = function(nameType, value, opts) {\n    if (!nameType)\n      throw \"Can't set input with empty name.\";\n\n    opts = addDefaultInputOpts(opts);\n\n    this.target.setInput(nameType, value, opts);\n  };\n}).call(InputValidateDecorator.prototype);\n\n\n// Merge opts with defaults, and return a new object.\nfunction addDefaultInputOpts(opts) {\n\n  opts = $.extend({\n    priority: \"immediate\",\n    binding: null,\n    el: null\n  }, opts);\n\n  if (opts && typeof(opts.priority) !== \"undefined\") {\n    switch (opts.priority) {\n      case \"deferred\":\n      case \"immediate\":\n      case \"event\":\n        break;\n      default:\n        throw new Error(\"Unexpected input value mode: '\" + opts.priority + \"'\");\n    }\n  }\n\n  return opts;\n}\n\n\nfunction splitInputNameType(nameType) {\n  const name2 = nameType.split(':');\n  return {\n    name:      name2[0],\n    inputType: name2.length > 1 ? name2[1] : ''\n  };\n}\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/shinyapp.js\n\nvar ShinyApp = function() {\n  this.$socket = null;\n\n  // Cached input values\n  this.$inputValues = {};\n\n  // Input values at initialization (and reconnect)\n  this.$initialInput = {};\n\n  // Output bindings\n  this.$bindings = {};\n\n  // Cached values/errors\n  this.$values = {};\n  this.$errors = {};\n\n  // Conditional bindings (show/hide element based on expression)\n  this.$conditionals = {};\n\n  this.$pendingMessages = [];\n  this.$activeRequests = {};\n  this.$nextRequestId = 0;\n\n  this.$allowReconnect = false;\n};\n\n(function() {\n\n  this.connect = function(initialInput) {\n    if (this.$socket)\n      throw \"Connect was already called on this application object\";\n\n    this.$socket = this.createSocket();\n    this.$initialInput = initialInput;\n    $.extend(this.$inputValues, initialInput);\n\n    this.$updateConditionals();\n  };\n\n  this.isConnected = function() {\n    return !!this.$socket;\n  };\n\n  var scheduledReconnect = null;\n  this.reconnect = function() {\n    // This function can be invoked directly even if there's a scheduled\n    // reconnect, so be sure to clear any such scheduled reconnects.\n    clearTimeout(scheduledReconnect);\n\n    if (this.isConnected())\n      throw \"Attempted to reconnect, but already connected.\";\n\n    this.$socket = this.createSocket();\n    this.$initialInput = $.extend({}, this.$inputValues);\n    this.$updateConditionals();\n  };\n\n  this.createSocket = function () {\n    var self = this;\n\n    var createSocketFunc = exports.createSocket || function() {\n      var protocol = 'ws:';\n      if (window.location.protocol === 'https:')\n        protocol = 'wss:';\n\n      var defaultPath = window.location.pathname;\n      // some older WebKit browsers return the pathname already decoded;\n      // if we find invalid URL characters in the path, encode them\n      if (!/^([$#!&-;=?-[\\]_a-z~]|%[0-9a-fA-F]{2})+$/.test(defaultPath)) {\n        defaultPath = encodeURI(defaultPath);\n        // Bizarrely, QtWebKit requires us to encode these characters *twice*\n        if (browser.isQt) {\n          defaultPath = encodeURI(defaultPath);\n        }\n      }\n      if (!/\\/$/.test(defaultPath))\n        defaultPath += '/';\n      defaultPath += 'websocket/';\n\n      var ws = new WebSocket(protocol + '//' + window.location.host + defaultPath);\n      ws.binaryType = 'arraybuffer';\n\n      return ws;\n    };\n\n    var socket = createSocketFunc();\n    var hasOpened = false;\n    socket.onopen = function() {\n      hasOpened = true;\n\n      $(document).trigger({\n        type: 'shiny:connected',\n        socket: socket\n      });\n\n      self.onConnected();\n\n      socket.send(JSON.stringify({\n        method: 'init',\n        data: self.$initialInput\n      }));\n\n      while (self.$pendingMessages.length) {\n        var msg = self.$pendingMessages.shift();\n        socket.send(msg);\n      }\n    };\n    socket.onmessage = function(e) {\n      self.dispatchMessage(e.data);\n    };\n    // Called when a successfully-opened websocket is closed, or when an\n    // attempt to open a connection fails.\n    socket.onclose = function() {\n      // These things are needed only if we've successfully opened the\n      // websocket.\n      if (hasOpened) {\n        $(document).trigger({\n          type: 'shiny:disconnected',\n          socket: socket\n        });\n\n        self.$notifyDisconnected();\n      }\n\n      self.onDisconnected(); // Must be run before self.$removeSocket()\n      self.$removeSocket();\n    };\n    return socket;\n  };\n\n  this.sendInput = function(values) {\n    var msg = JSON.stringify({\n      method: 'update',\n      data: values\n    });\n\n    this.$sendMsg(msg);\n\n    $.extend(this.$inputValues, values);\n    this.$updateConditionals();\n  };\n\n  this.$notifyDisconnected = function() {\n    if (window.parent) {\n      window.parent.postMessage(\"disconnected\", \"*\");\n    }\n  };\n\n  this.$removeSocket = function() {\n    this.$socket = null;\n  };\n\n  this.$scheduleReconnect = function(delay) {\n    var self = this;\n    scheduledReconnect = setTimeout(function() { self.reconnect(); }, delay);\n  };\n\n  // How long should we wait before trying the next reconnection?\n  // The delay will increase with subsequent attempts.\n  // .next: Return the time to wait for next connection, and increment counter.\n  // .reset: Reset the attempt counter.\n  var reconnectDelay = (function() {\n    var attempts = 0;\n    // Time to wait before each reconnection attempt. If we go through all of\n    // these values, repeated use the last one. Add 500ms to each one so that\n    // in the last 0.5s, it shows \"...\"\n    var delays = [1500, 1500, 2500, 2500, 5500, 5500, 10500];\n\n    return {\n      next: function() {\n        var i = attempts;\n        // Instead of going off the end, use the last one\n        if (i >= delays.length) {\n          i = delays.length - 1;\n        }\n\n        attempts++;\n        return delays[i];\n      },\n      reset: function() {\n        attempts = 0;\n      }\n    };\n  })();\n\n  this.onDisconnected = function() {\n    // Add gray-out overlay, if not already present\n    var $overlay = $('#shiny-disconnected-overlay');\n    if ($overlay.length === 0) {\n      $(document.body).append('<div id=\"shiny-disconnected-overlay\"></div>');\n    }\n\n    // To try a reconnect, both the app (this.$allowReconnect) and the\n    // server (this.$socket.allowReconnect) must allow reconnections, or\n    // session$allowReconnect(\"force\") was called. The \"force\" option should\n    // only be used for testing.\n    if ((this.$allowReconnect === true && this.$socket.allowReconnect === true) ||\n        this.$allowReconnect === \"force\")\n    {\n      var delay = reconnectDelay.next();\n      exports.showReconnectDialog(delay);\n      this.$scheduleReconnect(delay);\n    }\n  };\n\n  this.onConnected = function() {\n    $('#shiny-disconnected-overlay').remove();\n    exports.hideReconnectDialog();\n    reconnectDelay.reset();\n  };\n\n  // NB: Including blobs will cause IE to break!\n  // TODO: Make blobs work with Internet Explorer\n  //\n  // Websocket messages are normally one-way--i.e. the client passes a\n  // message to the server but there is no way for the server to provide\n  // a response to that specific message. makeRequest provides a way to\n  // do asynchronous RPC over websocket. Each request has a method name\n  // and arguments, plus optionally one or more binary blobs can be\n  // included as well. The request is tagged with a unique number that\n  // the server will use to label the corresponding response.\n  //\n  // @param method A string that tells the server what logic to run.\n  // @param args An array of objects that should also be passed to the\n  //   server in JSON-ified form.\n  // @param onSuccess A function that will be called back if the server\n  //   responds with success. If the server provides a value in the\n  //   response, the function will be called with it as the only argument.\n  // @param onError A function that will be called back if the server\n  //   responds with error, or if the request fails for any other reason.\n  //   The parameter to onError will be a string describing the error.\n  // @param blobs Optionally, an array of Blob, ArrayBuffer, or string\n  //   objects that will be made available to the server as part of the\n  //   request. Strings will be encoded using UTF-8.\n  this.makeRequest = function(method, args, onSuccess, onError, blobs) {\n    var requestId = this.$nextRequestId;\n    while (this.$activeRequests[requestId]) {\n      requestId = (requestId + 1) % 1000000000;\n    }\n    this.$nextRequestId = requestId + 1;\n\n    this.$activeRequests[requestId] = {\n      onSuccess: onSuccess,\n      onError: onError\n    };\n\n    var msg = JSON.stringify({\n      method: method,\n      args: args,\n      tag: requestId\n    });\n\n    if (blobs) {\n      // We have binary data to transfer; form a different kind of packet.\n      // Start with a 4-byte signature, then for each blob, emit 4 bytes for\n      // the length followed by the blob. The json payload is UTF-8 encoded\n      // and used as the first blob.\n\n      var uint32_to_buf = function(val) {\n        var buffer = new ArrayBuffer(4);\n        var view = new DataView(buffer);\n        view.setUint32(0, val, true); // little-endian\n        return buffer;\n      };\n\n      var payload = [];\n      payload.push(uint32_to_buf(0x01020202)); // signature\n\n      var jsonBuf = makeBlob([msg]);\n      payload.push(uint32_to_buf(jsonBuf.size));\n      payload.push(jsonBuf);\n\n      for (var i = 0; i < blobs.length; i++) {\n        payload.push(uint32_to_buf(blobs[i].byteLength || blobs[i].size || 0));\n        payload.push(blobs[i]);\n      }\n\n      msg = makeBlob(payload);\n    }\n\n    this.$sendMsg(msg);\n  };\n\n  this.$sendMsg = function(msg) {\n    if (!this.$socket.readyState) {\n      this.$pendingMessages.push(msg);\n    }\n    else {\n      this.$socket.send(msg);\n    }\n  };\n\n  this.receiveError = function(name, error) {\n    if (this.$errors[name] === error)\n      return;\n\n    this.$errors[name] = error;\n    delete this.$values[name];\n\n    var binding = this.$bindings[name];\n    var evt = jQuery.Event('shiny:error');\n    evt.name = name;\n    evt.error = error;\n    evt.binding = binding;\n    $(binding ? binding.el : document).trigger(evt);\n    if (!evt.isDefaultPrevented() && binding && binding.onValueError) {\n      binding.onValueError(evt.error);\n    }\n  };\n\n  this.receiveOutput = function(name, value) {\n    var binding = this.$bindings[name];\n    var evt = jQuery.Event('shiny:value');\n    evt.name = name;\n    evt.value = value;\n    evt.binding = binding;\n\n    if (this.$values[name] === value) {\n      $(binding ? binding.el : document).trigger(evt);\n      return undefined;\n    }\n\n    this.$values[name] = value;\n    delete this.$errors[name];\n\n    $(binding ? binding.el : document).trigger(evt);\n\n    if (!evt.isDefaultPrevented() && binding) {\n      binding.onValueChange(evt.value);\n    }\n\n    return value;\n  };\n\n  this.bindOutput = function(id, binding) {\n    if (!id)\n      throw \"Can't bind an element with no ID\";\n    if (this.$bindings[id])\n      throw \"Duplicate binding for ID \" + id;\n    this.$bindings[id] = binding;\n\n    if (this.$values[id] !== undefined)\n      binding.onValueChange(this.$values[id]);\n    else if (this.$errors[id] !== undefined)\n      binding.onValueError(this.$errors[id]);\n\n    return binding;\n  };\n\n  this.unbindOutput = function(id, binding) {\n    if (this.$bindings[id] === binding) {\n      delete this.$bindings[id];\n      return true;\n    }\n    else {\n      return false;\n    }\n  };\n\n\n  // Narrows a scopeComponent -- an input or output object -- to one constrained\n  // by nsPrefix. Returns a new object with keys removed and renamed as\n  // necessary.\n  function narrowScopeComponent(scopeComponent, nsPrefix) {\n    return Object.keys(scopeComponent)\n      .filter(k => k.indexOf(nsPrefix) === 0)\n      .map(k => ({[k.substring(nsPrefix.length)]: scopeComponent[k]}))\n      .reduce((obj, pair) => $.extend(obj, pair),\n              {});\n  }\n\n  // Narrows a scope -- an object with input and output \"subComponents\" -- to\n  // one constrained by the nsPrefix string.\n  //\n  // If nsPrefix is null or empty, returns scope without modification.\n  //\n  // Otherwise, returns a new object with keys in subComponents removed and\n  // renamed as necessary.\n  function narrowScope(scope, nsPrefix) {\n    return nsPrefix ? {\n      input: narrowScopeComponent(scope.input, nsPrefix),\n      output: narrowScopeComponent(scope.output, nsPrefix)\n    } : scope;\n  }\n\n  this.$updateConditionals = function() {\n    $(document).trigger({\n      type: 'shiny:conditional'\n    });\n\n    var inputs = {};\n\n    // Input keys use \"name:type\" format; we don't want the user to\n    // have to know about the type suffix when referring to inputs.\n    for (var name in this.$inputValues) {\n      if (this.$inputValues.hasOwnProperty(name)) {\n        var shortName = name.replace(/:.*/, '');\n        inputs[shortName] = this.$inputValues[name];\n      }\n    }\n\n    var scope = {input: inputs, output: this.$values};\n\n    var conditionals = $(document).find('[data-display-if]');\n    for (var i = 0; i < conditionals.length; i++) {\n      var el = $(conditionals[i]);\n      var condFunc = el.data('data-display-if-func');\n\n      if (!condFunc) {\n        var condExpr = el.attr('data-display-if');\n        condFunc = scopeExprToFunc(condExpr);\n        el.data('data-display-if-func', condFunc);\n      }\n\n      var nsPrefix = el.attr('data-ns-prefix');\n      var nsScope = narrowScope(scope, nsPrefix);\n      var show = condFunc(nsScope);\n      var showing = el.css(\"display\") !== \"none\";\n      if (show !== showing) {\n        if (show) {\n          el.trigger('show');\n          el.show();\n          el.trigger('shown');\n        }\n        else {\n          el.trigger('hide');\n          el.hide();\n          el.trigger('hidden');\n        }\n      }\n    }\n  };\n\n  // Message handler management functions =================================\n\n  // Records insertion order of handlers. Maps number to name. This is so\n  // we can dispatch messages to handlers in the order that handlers were\n  // added.\n  var messageHandlerOrder = [];\n  // Keep track of handlers by name. Maps name to handler function.\n  var messageHandlers = {};\n\n  // Two categories of message handlers: those that are from Shiny, and those\n  // that are added by the user. The Shiny ones handle messages in\n  // msgObj.values, msgObj.errors, and so on. The user ones handle messages\n  // in msgObj.custom.foo and msgObj.custom.bar.\n  var customMessageHandlerOrder = [];\n  var customMessageHandlers = {};\n\n  // Adds Shiny (internal) message handler\n  function addMessageHandler(type, handler) {\n    if (messageHandlers[type]) {\n      throw('handler for message of type \"' + type + '\" already added.');\n    }\n    if (typeof(handler) !== 'function') {\n      throw('handler must be a function.');\n    }\n    if (handler.length !== 1) {\n      throw('handler must be a function that takes one argument.');\n    }\n    messageHandlerOrder.push(type);\n    messageHandlers[type] = handler;\n  }\n\n  // Adds custom message handler - this one is exposed to the user\n  function addCustomMessageHandler(type, handler) {\n    // Remove any previously defined handlers so that only the most recent one\n    // will be called\n    if (customMessageHandlers[type]) {\n      var typeIdx = customMessageHandlerOrder.indexOf(type);\n      if (typeIdx !== -1) {\n        customMessageHandlerOrder.splice(typeIdx, 1);\n        delete customMessageHandlers[type];\n      }\n    }\n    if (typeof(handler) !== 'function') {\n      throw('handler must be a function.');\n    }\n    if (handler.length !== 1) {\n      throw('handler must be a function that takes one argument.');\n    }\n\n    customMessageHandlerOrder.push(type);\n    customMessageHandlers[type] = handler;\n  }\n\n  exports.addCustomMessageHandler = addCustomMessageHandler;\n\n  this.dispatchMessage = function(data) {\n    var msgObj = {};\n    if(typeof data === \"string\") {\n      msgObj = JSON.parse(data);\n    } else { // data is arraybuffer\n      var len = new DataView(data,0,1).getUint8(0);\n      var typedv = new DataView(data,1,len);\n      var typebuf = [];\n      for(var i=0; i<len; i++){\n        typebuf.push(String.fromCharCode(typedv.getUint8(i)));\n      }\n      var type = typebuf.join(\"\");\n      data = data.slice(len+1);\n      msgObj.custom = {};\n      msgObj.custom[type] = data;\n    }\n\n    var evt = jQuery.Event('shiny:message');\n    evt.message = msgObj;\n    $(document).trigger(evt);\n    if (evt.isDefaultPrevented()) return;\n\n    // Send msgObj.foo and msgObj.bar to appropriate handlers\n    this._sendMessagesToHandlers(evt.message, messageHandlers, messageHandlerOrder);\n\n    this.$updateConditionals();\n  };\n\n  // A function for sending messages to the appropriate handlers.\n  // - msgObj: the object containing messages, with format {msgObj.foo, msObj.bar\n  this._sendMessagesToHandlers = function(msgObj, handlers, handlerOrder) {\n    // Dispatch messages to handlers, if handler is present\n    for (let i = 0; i < handlerOrder.length; i++) {\n      var msgType = handlerOrder[i];\n      if (msgObj.hasOwnProperty(msgType)) {\n        // Execute each handler with 'this' referring to the present value of\n        // 'this'\n        handlers[msgType].call(this, msgObj[msgType]);\n      }\n    }\n  };\n\n  // Message handlers =====================================================\n\n  addMessageHandler('values', function(message) {\n    for (var name in this.$bindings) {\n      if (this.$bindings.hasOwnProperty(name))\n        this.$bindings[name].showProgress(false);\n    }\n\n    for (var key in message) {\n      if (message.hasOwnProperty(key))\n        this.receiveOutput(key, message[key]);\n    }\n  });\n\n  addMessageHandler('errors', function(message) {\n    for (var key in message) {\n      if (message.hasOwnProperty(key))\n        this.receiveError(key, message[key]);\n    }\n  });\n\n  addMessageHandler('inputMessages', function(message) {\n    // inputMessages should be an array\n    for (var i = 0; i < message.length; i++) {\n      var $obj = $('.shiny-bound-input#' + $escape(message[i].id));\n      var inputBinding = $obj.data('shiny-input-binding');\n\n      // Dispatch the message to the appropriate input object\n      if ($obj.length > 0) {\n        var el = $obj[0];\n        var evt = jQuery.Event('shiny:updateinput');\n        evt.message = message[i].message;\n        evt.binding = inputBinding;\n        $(el).trigger(evt);\n        if (!evt.isDefaultPrevented())\n          inputBinding.receiveMessage(el, evt.message);\n      }\n    }\n  });\n\n  addMessageHandler('javascript', function(message) {\n    /*jshint evil: true */\n    eval(message);\n  });\n\n  addMessageHandler('console', function(message) {\n    for (var i = 0; i < message.length; i++) {\n      if (console.log)\n        console.log(message[i]);\n    }\n  });\n\n  addMessageHandler('progress', function(message) {\n    if (message.type && message.message) {\n      var handler = progressHandlers[message.type];\n      if (handler)\n        handler.call(this, message.message);\n    }\n  });\n\n  addMessageHandler('notification', function(message) {\n    if (message.type === 'show')\n      exports.notifications.show(message.message);\n    else if (message.type === 'remove')\n      exports.notifications.remove(message.message);\n    else\n      throw('Unkown notification type: ' + message.type);\n  });\n\n  addMessageHandler('modal', function(message) {\n    if (message.type === 'show')\n      exports.modal.show(message.message);\n    else if (message.type === 'remove')\n      exports.modal.remove(); // For 'remove', message content isn't used\n    else\n      throw('Unkown modal type: ' + message.type);\n  });\n\n  addMessageHandler('response', function(message) {\n    var requestId = message.tag;\n    var request = this.$activeRequests[requestId];\n    if (request) {\n      delete this.$activeRequests[requestId];\n      if ('value' in message)\n        request.onSuccess(message.value);\n      else\n        request.onError(message.error);\n    }\n  });\n\n  addMessageHandler('allowReconnect', function(message) {\n    if (message === true || message === false || message === \"force\") {\n      this.$allowReconnect = message;\n    } else {\n      throw \"Invalid value for allowReconnect: \" + message;\n    }\n  });\n\n  addMessageHandler('custom', function(message) {\n    // For old-style custom messages - should deprecate and migrate to new\n    // method\n    if (exports.oncustommessage) {\n      exports.oncustommessage(message);\n    }\n\n    // Send messages.foo and messages.bar to appropriate handlers\n    this._sendMessagesToHandlers(message, customMessageHandlers,\n                                 customMessageHandlerOrder);\n  });\n\n  addMessageHandler('config', function(message) {\n    this.config = {workerId: message.workerId, sessionId: message.sessionId};\n    if (message.user) exports.user = message.user;\n    $(document).trigger('shiny:sessioninitialized');\n  });\n\n  addMessageHandler('busy', function(message) {\n    if (message === 'busy') {\n      $(document.documentElement).addClass('shiny-busy');\n      $(document).trigger('shiny:busy');\n    } else if (message === 'idle') {\n      $(document.documentElement).removeClass('shiny-busy');\n      $(document).trigger('shiny:idle');\n    }\n  });\n\n  addMessageHandler('recalculating', function(message) {\n    if (message.hasOwnProperty('name') && message.hasOwnProperty('status')) {\n      var binding = this.$bindings[message.name];\n      $(binding ? binding.el : null).trigger({\n        type: 'shiny:' + message.status\n      });\n    }\n  });\n\n  addMessageHandler('reload', function(message) {\n    window.location.reload();\n  });\n\n  addMessageHandler('shiny-insert-ui', function(message) {\n    var targets = $(message.selector);\n    if (targets.length === 0) {\n      // render the HTML and deps to a null target, so\n      // the side-effect of rendering the deps, singletons,\n      // and <head> still occur\n      console.warn('The selector you chose (\"' + message.selector +\n                   '\") could not be found in the DOM.');\n      exports.renderHtml(message.content.html, $([]), message.content.deps);\n    } else {\n      targets.each(function (i, target) {\n        exports.renderContent(target, message.content, message.where);\n        return message.multiple;\n      });\n    }\n  });\n\n  addMessageHandler('shiny-remove-ui', function(message) {\n    var els = $(message.selector);\n    els.each(function (i, el) {\n      exports.unbindAll(el, true);\n      $(el).remove();\n      // If `multiple` is false, returning false terminates the function\n      // and no other elements are removed; if `multiple` is true,\n      // returning true continues removing all remaining elements.\n      return message.multiple;\n    });\n  });\n\n  function getTabset(id) {\n    var $tabset = $(\"#\" + $escape(id));\n    if ($tabset.length === 0)\n      throw \"There is no tabsetPanel (or navbarPage or navlistPanel) \" +\n            \"with id equal to '\" + id + \"'\";\n    return $tabset;\n  }\n\n  function getTabContent($tabset) {\n    var tabsetId = $tabset.attr(\"data-tabsetid\");\n    var $tabContent = $(\"div.tab-content[data-tabsetid='\" +\n                        $escape(tabsetId) + \"']\");\n    return $tabContent;\n  }\n\n  function getTargetTabs($tabset, $tabContent, target) {\n    var dataValue = \"[data-value='\" + $escape(target) + \"']\";\n    var $aTag = $tabset.find(\"a\" + dataValue);\n    var $liTag = $aTag.parent();\n    if ($liTag.length === 0) {\n      throw \"There is no tabPanel (or navbarMenu) with value\" +\n            \" (or menuName) equal to '\" + target + \"'\";\n    }\n    var $liTags = [];\n    var $divTags = [];\n\n    if ($aTag.attr(\"data-toggle\") === \"dropdown\") {\n      // dropdown\n      var $dropdownTabset = $aTag.find(\"+ ul.dropdown-menu\");\n      var dropdownId = $dropdownTabset.attr(\"data-tabsetid\");\n\n      var $dropdownLiTags = $dropdownTabset.find(\"a[data-toggle='tab']\").parent(\"li\");\n      $dropdownLiTags.each(function (i, el) {\n        $liTags.push($(el));\n      });\n      var selector = \"div.tab-pane[id^='tab-\" + $escape(dropdownId) + \"']\";\n      var $dropdownDivs = $tabContent.find(selector);\n      $dropdownDivs.each(function (i, el) {\n        $divTags.push($(el));\n      });\n\n    }\n    else {\n      // regular tab\n      $divTags.push($tabContent.find(\"div\" + dataValue));\n    }\n    return { $liTag: $liTag, $liTags: $liTags, $divTags: $divTags };\n  }\n\n  addMessageHandler(\"shiny-insert-tab\", function(message) {\n    var $parentTabset = getTabset(message.inputId);\n    var $tabset = $parentTabset;\n    var $tabContent = getTabContent($tabset);\n    var tabsetId = $parentTabset.attr(\"data-tabsetid\");\n\n    var $divTag = $(message.divTag.html);\n    var $liTag = $(message.liTag.html);\n    var $aTag = $liTag.find(\"> a\");\n\n    // Unless the item is being prepended/appended, the target tab\n    // must be provided\n    var target = null;\n    var $targetLiTag = null;\n    if (message.target !== null) {\n      target = getTargetTabs($tabset, $tabContent, message.target);\n      $targetLiTag = target.$liTag;\n    }\n\n    // If the item is to be placed inside a navbarMenu (dropdown),\n    // change the value of $tabset from the parent's ul tag to the\n    // dropdown's ul tag\n    var dropdown = getDropdown();\n    if (dropdown !== null) {\n      if ($aTag.attr(\"data-toggle\") === \"dropdown\")\n        throw \"Cannot insert a navbarMenu inside another one\";\n      $tabset = dropdown.$tabset;\n      tabsetId = dropdown.id;\n    }\n\n    // For regular tab items, fix the href (of the li > a tag)\n    // and the id (of the div tag). This does not apply to plain\n    // text items (which function as dividers and headers inside\n    // navbarMenus) and whole navbarMenus (since those get\n    // constructed from scratch on the R side and therefore\n    // there are no ids that need matching)\n    if ($aTag.attr(\"data-toggle\") === \"tab\") {\n      var index = getTabIndex($tabset, tabsetId);\n      var tabId = \"tab-\" + tabsetId + \"-\" + index;\n      $liTag.find(\"> a\").attr(\"href\", \"#\" + tabId);\n      $divTag.attr(\"id\", tabId);\n    }\n\n    // actually insert the item into the right place\n    if (message.position === \"before\") {\n      if ($targetLiTag) {\n        $targetLiTag.before($liTag);\n      } else {\n        $tabset.append($liTag);\n      }\n    } else if (message.position === \"after\") {\n      if ($targetLiTag) {\n        $targetLiTag.after($liTag);\n      } else {\n        $tabset.prepend($liTag);\n      }\n    }\n\n    exports.renderContent($liTag[0], {html: $liTag.html(), deps: message.liTag.deps});\n    // jcheng 2017-07-28: This next part might look a little insane versus the\n    // more obvious `$tabContent.append($divTag);`, but there's a method to the\n    // madness.\n    //\n    // 1) We need to load the dependencies, and this needs to happen before\n    //    any scripts in $divTag get a chance to run.\n    // 2) The scripts in $divTag need to run only once.\n    // 3) The contents of $divTag need to be sent through renderContent so that\n    //    singletons may be registered and/or obeyed, and so that inputs/outputs\n    //    may be bound.\n    //\n    // Add to these constraints these facts:\n    //\n    // A) The (non-jQuery) DOM manipulation functions don't cause scripts to\n    //    run, but the jQuery functions all do.\n    // B) renderContent must be called on an element that's attached to the\n    //    document.\n    // C) $divTag may be of length > 1 (e.g. navbarMenu). I also noticed text\n    //    elements consisting of just \"\\n\" being included in the nodeset of\n    //    $divTag.\n    // D) renderContent has a bug where only position \"replace\" (the default)\n    //    uses the jQuery functions, so other positions like \"beforeend\" will\n    //    prevent child script tags from running.\n    //\n    // In theory the same problem exists for $liTag but since that content is\n    // much less likely to include arbitrary scripts, we're skipping it.\n    //\n    // This code could be nicer if we didn't use renderContent, but rather the\n    // lower-level functions that renderContent uses. Like if we pre-process\n    // the value of message.divTag.html for singletons, we could do that, then\n    // render dependencies, then do $tabContent.append($divTag).\n    exports.renderContent($tabContent[0], {html: \"\", deps: message.divTag.deps}, \"beforeend\");\n    $divTag.get().forEach(el => {\n      // Must not use jQuery for appending el to the doc, we don't want any\n      // scripts to run (since they will run when renderContent takes a crack).\n      $tabContent[0].appendChild(el);\n      // If `el` itself is a script tag, this approach won't work (the script\n      // won't be run), since we're only sending innerHTML through renderContent\n      // and not the whole tag. That's fine in this case because we control the\n      // R code that generates this HTML, and we know that the element is not\n      // a script tag.\n      exports.renderContent(el, el.innerHTML || el.textContent);\n    });\n\n    if (message.select) {\n      $liTag.find(\"a\").tab(\"show\");\n    }\n\n    /* Barbara -- August 2017\n    Note: until now, the number of tabs in a tabsetPanel (or navbarPage\n    or navlistPanel) was always fixed. So, an easy way to give an id to\n    a tab was simply incrementing a counter. (Just like it was easy to\n    give a random 4-digit number to identify the tabsetPanel). Now that\n    we're introducing dynamic tabs, we must retrieve these numbers and\n    fix the dummy id given to the tab in the R side -- there, we always\n    set the tab id (counter dummy) to \"id\" and the tabset id to \"tsid\")\n    */\n    function getTabIndex($tabset, tabsetId) {\n      // The 0 is to ensure this works for empty tabsetPanels as well\n      var existingTabIds = [0];\n      // loop through all existing tabs, find the one with highest id\n      // (since this is based on a numeric counter), and increment\n      $tabset.find(\"> li\").each(function() {\n        var $tab = $(this).find(\"> a[data-toggle='tab']\");\n        if ($tab.length > 0) {\n          // remove leading url if it exists. (copy of bootstrap url stripper)\n          var href = $tab.attr(\"href\").replace(/.*(?=#[^\\s]+$)/, '');\n          // remove tab id to get the index\n          var index = href.replace(\"#tab-\" + tabsetId + \"-\", \"\");\n          existingTabIds.push(Number(index));\n        }\n      });\n      return Math.max.apply(null, existingTabIds) + 1;\n    }\n\n    // Finds out if the item will be placed inside a navbarMenu\n    // (dropdown). If so, returns the dropdown tabset (ul tag)\n    // and the dropdown tabsetid (to be used to fix the tab ID)\n    function getDropdown() {\n      if (message.menuName !== null) {\n        // menuName is only provided if the user wants to prepend\n        // or append an item inside a navbarMenu (dropdown)\n        var $dropdownATag = $(\"a.dropdown-toggle[data-value='\" +\n                              $escape(message.menuName) + \"']\");\n        if ($dropdownATag.length === 0) {\n          throw \"There is no navbarMenu with menuName equal to '\" +\n                message.menuName + \"'\";\n        }\n        var $dropdownTabset = $dropdownATag.find(\"+ ul.dropdown-menu\");\n        var dropdownId = $dropdownTabset.attr(\"data-tabsetid\");\n        return { $tabset: $dropdownTabset, id: dropdownId };\n\n      } else if (message.target !== null) {\n        // if our item is to be placed next to a tab that is inside\n        // a navbarMenu, our item will also be inside\n        var $uncleTabset = $targetLiTag.parent(\"ul\");\n        if ($uncleTabset.hasClass(\"dropdown-menu\")) {\n          var uncleId = $uncleTabset.attr(\"data-tabsetid\");\n          return { $tabset: $uncleTabset, id: uncleId };\n        }\n      }\n      return null;\n    }\n  });\n\n  // If the given tabset has no active tabs, select the first one\n  function ensureTabsetHasVisibleTab($tabset) {\n    if ($tabset.find(\"li.active\").not(\".dropdown\").length === 0) {\n      // Note: destTabValue may be null. We still want to proceed\n      // through the below logic and setValue so that the input\n      // value for the tabset gets updated (i.e. input$tabsetId\n      // should be null if there are no tabs).\n      let destTabValue = getFirstTab($tabset);\n      let inputBinding = $tabset.data('shiny-input-binding');\n      let evt = jQuery.Event('shiny:updateinput');\n      evt.binding = inputBinding;\n      $tabset.trigger(evt);\n      inputBinding.setValue($tabset[0], destTabValue);\n    }\n  }\n\n  // Given a tabset ul jquery object, return the value of the first tab\n  // (in document order) that's visible and able to be selected.\n  function getFirstTab($ul) {\n    return $ul.find(\"li:visible a[data-toggle='tab']\")\n      .first()\n      .attr(\"data-value\") || null;\n  }\n\n  function tabApplyFunction(target, func, liTags = false) {\n    $.each(target, function(key, el) {\n      if (key === \"$liTag\") {\n        // $liTag is always just one jQuery element\n        func(el);\n      }\n      else if (key === \"$divTags\") {\n        // $divTags is always an array (even if length = 1)\n        $.each(el, function(i, div) { func(div); });\n\n      } else if (liTags && key === \"$liTags\") {\n        // $liTags is always an array (even if length = 0)\n        $.each(el, function(i, div) { func(div); });\n      }\n    });\n  }\n\n  addMessageHandler(\"shiny-remove-tab\", function(message) {\n    var $tabset = getTabset(message.inputId);\n    var $tabContent = getTabContent($tabset);\n    var target = getTargetTabs($tabset, $tabContent, message.target);\n\n    tabApplyFunction(target, removeEl);\n\n    ensureTabsetHasVisibleTab($tabset);\n\n    function removeEl($el) {\n      exports.unbindAll($el, true);\n      $el.remove();\n    }\n  });\n\n  addMessageHandler(\"shiny-change-tab-visibility\", function(message) {\n    var $tabset = getTabset(message.inputId);\n    var $tabContent = getTabContent($tabset);\n    var target = getTargetTabs($tabset, $tabContent, message.target);\n\n    tabApplyFunction(target, changeVisibility, true);\n\n    ensureTabsetHasVisibleTab($tabset);\n\n    function changeVisibility($el) {\n      if (message.type === \"show\") $el.css(\"display\", \"\");\n      else if (message.type === \"hide\") {\n        $el.hide();\n        $el.removeClass(\"active\");\n      }\n    }\n  });\n\n  addMessageHandler('updateQueryString', function(message) {\n\n    // leave the bookmarking code intact\n    if (message.mode === \"replace\") {\n      window.history.replaceState(null, null, message.queryString);\n      return;\n    }\n\n    var what = null;\n    if (message.queryString.charAt(0) === \"#\") what = \"hash\";\n    else if (message.queryString.charAt(0) === \"?\") what = \"query\";\n    else throw \"The 'query' string must start with either '?' \" +\n               \"(to update the query string) or with '#' (to \" +\n               \"update the hash).\";\n\n    var path = window.location.pathname;\n    var oldQS = window.location.search;\n    var oldHash = window.location.hash;\n\n    /* Barbara -- December 2016\n    Note: we could check if the new QS and/or hash are different\n    from the old one(s) and, if not, we could choose not to push\n    a new state (whether or not we would replace it is moot/\n    inconsequential). However, I think that it is better to\n    interpret each call to `updateQueryString` as representing\n    new state (even if the message.queryString is the same), so\n    that check isn't even performed as of right now.\n    */\n\n    var relURL = path;\n    if (what === \"query\") relURL += message.queryString;\n    else relURL += oldQS + message.queryString; // leave old QS if it exists\n    window.history.pushState(null, null, relURL);\n\n    // for the case when message.queryString has both a query string\n    // and a hash (`what = \"hash\"` allows us to trigger the\n    // hashchange event)\n    if (message.queryString.indexOf(\"#\") !== -1) what = \"hash\";\n\n    // for the case when there was a hash before, but there isn't\n    // any hash now (e.g. for when only the query string is updated)\n    if (window.location.hash !== oldHash) what = \"hash\";\n\n    // This event needs to be triggered manually because pushState() never\n    // causes a hashchange event to be fired,\n    if (what === \"hash\") $(document).trigger(\"hashchange\");\n  });\n\n  addMessageHandler(\"resetBrush\", function(message) {\n    exports.resetBrush(message.brushId);\n  });\n\n  // Progress reporting ====================================================\n\n  var progressHandlers = {\n    // Progress for a particular object\n    binding: function(message) {\n      var key = message.id;\n      var binding = this.$bindings[key];\n      if (binding) {\n        $(binding.el).trigger({\n          type: 'shiny:outputinvalidated',\n          binding: binding,\n          name: key\n        });\n        if (binding.showProgress) binding.showProgress(true);\n      }\n    },\n\n    // Open a page-level progress bar\n    open: function(message) {\n      if (message.style === \"notification\") {\n        // For new-style (starting in Shiny 0.14) progress indicators that use\n        // the notification API.\n\n        // Progress bar starts hidden; will be made visible if a value is provided\n        // during updates.\n        exports.notifications.show({\n          html:\n            `<div id=\"shiny-progress-${message.id}\" class=\"shiny-progress-notification\">` +\n              '<div class=\"progress active\" style=\"display: none;\"><div class=\"progress-bar\"></div></div>' +\n              '<div class=\"progress-text\">' +\n                '<span class=\"progress-message\">message</span> ' +\n                '<span class=\"progress-detail\"></span>' +\n              '</div>' +\n            '</div>',\n          id: message.id,\n          duration: null\n        });\n\n      } else if (message.style === \"old\") {\n        // For old-style (Shiny <=0.13.2) progress indicators.\n\n        // Add progress container (for all progress items) if not already present\n        var $container = $('.shiny-progress-container');\n        if ($container.length === 0) {\n          $container = $('<div class=\"shiny-progress-container\"></div>');\n          $(document.body).append($container);\n        }\n\n        // Add div for just this progress ID\n        var depth = $('.shiny-progress.open').length;\n        // The 'bar' class is needed for backward compatibility with Bootstrap 2.\n        var $progress = $('<div class=\"shiny-progress open\">' +\n          '<div class=\"progress active\"><div class=\"progress-bar bar\"></div></div>' +\n          '<div class=\"progress-text\">' +\n            '<span class=\"progress-message\">message</span>' +\n            '<span class=\"progress-detail\"></span>' +\n          '</div>' +\n          '</div>'\n        );\n\n        $progress.attr('id', message.id);\n        $container.append($progress);\n\n        // Stack bars\n        var $progressBar = $progress.find('.progress');\n        $progressBar.css('top', depth * $progressBar.height() + 'px');\n\n        // Stack text objects\n        var $progressText = $progress.find('.progress-text');\n        $progressText.css('top', 3 * $progressBar.height() +\n          depth * $progressText.outerHeight() + 'px');\n\n        $progress.hide();\n      }\n\n    },\n\n    // Update page-level progress bar\n    update: function(message) {\n      if (message.style === \"notification\") {\n        // For new-style (starting in Shiny 0.14) progress indicators that use\n        // the notification API.\n        var $progress = $('#shiny-progress-' + message.id);\n\n        if ($progress.length === 0)\n          return;\n\n        if (typeof(message.message) !== 'undefined') {\n          $progress.find('.progress-message').text(message.message);\n        }\n        if (typeof(message.detail) !== 'undefined') {\n          $progress.find('.progress-detail').text(message.detail);\n        }\n        if (typeof(message.value) !== 'undefined' && message.value !== null) {\n          $progress.find('.progress').show();\n          $progress.find('.progress-bar').width((message.value*100) + '%');\n        }\n\n      } else if (message.style === \"old\") {\n        // For old-style (Shiny <=0.13.2) progress indicators.\n\n        var $progress = $('#' + message.id + '.shiny-progress');\n        if (typeof(message.message) !== 'undefined') {\n          $progress.find('.progress-message').text(message.message);\n        }\n        if (typeof(message.detail) !== 'undefined') {\n          $progress.find('.progress-detail').text(message.detail);\n        }\n        if (typeof(message.value) !== 'undefined' && message.value !== null) {\n          $progress.find('.progress').show();\n          $progress.find('.bar').width((message.value*100) + '%');\n        }\n\n        $progress.fadeIn();\n      }\n\n    },\n\n    // Close page-level progress bar\n    close: function(message) {\n      if (message.style === \"notification\") {\n        exports.notifications.remove(message.id);\n\n      } else if (message.style === \"old\") {\n        var $progress = $('#' + message.id + '.shiny-progress');\n        $progress.removeClass('open');\n\n        $progress.fadeOut({\n          complete: function() {\n            $progress.remove();\n\n            // If this was the last shiny-progress, remove container\n            if ($('.shiny-progress').length === 0)\n              $('.shiny-progress-container').remove();\n          }\n        });\n      }\n    }\n  };\n\n  exports.progressHandlers = progressHandlers;\n\n  // Returns a URL which can be queried to get values from inside the server\n  // function. This is enabled with `options(shiny.testmode=TRUE)`.\n  this.getTestSnapshotBaseUrl = function({ fullUrl = true } = {})\n  {\n    const loc = window.location;\n    let url = \"\";\n\n    if (fullUrl) {\n      // Strip off everything after last slash in path, like dirname() in R\n      url = loc.origin + loc.pathname.replace(/\\/[^/]*$/, \"\");\n    }\n    url += \"/session/\" +\n      encodeURIComponent(this.config.sessionId) +\n      \"/dataobj/shinytest?w=\" +\n      encodeURIComponent(this.config.workerId) +\n      \"&nonce=\" + randomId();\n\n    return url;\n  };\n\n}).call(ShinyApp.prototype);\n\n\n\nexports.showReconnectDialog = (function() {\n  var reconnectTime = null;\n\n  function updateTime() {\n    var $time = $(\"#shiny-reconnect-time\");\n    // If the time has been removed, exit and don't reschedule this function.\n    if ($time.length === 0) return;\n\n    var seconds = Math.floor((reconnectTime - new Date().getTime()) / 1000);\n    if (seconds > 0) {\n      $time.text(\" in \" + seconds + \"s\");\n    } else {\n      $time.text(\"...\");\n    }\n\n    // Reschedule this function after 1 second\n    setTimeout(updateTime, 1000);\n  }\n\n\n  return function(delay) {\n    reconnectTime = new Date().getTime() + delay;\n\n    // If there's already a reconnect dialog, don't add another\n    if ($('#shiny-reconnect-text').length > 0)\n      return;\n\n    var html = '<span id=\"shiny-reconnect-text\">Attempting to reconnect</span>' +\n               '<span id=\"shiny-reconnect-time\"></span>';\n    var action = '<a id=\"shiny-reconnect-now\" href=\"#\" onclick=\"Shiny.shinyapp.reconnect();\">Try now</a>';\n\n    exports.notifications.show({\n      id: \"reconnect\",\n      html: html,\n      action: action,\n      duration: null,\n      closeButton: false,\n      type: 'warning'\n    });\n\n    updateTime();\n  };\n})();\n\nexports.hideReconnectDialog = function() {\n  exports.notifications.remove(\"reconnect\");\n};\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/notifications.js\n\nexports.notifications = (function() {\n\n  // Milliseconds to fade in or out\n  const fadeDuration = 250;\n\n  function show({ html='', action='', deps=[], duration=5000,\n                  id=null, closeButton=true, type=null } = {})\n  {\n    if (!id)\n      id = randomId();\n\n    // Create panel if necessary\n    _createPanel();\n\n    // Get existing DOM element for this ID, or create if needed.\n    let $notification = _get(id);\n    if ($notification.length === 0)\n      $notification = _create(id);\n\n    // Render html and dependencies\n    const newHtml = `<div class=\"shiny-notification-content-text\">${html}</div>` +\n                    `<div class=\"shiny-notification-content-action\">${action}</div>`;\n    const $content = $notification.find('.shiny-notification-content');\n    exports.renderContent($content, { html: newHtml, deps: deps });\n\n    // Remove any existing classes of the form 'shiny-notification-xxxx'.\n    // The xxxx would be strings like 'warning'.\n    const classes = $notification.attr('class')\n      .split(/\\s+/)\n      .filter(cls => cls.match(/^shiny-notification-/))\n      .join(' ');\n    $notification.removeClass(classes);\n\n    // Add class. 'default' means no additional CSS class.\n    if (type && type !== 'default')\n      $notification.addClass('shiny-notification-' + type);\n\n\n    // Make sure that the presence/absence of close button matches with value\n    // of `closeButton`.\n    const $close = $notification.find('.shiny-notification-close');\n    if (closeButton && $close.length === 0) {\n      $notification.append('<div class=\"shiny-notification-close\">&times;</div>');\n    } else if (!closeButton && $close.length !== 0) {\n      $close.remove();\n    }\n\n    // If duration was provided, schedule removal. If not, clear existing\n    // removal callback (this happens if a message was first added with\n    // a duration, and then updated with no duration).\n    if (duration)\n      _addRemovalCallback(id, duration);\n    else\n      _clearRemovalCallback(id);\n\n    return id;\n  }\n\n  function remove(id) {\n    _get(id).fadeOut(fadeDuration, function() {\n\n      exports.unbindAll(this);\n      $(this).remove();\n\n      // If no more notifications, remove the panel from the DOM.\n      if (_ids().length === 0) {\n        _getPanel().remove();\n      }\n    });\n  }\n\n  // Returns an individual notification DOM object (wrapped in jQuery).\n  function _get(id) {\n    if (!id)\n      return null;\n    return _getPanel().find('#shiny-notification-' + $escape(id));\n  }\n\n  // Return array of all notification IDs\n  function _ids() {\n    return _getPanel()\n      .find('.shiny-notification')\n      .map(function() { return this.id.replace(/shiny-notification-/, ''); })\n      .get();\n  }\n\n  // Returns the notification panel DOM object (wrapped in jQuery).\n  function _getPanel() {\n    return $('#shiny-notification-panel');\n  }\n\n  // Create notifications panel and return the jQuery object. If the DOM\n  // element already exists, just return it.\n  function _createPanel() {\n    let $panel = _getPanel();\n\n    if ($panel.length > 0)\n      return $panel;\n\n    $(document.body).append('<div id=\"shiny-notification-panel\">');\n\n    return $panel;\n  }\n\n  // Create a notification DOM element and return the jQuery object. If the\n  // DOM element already exists for the ID, just return it without creating.\n  function _create(id) {\n    let $notification = _get(id);\n\n    if ($notification.length === 0) {\n      $notification = $(\n        `<div id=\"shiny-notification-${id}\" class=\"shiny-notification\">` +\n        '<div class=\"shiny-notification-close\">&times;</div>' +\n        '<div class=\"shiny-notification-content\"></div>' +\n        '</div>'\n      );\n\n      $notification.find('.shiny-notification-close').on('click', e => {\n        e.preventDefault();\n        e.stopPropagation();\n        remove(id);\n      });\n\n      _getPanel().append($notification);\n    }\n\n    return $notification;\n  }\n\n  // Add a callback to remove a notification after a delay in ms.\n  function _addRemovalCallback(id, delay) {\n    // If there's an existing removalCallback, clear it before adding the new\n    // one.\n    _clearRemovalCallback(id);\n\n    // Attach new removal callback\n    const removalCallback = setTimeout(function() { remove(id); }, delay);\n    _get(id).data('removalCallback', removalCallback);\n  }\n\n  // Clear a removal callback from a notification, if present.\n  function _clearRemovalCallback(id) {\n    const $notification = _get(id);\n    const oldRemovalCallback = $notification.data('removalCallback');\n    if (oldRemovalCallback) {\n      clearTimeout(oldRemovalCallback);\n    }\n  }\n\n  return {\n    show,\n    remove\n  };\n})();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/modal.js\n\nexports.modal = {\n\n  // Show a modal dialog. This is meant to handle two types of cases: one is\n  // that the content is a Bootstrap modal dialog, and the other is that the\n  // content is non-Bootstrap. Bootstrap modals require some special handling,\n  // which is coded in here.\n  show: function({ html='', deps=[] } = {}) {\n\n    // If there was an existing Bootstrap modal, then there will be a modal-\n    // backdrop div that was added outside of the modal wrapper, and it must be\n    // removed; otherwise there can be multiple of these divs.\n    $('.modal-backdrop').remove();\n\n    // Get existing wrapper DOM element, or create if needed.\n    let $modal = $('#shiny-modal-wrapper');\n    if ($modal.length === 0) {\n      $modal = $('<div id=\"shiny-modal-wrapper\"></div>');\n      $(document.body).append($modal);\n\n      // If the wrapper's content is a Bootstrap modal, then when the inner\n      // modal is hidden, remove the entire thing, including wrapper.\n      $modal.on('hidden.bs.modal', function(e) {\n        if (e.target === $(\"#shiny-modal\")[0]) {\n          exports.unbindAll($modal);\n          $modal.remove();\n        }\n      });\n    }\n\n    $modal.on('keydown.shinymodal', function(e) {\n      // If we're listening for Esc, don't let the event propagate. See\n      // https://github.com/rstudio/shiny/issues/1453. The value of\n      // data(\"keyboard\") needs to be checked inside the handler, because at\n      // the time that $modal.on() is called, the $(\"#shiny-modal\") div doesn't\n      // yet exist.\n      if ($(\"#shiny-modal\").data(\"keyboard\") === false)\n        return;\n\n      if (e.keyCode === 27) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n    });\n\n    // Set/replace contents of wrapper with html.\n    exports.renderContent($modal, { html: html, deps: deps });\n  },\n\n  remove: function() {\n    const $modal = $('#shiny-modal-wrapper');\n\n    $modal.off('keydown.shinymodal');\n\n    // Look for a Bootstrap modal and if present, trigger hide event. This will\n    // trigger the hidden.bs.modal callback that we set in show(), which unbinds\n    // and removes the element.\n    if ($modal.find('.modal').length > 0) {\n      $modal.find('.modal').modal('hide');\n\n    } else {\n      // If not a Bootstrap modal dialog, simply unbind and remove it.\n      exports.unbindAll($modal);\n      $modal.remove();\n    }\n  }\n};\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/file_processor.js\n\n// Generic driver class for doing chunk-wise asynchronous processing of a\n// FileList object. Subclass/clone it and override the `on*` functions to\n// make it do something useful.\nvar FileProcessor = function(files) {\n  this.files = files;\n  this.fileIndex = -1;\n  // Currently need to use small chunk size because R-Websockets can't\n  // handle continuation frames\n  this.aborted = false;\n  this.completed = false;\n\n  // TODO: Register error/abort callbacks\n\n  this.$run();\n};\n(function() {\n  // Begin callbacks. Subclassers/cloners may override any or all of these.\n  this.onBegin = function(files, cont) {\n    setTimeout(cont, 0);\n  };\n  this.onFile = function(file, cont) {\n    setTimeout(cont, 0);\n  };\n  this.onComplete = function() {\n  };\n  this.onAbort = function() {\n  };\n  // End callbacks\n\n  // Aborts processing, unless it's already completed\n  this.abort = function() {\n    if (this.completed || this.aborted)\n      return;\n\n    this.aborted = true;\n    this.onAbort();\n  };\n\n  // Returns a bound function that will call this.$run one time.\n  this.$getRun = function() {\n    var self = this;\n    var called = false;\n    return function() {\n      if (called)\n        return;\n      called = true;\n      self.$run();\n    };\n  };\n\n  // This function will be called multiple times to advance the process.\n  // It relies on the state of the object's fields to know what to do next.\n  this.$run = function() {\n\n    if (this.aborted || this.completed)\n      return;\n\n    if (this.fileIndex < 0) {\n      // Haven't started yet--begin\n      this.fileIndex = 0;\n      this.onBegin(this.files, this.$getRun());\n      return;\n    }\n\n    if (this.fileIndex === this.files.length) {\n      // Just ended\n      this.completed = true;\n      this.onComplete();\n      return;\n    }\n\n    // If we got here, then we have a file to process, or we are\n    // in the middle of processing a file, or have just finished\n    // processing a file.\n\n    var file = this.files[this.fileIndex++];\n    this.onFile(file, this.$getRun());\n  };\n}).call(FileProcessor.prototype);\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/binding_registry.js\n\nvar BindingRegistry = function() {\n  this.bindings = [];\n  this.bindingNames = {};\n};\n(function() {\n  this.register = function(binding, bindingName, priority) {\n    var bindingObj = {binding: binding, priority: priority || 0};\n    this.bindings.unshift(bindingObj);\n    if (bindingName) {\n      this.bindingNames[bindingName] = bindingObj;\n      binding.name = bindingName;\n    }\n  };\n  this.setPriority = function(bindingName, priority) {\n    var bindingObj = this.bindingNames[bindingName];\n    if (!bindingObj)\n      throw \"Tried to set priority on unknown binding \" + bindingName;\n    bindingObj.priority = priority || 0;\n  };\n  this.getPriority = function(bindingName) {\n    var bindingObj = this.bindingNames[bindingName];\n    if (!bindingObj)\n      return false;\n    return bindingObj.priority;\n  };\n  this.getBindings = function() {\n    // Sort the bindings. The ones with higher priority are consulted\n    // first; ties are broken by most-recently-registered.\n    return mergeSort(this.bindings, function(a, b) {\n      return b.priority - a.priority;\n    });\n  };\n}).call(BindingRegistry.prototype);\n\n\nvar inputBindings = exports.inputBindings = new BindingRegistry();\nvar outputBindings = exports.outputBindings = new BindingRegistry();\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding.js\n\nvar OutputBinding = exports.OutputBinding = function() {};\n(function() {\n  // Returns a jQuery object or element array that contains the\n  // descendants of scope that match this binding\n  this.find = function(scope) { throw \"Not implemented\"; };\n\n  this.getId = function(el) {\n    return el['data-input-id'] || el.id;\n  };\n\n  this.onValueChange = function(el, data) {\n    this.clearError(el);\n    this.renderValue(el, data);\n  };\n  this.onValueError = function(el, err) {\n    this.renderError(el, err);\n  };\n  this.renderError = function(el, err) {\n    this.clearError(el);\n    if (err.message === '') {\n      // not really error, but we just need to wait (e.g. action buttons)\n      $(el).empty();\n      return;\n    }\n    var errClass = 'shiny-output-error';\n    if (err.type !== null) {\n      // use the classes of the error condition as CSS class names\n      errClass = errClass + ' ' + $.map(asArray(err.type), function(type) {\n        return errClass + '-' + type;\n      }).join(' ');\n    }\n    $(el).addClass(errClass).text(err.message);\n  };\n  this.clearError = function(el) {\n    $(el).attr('class', function(i, c) {\n      return c.replace(/(^|\\s)shiny-output-error\\S*/g, '');\n    });\n  };\n  this.showProgress = function(el, show) {\n    var RECALC_CLASS = 'recalculating';\n    if (show)\n      $(el).addClass(RECALC_CLASS);\n    else\n      $(el).removeClass(RECALC_CLASS);\n  };\n}).call(OutputBinding.prototype);\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_text.js\n\nvar textOutputBinding = new OutputBinding();\n$.extend(textOutputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-text-output');\n  },\n  renderValue: function(el, data) {\n    $(el).text(data);\n  }\n});\noutputBindings.register(textOutputBinding, 'shiny.textOutput');\n\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_image.js\n\nvar imageOutputBinding = new OutputBinding();\n$.extend(imageOutputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-image-output, .shiny-plot-output');\n  },\n  renderValue: function(el, data) {\n    // The overall strategy:\n    // * Clear out existing image and event handlers.\n    // * Create new image.\n    // * Create various event handlers.\n    // * Bind those event handlers to events.\n    // * Insert the new image.\n\n    var outputId = this.getId(el);\n\n    var $el = $(el);\n    var img;\n\n    // Get existing img element if present.\n    var $img = $el.find('img');\n\n    if ($img.length === 0) {\n      // If a img element is not already present, that means this is either\n      // the first time renderValue() has been called, or this is after an\n      // error.\n      img = document.createElement('img');\n      $el.append(img);\n      $img = $(img);\n    } else {\n      // Trigger custom 'reset' event for any existing images in the div\n      img = $img[0];\n      $img.trigger('reset');\n    }\n\n    if (!data) {\n      $el.empty();\n      return;\n    }\n\n    // If value is undefined, return alternate. Sort of like ||, except it won't\n    // return alternate for other falsy values (0, false, null).\n    function OR(value, alternate) {\n      if (value === undefined) return alternate;\n      return value;\n    }\n\n    var opts = {\n      clickId: $el.data('click-id'),\n      clickClip: OR(strToBool($el.data('click-clip')), true),\n\n      dblclickId: $el.data('dblclick-id'),\n      dblclickClip: OR(strToBool($el.data('dblclick-clip')), true),\n      dblclickDelay: OR($el.data('dblclick-delay'), 400),\n\n      hoverId: $el.data('hover-id'),\n      hoverClip: OR(strToBool($el.data('hover-clip')), true),\n      hoverDelayType: OR($el.data('hover-delay-type'), 'debounce'),\n      hoverDelay: OR($el.data('hover-delay'), 300),\n      hoverNullOutside: OR(strToBool($el.data('hover-null-outside')), false),\n\n      brushId: $el.data('brush-id'),\n      brushClip: OR(strToBool($el.data('brush-clip')), true),\n      brushDelayType: OR($el.data('brush-delay-type'), 'debounce'),\n      brushDelay: OR($el.data('brush-delay'), 300),\n      brushFill: OR($el.data('brush-fill'), '#666'),\n      brushStroke: OR($el.data('brush-stroke'), '#000'),\n      brushOpacity: OR($el.data('brush-opacity'), 0.3),\n      brushDirection: OR($el.data('brush-direction'), 'xy'),\n      brushResetOnNew: OR(strToBool($el.data('brush-reset-on-new')), false),\n\n      coordmap: data.coordmap\n    };\n\n    // Copy items from data to img. Don't set the coordmap as an attribute.\n    $.each(data, function(key, value) {\n      if (value === null || key === 'coordmap') {\n        return;\n      }\n      // this checks only against base64 encoded src values\n      // images put here are only from renderImage and renderPlot\n      if (key === \"src\" && value === img.getAttribute(\"src\")) {\n        // Ensure the browser actually fires an onLoad event, which doesn't\n        // happen on WebKit if the value we set on src is the same as the\n        // value it already has\n        // https://github.com/rstudio/shiny/issues/2197\n        // https://stackoverflow.com/questions/5024111/javascript-image-onload-doesnt-fire-in-webkit-if-loading-same-image\n        img.removeAttribute(\"src\");\n      }\n      img.setAttribute(key, value);\n    });\n\n    // Unset any attributes in the current img that were not provided in the\n    // new data.\n    for (var i=0; i<img.attributes.length; i++) {\n      var attrib = img.attributes[i];\n      // Need to check attrib.specified on IE because img.attributes contains\n      // all possible attributes on IE.\n      if (attrib.specified && !data.hasOwnProperty(attrib.name)) {\n        img.removeAttribute(attrib.name);\n      }\n    }\n\n    if (!opts.coordmap) {\n      opts.coordmap = {\n        panels: [],\n        dims: {\n          // These values be set to the naturalWidth and naturalHeight once the image has loaded\n          height: null,\n          width: null\n        }\n      };\n    }\n\n    // Remove event handlers that were added in previous runs of this function.\n    $el.off('.image_output');\n    $img.off('.image_output');\n\n    // When the image loads, initialize all the interaction handlers. When the\n    // value of src is set, the browser may not load the image immediately,\n    // even if it's a data URL. If we try to initialize this stuff\n    // immediately, it can cause problems because we use we need the raw image\n    // height and width\n    $img.off(\"load.shiny_image_interaction\");\n    $img.one(\"load.shiny_image_interaction\", function() {\n\n      imageutils.initCoordmap($el, opts.coordmap);\n\n      // This object listens for mousedowns, and triggers mousedown2 and dblclick2\n      // events as appropriate.\n      var clickInfo = imageutils.createClickInfo($el, opts.dblclickId, opts.dblclickDelay);\n\n      $el.on('mousedown.image_output', clickInfo.mousedown);\n\n      if (browser.isIE && browser.IEVersion === 8) {\n        $el.on('dblclick.image_output', clickInfo.dblclickIE8);\n      }\n\n      // ----------------------------------------------------------\n      // Register the various event handlers\n      // ----------------------------------------------------------\n      if (opts.clickId) {\n        imageutils.disableDrag($el, $img);\n\n        var clickHandler = imageutils.createClickHandler(opts.clickId,\n          opts.clickClip, opts.coordmap);\n        $el.on('mousedown2.image_output', clickHandler.mousedown);\n\n        $el.on('resize.image_output', clickHandler.onResize);\n\n        // When img is reset, do housekeeping: clear $el's mouse listener and\n        // call the handler's onResetImg callback.\n        $img.on('reset.image_output', clickHandler.onResetImg);\n      }\n\n      if (opts.dblclickId) {\n        imageutils.disableDrag($el, $img);\n\n        // We'll use the clickHandler's mousedown function, but register it to\n        // our custom 'dblclick2' event.\n        var dblclickHandler = imageutils.createClickHandler(opts.dblclickId,\n          opts.clickClip, opts.coordmap);\n        $el.on('dblclick2.image_output', dblclickHandler.mousedown);\n\n        $el.on('resize.image_output', dblclickHandler.onResize);\n        $img.on('reset.image_output', dblclickHandler.onResetImg);\n      }\n\n      if (opts.hoverId) {\n        imageutils.disableDrag($el, $img);\n\n        var hoverHandler = imageutils.createHoverHandler(opts.hoverId,\n          opts.hoverDelay, opts.hoverDelayType, opts.hoverClip,\n          opts.hoverNullOutside, opts.coordmap);\n        $el.on('mousemove.image_output', hoverHandler.mousemove);\n        $el.on('mouseout.image_output', hoverHandler.mouseout);\n\n        $el.on('resize.image_output', hoverHandler.onResize);\n        $img.on('reset.image_output', hoverHandler.onResetImg);\n      }\n\n      if (opts.brushId) {\n        imageutils.disableDrag($el, $img);\n\n        var brushHandler = imageutils.createBrushHandler(opts.brushId, $el, opts,\n          opts.coordmap, outputId);\n        $el.on('mousedown.image_output', brushHandler.mousedown);\n        $el.on('mousemove.image_output', brushHandler.mousemove);\n\n        $el.on('resize.image_output', brushHandler.onResize);\n        $img.on('reset.image_output', brushHandler.onResetImg);\n      }\n\n      if (opts.clickId || opts.dblclickId || opts.hoverId || opts.brushId) {\n        $el.addClass('crosshair');\n      }\n\n      if (data.error)\n        console.log('Error on server extracting coordmap: ' + data.error);\n\n    });\n  },\n\n  renderError: function(el, err) {\n    $(el).find('img').trigger('reset');\n    OutputBinding.prototype.renderError.call(this, el, err);\n  },\n\n  clearError: function(el) {\n    // Remove all elements except img and the brush; this is usually just\n    // error messages.\n    $(el).contents().filter(function() {\n      return this.tagName !== \"IMG\" &&\n             this.id !== el.id + '_brush';\n    }).remove();\n\n    OutputBinding.prototype.clearError.call(this, el);\n  },\n\n  resize: function(el, width, height) {\n    $(el).find(\"img\").trigger(\"resize\");\n  }\n});\noutputBindings.register(imageOutputBinding, 'shiny.imageOutput');\n\n\nvar imageutils = {};\n\nimageutils.disableDrag = function($el, $img) {\n  // Make image non-draggable (Chrome, Safari)\n  $img.css('-webkit-user-drag', 'none');\n\n  // Firefox, IE<=10\n  // First remove existing handler so we don't keep adding handlers.\n  $img.off('dragstart.image_output');\n  $img.on('dragstart.image_output', function() { return false; });\n\n  // Disable selection of image and text when dragging in IE<=10\n  $el.off('selectstart.image_output');\n  $el.on('selectstart.image_output', function() { return false; });\n};\n\n// Modifies the panel objects in a coordmap, adding scaleImgToData(),\n// scaleDataToImg(), and clipImg() functions to each one. The panel objects\n// use img and data coordinates only; they do not use css coordinates. The\n// domain is in data coordinates; the range is in img coordinates.\nimageutils.initPanelScales = function(panels) {\n  // Map a value x from a domain to a range. If clip is true, clip it to the\n  // range.\n  function mapLinear(x, domainMin, domainMax, rangeMin, rangeMax, clip) {\n    // By default, clip to range\n    clip = clip || true;\n\n    var factor = (rangeMax - rangeMin) / (domainMax - domainMin);\n    var val = x - domainMin;\n    var newval = (val * factor) + rangeMin;\n\n    if (clip) {\n      var max = Math.max(rangeMax, rangeMin);\n      var min = Math.min(rangeMax, rangeMin);\n      if (newval > max)\n        newval = max;\n      else if (newval < min)\n        newval = min;\n    }\n    return newval;\n  }\n\n  // Create scale and inverse-scale functions for a single direction (x or y).\n  function scaler1D(domainMin, domainMax, rangeMin, rangeMax, logbase) {\n    return {\n      scale: function(val, clip) {\n        if (logbase)\n          val = Math.log(val) / Math.log(logbase);\n        return mapLinear(val, domainMin, domainMax, rangeMin, rangeMax, clip);\n      },\n\n      scaleInv: function(val, clip) {\n        var res = mapLinear(val, rangeMin, rangeMax, domainMin, domainMax, clip);\n        if (logbase)\n          res = Math.pow(logbase, res);\n        return res;\n      }\n    };\n  }\n\n  // Modify panel, adding scale and inverse-scale functions that take objects\n  // like {x:1, y:3}, and also add clip function.\n  function addScaleFuns(panel) {\n    var d = panel.domain;\n    var r = panel.range;\n    var xlog = (panel.log && panel.log.x) ? panel.log.x : null;\n    var ylog = (panel.log && panel.log.y) ? panel.log.y : null;\n    var xscaler = scaler1D(d.left, d.right, r.left, r.right, xlog);\n    var yscaler = scaler1D(d.bottom, d.top, r.bottom, r.top, ylog);\n\n    // Given an object of form {x:1, y:2}, or {x:1, xmin:2:, ymax: 3}, convert\n    // from data coordinates to img. Whether a value is converted as x or y\n    // depends on the first character of the key.\n    panel.scaleDataToImg = function(val, clip) {\n      return mapValues(val, (value, key) => {\n        const prefix = key.substring(0, 1);\n        if (prefix === \"x\") {\n          return xscaler.scale(value, clip);\n        } else if (prefix === \"y\") {\n          return yscaler.scale(value, clip);\n        }\n        return null;\n      });\n    };\n\n    panel.scaleImgToData = function(val, clip) {\n      return mapValues(val, (value, key) => {\n        const prefix = key.substring(0, 1);\n        if (prefix === \"x\") {\n          return xscaler.scaleInv(value, clip);\n        } else if (prefix === \"y\") {\n          return yscaler.scaleInv(value, clip);\n        }\n        return null;\n      });\n    };\n\n    // Given a scaled offset (in img pixels), clip it to the nearest panel region.\n    panel.clipImg = function(offset_img) {\n      var newOffset = {\n        x: offset_img.x,\n        y: offset_img.y\n      };\n\n      var bounds = panel.range;\n\n      if      (offset_img.x > bounds.right)  newOffset.x = bounds.right;\n      else if (offset_img.x < bounds.left)   newOffset.x = bounds.left;\n\n      if      (offset_img.y > bounds.bottom) newOffset.y = bounds.bottom;\n      else if (offset_img.y < bounds.top)    newOffset.y = bounds.top;\n\n      return newOffset;\n    };\n  }\n\n  // Add the functions to each panel object.\n  for (var i=0; i<panels.length; i++) {\n    var panel = panels[i];\n    addScaleFuns(panel);\n  }\n};\n\n\n// This adds functions to the coordmap object to handle various\n// coordinate-mapping tasks, and send information to the server. The input\n// coordmap is an array of objects, each of which represents a panel. coordmap\n// must be an array, even if empty, so that it can be modified in place; when\n// empty, we add a dummy panel to the array. It also calls initPanelScales,\n// which modifies each panel object to have scaleImgToData, scaleDataToImg,\n// and clip functions.\n//\n// There are three coordinate spaces which we need to translate between:\n//\n// 1. css: The pixel coordinates in the web browser, also known as CSS pixels.\n//    The origin is the upper-left corner of the <img> (not including padding\n//    and border).\n// 2. img: The pixel coordinates of the image data. A common case is on a\n//    HiDPI device, where the source PNG image could be 1000 pixels wide but\n//    be displayed in 500 CSS pixels. Another case is when the image has\n//    additional scaling due to CSS transforms or width.\n// 3. data: The coordinates in the data space. This is a bit more complicated\n//    than the other two, because there can be multiple panels (as in facets).\nimageutils.initCoordmap = function($el, coordmap) {\n  const $img = $el.find(\"img\");\n  const img = $img[0];\n\n  // If we didn't get any panels, create a dummy one where the domain and range\n  // are simply the pixel dimensions.\n  // that we modify.\n  if (coordmap.panels.length === 0) {\n    let bounds = {\n      top: 0,\n      left: 0,\n      right: img.clientWidth - 1,\n      bottom: img.clientHeight - 1\n    };\n\n    coordmap.panels[0] = {\n      domain: bounds,\n      range: bounds,\n      mapping: {}\n    };\n  }\n\n  // If no dim height and width values are found, set them to the raw image height and width\n  // These values should be the same...\n  // This is only done to initialize an image output, whose height and width are unknown until the image is retrieved\n  coordmap.dims.height = coordmap.dims.height || img.naturalHeight;\n  coordmap.dims.width = coordmap.dims.width || img.naturalWidth;\n\n  // Add scaling functions to each panel\n  imageutils.initPanelScales(coordmap.panels);\n\n\n  // This returns the offset of the mouse in CSS pixels relative to the img,\n  // but not including the  padding or border, if present.\n  coordmap.mouseOffsetCss = function(mouseEvent) {\n    const img_origin = findOrigin($img);\n\n    // The offset of the mouse from the upper-left corner of the img, in\n    // pixels.\n    return {\n      x: mouseEvent.pageX - img_origin.x,\n      y: mouseEvent.pageY - img_origin.y\n    };\n  };\n\n  // Given an offset in an img in CSS pixels, return the corresponding offset\n  // in source image pixels. The offset_css can have properties like \"x\",\n  // \"xmin\", \"y\", and \"ymax\" -- anything that starts with \"x\" and \"y\". If the\n  // img content is 1000 pixels wide, but is scaled to 400 pixels on screen,\n  // and the input is x:400, then this will return x:1000.\n  coordmap.scaleCssToImg = function(offset_css) {\n    const pixel_scaling = coordmap.imgToCssScalingRatio();\n\n    const result = mapValues(offset_css, (value, key) => {\n      const prefix = key.substring(0, 1);\n\n      if (prefix === \"x\") {\n        return offset_css[key] / pixel_scaling.x;\n      } else if (prefix === \"y\") {\n        return offset_css[key] / pixel_scaling.y;\n      }\n      return null;\n    });\n\n    return result;\n  };\n\n  // Given an offset in an img, in source image pixels, return the\n  // corresponding offset in CSS pixels. If the img content is 1000 pixels\n  // wide, but is scaled to 400 pixels on screen, and the input is x:1000,\n  // then this will return x:400.\n  coordmap.scaleImgToCss = function(offset_img) {\n    const pixel_scaling = coordmap.imgToCssScalingRatio();\n\n    const result = mapValues(offset_img, (value, key) => {\n      const prefix = key.substring(0, 1);\n\n      if (prefix === \"x\") {\n        return offset_img[key] * pixel_scaling.x;\n      } else if (prefix === \"y\") {\n        return offset_img[key] * pixel_scaling.y;\n      }\n      return null;\n    });\n\n    return result;\n  };\n\n  // Returns the x and y ratio the image content is scaled to on screen. If\n  // the image data is 1000 pixels wide and is scaled to 300 pixels on screen,\n  // then this returns 0.3. (Note the 300 pixels refers to CSS pixels.)\n  coordmap.imgToCssScalingRatio = function() {\n    const img_dims = findDims($img);\n    return {\n      x: img_dims.x / coordmap.dims.width,\n      y: img_dims.y / coordmap.dims.height\n    };\n  };\n\n  coordmap.cssToImgScalingRatio = function() {\n    const res = coordmap.imgToCssScalingRatio();\n    return {\n      x: 1 / res.x,\n      y: 1 / res.y\n    };\n  };\n\n  // Given an offset in css pixels, return an object representing which panel\n  // it's in. The `expand` argument tells it to expand the panel area by that\n  // many pixels. It's possible for an offset to be within more than one\n  // panel, because of the `expand` value. If that's the case, find the\n  // nearest panel.\n  coordmap.getPanelCss = function(offset_css, expand = 0) {\n    const offset_img = coordmap.scaleCssToImg(offset_css);\n    const x = offset_img.x;\n    const y = offset_img.y;\n\n    // Convert expand from css pixels to img pixels\n    const cssToImgRatio = coordmap.cssToImgScalingRatio();\n    const expand_img = {\n      x: expand * cssToImgRatio.x,\n      y: expand * cssToImgRatio.y\n    };\n\n    const matches = []; // Panels that match\n    const dists = [];   // Distance of offset to each matching panel\n    let b;\n    for (var i=0; i<coordmap.panels.length; i++) {\n      b = coordmap.panels[i].range;\n\n      if (x <= b.right  + expand_img.x &&\n          x >= b.left   - expand_img.x &&\n          y <= b.bottom + expand_img.y &&\n          y >= b.top    - expand_img.y)\n      {\n        matches.push(coordmap.panels[i]);\n\n        // Find distance from edges for x and y\n        var xdist = 0;\n        var ydist = 0;\n        if (x > b.right && x <= b.right + expand_img.x) {\n          xdist = x - b.right;\n        } else if (x < b.left && x >= b.left - expand_img.x) {\n          xdist = x - b.left;\n        }\n        if (y > b.bottom && y <= b.bottom + expand_img.y) {\n          ydist = y - b.bottom;\n        } else if (y < b.top && y >= b.top - expand_img.y) {\n          ydist = y - b.top;\n        }\n\n        // Cartesian distance\n        dists.push(Math.sqrt( Math.pow(xdist, 2) + Math.pow(ydist, 2) ));\n      }\n    }\n\n    if (matches.length) {\n      // Find shortest distance\n      var min_dist = Math.min.apply(null, dists);\n      for (i=0; i<matches.length; i++) {\n        if (dists[i] === min_dist) {\n          return matches[i];\n        }\n      }\n    }\n\n    return null;\n  };\n\n  // Is an offset (in css pixels) in a panel? If supplied, `expand` tells us\n  // to expand the panels by that many pixels in all directions.\n  coordmap.isInPanelCss = function(offset_css, expand = 0) {\n    if (coordmap.getPanelCss(offset_css, expand))\n      return true;\n\n    return false;\n  };\n\n  // Returns a function that sends mouse coordinates, scaled to data space.\n  // If that function is passed a null event, it will send null.\n  coordmap.mouseCoordinateSender = function(inputId, clip, nullOutside) {\n    if (clip === undefined) clip = true;\n    if (nullOutside === undefined) nullOutside = false;\n\n    return function(e) {\n      if (e === null) {\n        exports.setInputValue(inputId, null);\n        return;\n      }\n      const coords = {};\n      const coords_css = coordmap.mouseOffsetCss(e);\n      // If outside of plotting region\n      if (!coordmap.isInPanelCss(coords_css)) {\n        if (nullOutside) {\n          exports.setInputValue(inputId, null);\n          return;\n        }\n        if (clip)\n          return;\n\n        coords.coords_css = coords_css;\n        coords.coords_img = coordmap.scaleCssToImg(coords_css);\n\n        exports.setInputValue(inputId, coords, {priority: \"event\"});\n        return;\n      }\n      const panel = coordmap.getPanelCss(coords_css);\n\n      const coords_img = coordmap.scaleCssToImg(coords_css);\n      const coords_data = panel.scaleImgToData(coords_img);\n      coords.x = coords_data.x;\n      coords.y = coords_data.y;\n      coords.coords_css = coords_css;\n      coords.coords_img = coords_img;\n\n      coords.img_css_ratio = coordmap.cssToImgScalingRatio();\n\n      // Add the panel (facet) variables, if present\n      $.extend(coords, panel.panel_vars);\n\n      // Add variable name mappings\n      coords.mapping = panel.mapping;\n\n      // Add scaling information\n      coords.domain = panel.domain;\n      coords.range  = panel.range;\n      coords.log    = panel.log;\n\n      exports.setInputValue(inputId, coords, {priority: \"event\"});\n    };\n  };\n};\n\n\n// Given two sets of x/y coordinates, return an object representing the min\n// and max x and y values. (This could be generalized to any number of\n// points).\nimageutils.findBox = function(offset1, offset2) {\n  return {\n    xmin: Math.min(offset1.x, offset2.x),\n    xmax: Math.max(offset1.x, offset2.x),\n    ymin: Math.min(offset1.y, offset2.y),\n    ymax: Math.max(offset1.y, offset2.y)\n  };\n};\n\n// Shift an array of values so that they are within a min and max. The vals\n// will be shifted so that they maintain the same spacing internally. If the\n// range in vals is larger than the range of min and max, the result might not\n// make sense.\nimageutils.shiftToRange = function(vals, min, max) {\n  if (!(vals instanceof Array))\n    vals = [vals];\n\n  var maxval = Math.max.apply(null, vals);\n  var minval = Math.min.apply(null, vals);\n  var shiftAmount = 0;\n  if (maxval > max) {\n    shiftAmount = max - maxval;\n  } else if (minval < min) {\n    shiftAmount = min - minval;\n  }\n\n  var newvals = [];\n  for (var i=0; i<vals.length; i++) {\n    newvals[i] = vals[i] + shiftAmount;\n  }\n  return newvals;\n};\n\n\n\n// This object provides two public event listeners: mousedown, and\n// dblclickIE8.\n// We need to make sure that, when the image is listening for double-\n// clicks, that a double-click doesn't trigger two click events. We'll\n// trigger custom mousedown2 and dblclick2 events with this mousedown\n// listener.\nimageutils.createClickInfo = function($el, dblclickId, dblclickDelay) {\n  var clickTimer = null;\n  var pending_e = null;    // A pending mousedown2 event\n\n  // Create a new event of type eventType (like 'mousedown2'), and trigger\n  // it with the information stored in this.e.\n  function triggerEvent(newEventType, e) {\n    // Extract important info from e and construct a new event with type\n    // eventType.\n    var e2 = $.Event(newEventType, {\n      which:   e.which,\n      pageX:   e.pageX,\n      pageY:   e.pageY\n    });\n\n    $el.trigger(e2);\n  }\n\n  function triggerPendingMousedown2() {\n    // It's possible that between the scheduling of a mousedown2 and the\n    // time this callback is executed, someone else triggers a\n    // mousedown2, so check for that.\n    if (pending_e) {\n      triggerEvent('mousedown2', pending_e);\n      pending_e = null;\n    }\n  }\n\n  // Set a timer to trigger a mousedown2 event, using information from the\n  // last recorded mousdown event.\n  function scheduleMousedown2(e) {\n    pending_e = e;\n\n    clickTimer = setTimeout(function() {\n      triggerPendingMousedown2();\n    }, dblclickDelay);\n  }\n\n  function mousedown(e) {\n    // Listen for left mouse button only\n    if (e.which !== 1) return;\n\n    // If no dblclick listener, immediately trigger a mousedown2 event.\n    if (!dblclickId) {\n      triggerEvent('mousedown2', e);\n      return;\n    }\n\n    // If there's a dblclick listener, make sure not to count this as a\n    // click on the first mousedown; we need to wait for the dblclick\n    // delay before we can be sure this click was a single-click.\n    if (pending_e === null) {\n      scheduleMousedown2(e);\n\n    } else {\n      clearTimeout(clickTimer);\n\n      // If second click is too far away, it doesn't count as a double\n      // click. Instead, immediately trigger a mousedown2 for the previous\n      // click, and set this click as a new first click.\n      if (pending_e &&\n          Math.abs(pending_e.pageX - e.pageX) > 2 ||\n          Math.abs(pending_e.pageY - e.pageY) > 2) {\n\n        triggerPendingMousedown2();\n        scheduleMousedown2(e);\n\n      } else {\n        // The second click was close to the first one. If it happened\n        // within specified delay, trigger our custom 'dblclick2' event.\n        pending_e = null;\n        triggerEvent('dblclick2', e);\n      }\n    }\n  }\n\n  // IE8 needs a special hack because when you do a double-click it doesn't\n  // trigger the click event twice - it directly triggers dblclick.\n  function dblclickIE8(e) {\n    e.which = 1;   // In IE8, e.which is 0 instead of 1. ???\n    triggerEvent('dblclick2', e);\n  }\n\n  return {\n    mousedown: mousedown,\n    dblclickIE8: dblclickIE8\n  };\n};\n\n\n// ----------------------------------------------------------\n// Handler creators for click, hover, brush.\n// Each of these returns an object with a few public members. These public\n// members are callbacks that are meant to be bound to events on $el with\n// the same name (like 'mousedown').\n// ----------------------------------------------------------\n\nimageutils.createClickHandler = function(inputId, clip, coordmap) {\n  var clickInfoSender = coordmap.mouseCoordinateSender(inputId, clip);\n\n  return {\n    mousedown: function(e) {\n      // Listen for left mouse button only\n      if (e.which !== 1) return;\n      clickInfoSender(e);\n    },\n    onResetImg: function() { clickInfoSender(null); },\n    onResize: null\n  };\n};\n\n\nimageutils.createHoverHandler = function(inputId, delay, delayType, clip,\n  nullOutside, coordmap)\n{\n  var sendHoverInfo = coordmap.mouseCoordinateSender(inputId, clip, nullOutside);\n\n  var hoverInfoSender;\n  if (delayType === 'throttle')\n    hoverInfoSender = new Throttler(null, sendHoverInfo, delay);\n  else\n    hoverInfoSender = new Debouncer(null, sendHoverInfo, delay);\n\n  // What to do when mouse exits the image\n  var mouseout;\n  if (nullOutside)\n    mouseout = function() { hoverInfoSender.normalCall(null); };\n  else\n    mouseout = function() {};\n\n  return {\n    mousemove:   function(e) { hoverInfoSender.normalCall(e); },\n    mouseout: mouseout,\n    onResetImg: function()  { hoverInfoSender.immediateCall(null); },\n    onResize: null\n  };\n};\n\n\n// Returns a brush handler object. This has three public functions:\n// mousedown, mousemove, and onResetImg.\nimageutils.createBrushHandler = function(inputId, $el, opts, coordmap, outputId) {\n  // Parameter: expand the area in which a brush can be started, by this\n  // many pixels in all directions. (This should probably be a brush option)\n  var expandPixels = 20;\n\n  // Represents the state of the brush\n  var brush = imageutils.createBrush($el, opts, coordmap, expandPixels);\n\n  // Brush IDs can span multiple image/plot outputs. When an output is brushed,\n  // if a brush with the same ID is active on a different image/plot, it must\n  // be dismissed (but without sending any data to the server). We implement\n  // this by sending the shiny-internal:brushed event to all plots, and letting\n  // each plot decide for itself what to do.\n  //\n  // The decision to have the event sent to each plot (as opposed to a single\n  // event triggered on, say, the document) was made to make cleanup easier;\n  // listening on an event on the document would prevent garbage collection\n  // of plot outputs that are removed from the document.\n  $el.on(\"shiny-internal:brushed.image_output\", function(e, coords) {\n    // If the new brush shares our ID but not our output element ID, we\n    // need to clear our brush (if any).\n    if (coords.brushId === inputId && coords.outputId !== outputId) {\n      $el.data(\"mostRecentBrush\", false);\n      brush.reset();\n    }\n  });\n\n  // Set cursor to one of 7 styles. We need to set the cursor on the whole\n  // el instead of the brush div, because the brush div has\n  // 'pointer-events:none' so that it won't intercept pointer events.\n  // If `style` is null, don't add a cursor style.\n  function setCursorStyle(style) {\n    $el.removeClass('crosshair grabbable grabbing ns-resize ew-resize nesw-resize nwse-resize');\n\n    if (style) $el.addClass(style);\n  }\n\n  function sendBrushInfo() {\n    var coords = brush.boundsData();\n\n    // We're in a new or reset state\n    if (isNaN(coords.xmin)) {\n      exports.setInputValue(inputId, null);\n      // Must tell other brushes to clear.\n      imageOutputBinding.find(document).trigger(\"shiny-internal:brushed\", {\n        brushId: inputId, outputId: null\n      });\n      return;\n    }\n\n    var panel = brush.getPanel();\n\n    // Add the panel (facet) variables, if present\n    $.extend(coords, panel.panel_vars);\n\n    coords.coords_css = brush.boundsCss();\n    coords.coords_img = coordmap.scaleCssToImg(coords.coords_css);\n\n    coords.img_css_ratio = coordmap.cssToImgScalingRatio();\n\n    // Add variable name mappings\n    coords.mapping = panel.mapping;\n\n    // Add scaling information\n    coords.domain = panel.domain;\n    coords.range  = panel.range;\n    coords.log    = panel.log;\n\n    coords.direction = opts.brushDirection;\n\n    coords.brushId = inputId;\n    coords.outputId = outputId;\n\n    // Send data to server\n    exports.setInputValue(inputId, coords);\n\n    $el.data(\"mostRecentBrush\", true);\n    imageOutputBinding.find(document).trigger(\"shiny-internal:brushed\", coords);\n  }\n\n  var brushInfoSender;\n  if (opts.brushDelayType === 'throttle') {\n    brushInfoSender = new Throttler(null, sendBrushInfo, opts.brushDelay);\n  } else {\n    brushInfoSender = new Debouncer(null, sendBrushInfo, opts.brushDelay);\n  }\n\n  function mousedown(e) {\n    // This can happen when mousedown inside the graphic, then mouseup\n    // outside, then mousedown inside. Just ignore the second\n    // mousedown.\n    if (brush.isBrushing() || brush.isDragging() || brush.isResizing()) return;\n\n    // Listen for left mouse button only\n    if (e.which !== 1) return;\n\n    // In general, brush uses css pixels, and coordmap uses img pixels.\n    const offset_css = coordmap.mouseOffsetCss(e);\n\n    // Ignore mousedown events outside of plotting region, expanded by\n    // a number of pixels specified in expandPixels.\n    if (opts.brushClip && !coordmap.isInPanelCss(offset_css, expandPixels))\n      return;\n\n    brush.up({ x: NaN, y: NaN });\n    brush.down(offset_css);\n\n\n    if (brush.isInResizeArea(offset_css)) {\n      brush.startResizing(offset_css);\n\n      // Attach the move and up handlers to the window so that they respond\n      // even when the mouse is moved outside of the image.\n      $(document)\n        .on('mousemove.image_brush', mousemoveResizing)\n        .on('mouseup.image_brush', mouseupResizing);\n\n    } else if (brush.isInsideBrush(offset_css)) {\n      brush.startDragging(offset_css);\n      setCursorStyle('grabbing');\n\n      // Attach the move and up handlers to the window so that they respond\n      // even when the mouse is moved outside of the image.\n      $(document)\n        .on('mousemove.image_brush', mousemoveDragging)\n        .on('mouseup.image_brush', mouseupDragging);\n\n    } else {\n      const panel = coordmap.getPanelCss(offset_css, expandPixels);\n      brush.startBrushing(panel.clipImg(coordmap.scaleCssToImg(offset_css)));\n\n      // Attach the move and up handlers to the window so that they respond\n      // even when the mouse is moved outside of the image.\n      $(document)\n        .on('mousemove.image_brush', mousemoveBrushing)\n        .on('mouseup.image_brush', mouseupBrushing);\n    }\n  }\n\n  // This sets the cursor style when it's in the el\n  function mousemove(e) {\n    // In general, brush uses css pixels, and coordmap uses img pixels.\n    const offset_css = coordmap.mouseOffsetCss(e);\n\n    if (!(brush.isBrushing() || brush.isDragging() || brush.isResizing())) {\n      // Set the cursor depending on where it is\n      if (brush.isInResizeArea(offset_css)) {\n        const r = brush.whichResizeSides(offset_css);\n\n        if ((r.left && r.top) || (r.right && r.bottom)) {\n          setCursorStyle('nwse-resize');\n        } else if ((r.left && r.bottom) || (r.right && r.top)) {\n          setCursorStyle('nesw-resize');\n        } else if (r.left || r.right) {\n          setCursorStyle('ew-resize');\n        } else if (r.top || r.bottom) {\n          setCursorStyle('ns-resize');\n        }\n      } else if (brush.isInsideBrush(offset_css)) {\n        setCursorStyle('grabbable');\n      } else if (coordmap.isInPanelCss(offset_css, expandPixels)) {\n        setCursorStyle('crosshair');\n      } else {\n        setCursorStyle(null);\n      }\n    }\n  }\n\n  // mousemove handlers while brushing or dragging\n  function mousemoveBrushing(e) {\n    brush.brushTo(coordmap.mouseOffsetCss(e));\n    brushInfoSender.normalCall();\n  }\n\n  function mousemoveDragging(e) {\n    brush.dragTo(coordmap.mouseOffsetCss(e));\n    brushInfoSender.normalCall();\n  }\n\n  function mousemoveResizing(e) {\n    brush.resizeTo(coordmap.mouseOffsetCss(e));\n    brushInfoSender.normalCall();\n  }\n\n  // mouseup handlers while brushing or dragging\n  function mouseupBrushing(e) {\n    // Listen for left mouse button only\n    if (e.which !== 1) return;\n\n    $(document)\n      .off('mousemove.image_brush')\n      .off('mouseup.image_brush');\n\n    brush.up(coordmap.mouseOffsetCss(e));\n\n    brush.stopBrushing();\n    setCursorStyle('crosshair');\n\n    // If the brush didn't go anywhere, hide the brush, clear value,\n    // and return.\n    if (brush.down().x === brush.up().x && brush.down().y === brush.up().y) {\n      brush.reset();\n      brushInfoSender.immediateCall();\n      return;\n    }\n\n    // Send info immediately on mouseup, but only if needed. If we don't\n    // do the pending check, we might send the same data twice (with\n    // with difference nonce).\n    if (brushInfoSender.isPending())\n      brushInfoSender.immediateCall();\n  }\n\n  function mouseupDragging(e) {\n    // Listen for left mouse button only\n    if (e.which !== 1) return;\n\n    $(document)\n      .off('mousemove.image_brush')\n      .off('mouseup.image_brush');\n\n    brush.up(coordmap.mouseOffsetCss(e));\n\n    brush.stopDragging();\n    setCursorStyle('grabbable');\n\n    if (brushInfoSender.isPending())\n      brushInfoSender.immediateCall();\n  }\n\n  function mouseupResizing(e) {\n    // Listen for left mouse button only\n    if (e.which !== 1) return;\n\n    $(document)\n      .off('mousemove.image_brush')\n      .off('mouseup.image_brush');\n\n    brush.up(coordmap.mouseOffsetCss(e));\n    brush.stopResizing();\n\n    if (brushInfoSender.isPending())\n      brushInfoSender.immediateCall();\n\n  }\n\n  // Brush maintenance: When an image is re-rendered, the brush must either\n  // be removed (if brushResetOnNew) or imported (if !brushResetOnNew). The\n  // \"mostRecentBrush\" bit is to ensure that when multiple outputs share the\n  // same brush ID, inactive brushes don't send null values up to the server.\n\n  // This should be called when the img (not the el) is reset\n  function onResetImg() {\n    if (opts.brushResetOnNew) {\n      if ($el.data(\"mostRecentBrush\")) {\n        brush.reset();\n        brushInfoSender.immediateCall();\n      }\n    }\n  }\n\n  if (!opts.brushResetOnNew) {\n    if ($el.data(\"mostRecentBrush\")) {\n      // Importing an old brush must happen after the image data has loaded\n      // and the <img> DOM element has the updated size. If importOldBrush()\n      // is called before this happens, then the css-img coordinate mappings\n      // will give the wrong result, and the brush will have the wrong\n      // position.\n      //\n      // jcheng 09/26/2018: This used to happen in img.onLoad, but recently\n      // we moved to all brush initialization moving to img.onLoad so this\n      // logic can be executed inline.\n      brush.importOldBrush();\n      brushInfoSender.immediateCall();\n    }\n  }\n\n  function onResize() {\n    brush.onResize();\n    brushInfoSender.immediateCall();\n  }\n\n  return {\n    mousedown:  mousedown,\n    mousemove:  mousemove,\n    onResetImg: onResetImg,\n    onResize:   onResize\n  };\n};\n\n// Returns an object that represents the state of the brush. This gets wrapped\n// in a brushHandler, which provides various event listeners.\nimageutils.createBrush = function($el, opts, coordmap, expandPixels) {\n  // Number of pixels outside of brush to allow start resizing\n  var resizeExpand = 10;\n\n  var el = $el[0];\n  var $div = null;  // The div representing the brush\n\n  var state = {};\n\n  // Aliases for conciseness\n  const cssToImg = coordmap.scaleCssToImg;\n  const imgToCss = coordmap.scaleImgToCss;\n\n  reset();\n\n  function reset() {\n    // Current brushing/dragging/resizing state\n    state.brushing = false;\n    state.dragging = false;\n    state.resizing = false;\n\n    // Offset of last mouse down and up events (in CSS pixels)\n    state.down = { x: NaN, y: NaN };\n    state.up   = { x: NaN, y: NaN };\n\n    // Which side(s) we're currently resizing\n    state.resizeSides = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n\n    // Bounding rectangle of the brush, in CSS pixel and data dimensions. We\n    // need to record data dimensions along with pixel dimensions so that when\n    // a new plot is sent, we can re-draw the brush div with the appropriate\n    // coords.\n    state.boundsCss = {\n      xmin: NaN,\n      xmax: NaN,\n      ymin: NaN,\n      ymax: NaN\n    };\n    state.boundsData = {\n      xmin: NaN,\n      xmax: NaN,\n      ymin: NaN,\n      ymax: NaN\n    };\n\n    // Panel object that the brush is in\n    state.panel = null;\n\n    // The bounds at the start of a drag/resize (in CSS pixels)\n    state.changeStartBounds = {\n      xmin: NaN,\n      xmax: NaN,\n      ymin: NaN,\n      ymax: NaN\n    };\n\n    if ($div)\n      $div.remove();\n  }\n\n  // If there's an existing brush div, use that div to set the new brush's\n  // settings, provided that the x, y, and panel variables have the same names,\n  // and there's a panel with matching panel variable values.\n  function importOldBrush() {\n    var oldDiv = $el.find('#' + el.id + '_brush');\n    if (oldDiv.length === 0)\n      return;\n\n    var oldBoundsData = oldDiv.data('bounds-data');\n    var oldPanel = oldDiv.data('panel');\n\n    if (!oldBoundsData || !oldPanel)\n      return;\n\n    // Find a panel that has matching vars; if none found, we can't restore.\n    // The oldPanel and new panel must match on their mapping vars, and the\n    // values.\n    for (var i=0; i<coordmap.panels.length; i++){\n      var curPanel = coordmap.panels[i];\n\n      if (equal(oldPanel.mapping, curPanel.mapping) &&\n          equal(oldPanel.panel_vars, curPanel.panel_vars)) {\n        // We've found a matching panel\n        state.panel = coordmap.panels[i];\n        break;\n      }\n    }\n\n    // If we didn't find a matching panel, remove the old div and return\n    if (state.panel === null) {\n      oldDiv.remove();\n      return;\n    }\n\n    $div = oldDiv;\n\n    boundsData(oldBoundsData);\n    updateDiv();\n  }\n\n  // This will reposition the brush div when the image is resized, maintaining\n  // the same data coordinates. Note that the \"resize\" here refers to the\n  // wrapper div/img being resized; elsewhere, \"resize\" refers to the brush\n  // div being resized.\n  function onResize() {\n    const bounds_data = boundsData();\n    // Check to see if we have valid boundsData\n    for (let val in bounds_data) {\n      if (isnan(bounds_data[val])) return;\n    }\n\n    boundsData(bounds_data);\n    updateDiv();\n  }\n\n  // Return true if the offset is inside min/max coords\n  function isInsideBrush(offset_css) {\n    var bounds = state.boundsCss;\n    return offset_css.x <= bounds.xmax && offset_css.x >= bounds.xmin &&\n           offset_css.y <= bounds.ymax && offset_css.y >= bounds.ymin;\n  }\n\n  // Return true if offset is inside a region to start a resize\n  function isInResizeArea(offset_css) {\n    var sides = whichResizeSides(offset_css);\n    return sides.left || sides.right || sides.top || sides.bottom;\n  }\n\n  // Return an object representing which resize region(s) the cursor is in.\n  function whichResizeSides(offset_css) {\n    const b = state.boundsCss;\n    // Bounds with expansion\n    const e = {\n      xmin: b.xmin - resizeExpand,\n      xmax: b.xmax + resizeExpand,\n      ymin: b.ymin - resizeExpand,\n      ymax: b.ymax + resizeExpand\n    };\n    const res = {\n      left:   false,\n      right:  false,\n      top:    false,\n      bottom: false\n    };\n\n    if ((opts.brushDirection === 'xy' || opts.brushDirection === 'x') &&\n        (offset_css.y <= e.ymax && offset_css.y >= e.ymin))\n    {\n      if (offset_css.x < b.xmin && offset_css.x >= e.xmin)\n        res.left = true;\n      else if (offset_css.x > b.xmax && offset_css.x <= e.xmax)\n        res.right = true;\n    }\n\n    if ((opts.brushDirection === 'xy' || opts.brushDirection === 'y') &&\n        (offset_css.x <= e.xmax && offset_css.x >= e.xmin))\n    {\n      if (offset_css.y < b.ymin && offset_css.y >= e.ymin)\n        res.top = true;\n      else if (offset_css.y > b.ymax && offset_css.y <= e.ymax)\n        res.bottom = true;\n    }\n\n    return res;\n  }\n\n\n  // Sets the bounds of the brush (in CSS pixels), given a box and optional\n  // panel. This will fit the box bounds into the panel, so we don't brush\n  // outside of it. This knows whether we're brushing in the x, y, or xy\n  // directions, and sets bounds accordingly. If no box is passed in, just\n  // return current bounds.\n  function boundsCss(box_css) {\n    if (box_css === undefined) {\n      return $.extend({}, state.boundsCss);\n    }\n\n    let min_css = { x: box_css.xmin, y: box_css.ymin };\n    let max_css = { x: box_css.xmax, y: box_css.ymax };\n\n    const panel = state.panel;\n    const panelBounds_img = panel.range;\n\n    if (opts.brushClip) {\n      min_css = imgToCss(panel.clipImg(cssToImg(min_css)));\n      max_css = imgToCss(panel.clipImg(cssToImg(max_css)));\n    }\n\n    if (opts.brushDirection === 'xy') {\n      // No change\n\n    } else if (opts.brushDirection === 'x') {\n      // Extend top and bottom of plotting area\n      min_css.y = imgToCss({y: panelBounds_img.top   }).y;\n      max_css.y = imgToCss({y: panelBounds_img.bottom}).y;\n\n    } else if (opts.brushDirection === 'y') {\n      min_css.x = imgToCss({x: panelBounds_img.left }).x;\n      max_css.x = imgToCss({x: panelBounds_img.right}).x;\n    }\n\n    state.boundsCss = {\n      xmin: min_css.x,\n      xmax: max_css.x,\n      ymin: min_css.y,\n      ymax: max_css.y\n    };\n\n    // Positions in data space\n    const min_data = state.panel.scaleImgToData(cssToImg(min_css));\n    const max_data = state.panel.scaleImgToData(cssToImg(max_css));\n    // For reversed scales, the min and max can be reversed, so use findBox\n    // to ensure correct order.\n    state.boundsData = imageutils.findBox(min_data, max_data);\n    // Round to 14 significant digits to avoid spurious changes in FP values\n    // (#1634).\n    state.boundsData = mapValues(state.boundsData, val => roundSignif(val, 14));\n\n    // We also need to attach the data bounds and panel as data attributes, so\n    // that if the image is re-sent, we can grab the data bounds to create a new\n    // brush. This should be fast because it doesn't actually modify the DOM.\n    $div.data('bounds-data', state.boundsData);\n    $div.data('panel', state.panel);\n    return undefined;\n  }\n\n  // Get or set the bounds of the brush using coordinates in the data space.\n  function boundsData(box_data) {\n    if (box_data === undefined) {\n      return $.extend({}, state.boundsData);\n    }\n\n    let box_css = imgToCss(state.panel.scaleDataToImg(box_data));\n    // Round to 13 significant digits to avoid spurious changes in FP values\n    // (#2197).\n    box_css = mapValues(box_css, val => roundSignif(val, 13));\n\n    // The scaling function can reverse the direction of the axes, so we need to\n    // find the min and max again.\n    boundsCss({\n      xmin: Math.min(box_css.xmin, box_css.xmax),\n      xmax: Math.max(box_css.xmin, box_css.xmax),\n      ymin: Math.min(box_css.ymin, box_css.ymax),\n      ymax: Math.max(box_css.ymin, box_css.ymax)\n    });\n    return undefined;\n  }\n\n  function getPanel() {\n    return state.panel;\n  }\n\n  // Add a new div representing the brush.\n  function addDiv() {\n    if ($div) $div.remove();\n\n    // Start hidden; we'll show it when movement occurs\n    $div = $(document.createElement('div'))\n      .attr('id', el.id + '_brush')\n      .css({\n        'background-color': opts.brushFill,\n        'opacity': opts.brushOpacity,\n        'pointer-events': 'none',\n        'position': 'absolute'\n      })\n      .hide();\n\n    var borderStyle = '1px solid ' + opts.brushStroke;\n    if (opts.brushDirection === 'xy') {\n      $div.css({\n        'border': borderStyle\n      });\n    } else if (opts.brushDirection === 'x') {\n      $div.css({\n        'border-left': borderStyle,\n        'border-right': borderStyle\n      });\n    } else if (opts.brushDirection === 'y') {\n      $div.css({\n        'border-top': borderStyle,\n        'border-bottom': borderStyle\n      });\n    }\n\n    $el.append($div);\n    $div.offset({x:0, y:0}).width(0).outerHeight(0);\n  }\n\n  // Update the brush div to reflect the current brush bounds.\n  function updateDiv() {\n    // Need parent offset relative to page to calculate mouse offset\n    // relative to page.\n    const img_offset_css = findOrigin($el.find(\"img\"));\n    const b = state.boundsCss;\n\n    $div.offset({\n        top:  img_offset_css.y + b.ymin,\n        left: img_offset_css.x + b.xmin\n      })\n      .outerWidth(b.xmax - b.xmin + 1)\n      .outerHeight(b.ymax - b.ymin + 1);\n  }\n\n  function down(offset_css) {\n    if (offset_css === undefined)\n      return state.down;\n\n    state.down = offset_css;\n    return undefined;\n  }\n\n  function up(offset_css) {\n    if (offset_css === undefined)\n      return state.up;\n\n    state.up = offset_css;\n    return undefined;\n  }\n\n  function isBrushing() {\n    return state.brushing;\n  }\n\n  function startBrushing() {\n    state.brushing = true;\n    addDiv();\n    state.panel = coordmap.getPanelCss(state.down, expandPixels);\n\n    boundsCss(imageutils.findBox(state.down, state.down));\n    updateDiv();\n  }\n\n  function brushTo(offset_css) {\n    boundsCss(imageutils.findBox(state.down, offset_css));\n    $div.show();\n    updateDiv();\n  }\n\n  function stopBrushing() {\n    state.brushing = false;\n    // Save the final bounding box of the brush\n    boundsCss(imageutils.findBox(state.down, state.up));\n  }\n\n  function isDragging() {\n    return state.dragging;\n  }\n\n  function startDragging() {\n    state.dragging = true;\n    state.changeStartBounds = $.extend({}, state.boundsCss);\n  }\n\n  function dragTo(offset_css) {\n    // How far the brush was dragged\n    const dx = offset_css.x - state.down.x;\n    const dy = offset_css.y - state.down.y;\n\n    // Calculate what new positions would be, before clipping.\n    const start = state.changeStartBounds;\n    let newBounds_css = {\n      xmin: start.xmin + dx,\n      xmax: start.xmax + dx,\n      ymin: start.ymin + dy,\n      ymax: start.ymax + dy\n    };\n\n    // Clip to the plotting area\n    if (opts.brushClip) {\n      const panelBounds_img = state.panel.range;\n      const newBounds_img = cssToImg(newBounds_css);\n\n      // Convert to format for shiftToRange\n      let xvals_img = [ newBounds_img.xmin, newBounds_img.xmax ];\n      let yvals_img = [ newBounds_img.ymin, newBounds_img.ymax ];\n\n      xvals_img = imageutils.shiftToRange(xvals_img, panelBounds_img.left, panelBounds_img.right);\n      yvals_img = imageutils.shiftToRange(yvals_img, panelBounds_img.top,  panelBounds_img.bottom);\n\n      // Convert back to bounds format\n      newBounds_css = imgToCss({\n        xmin: xvals_img[0],\n        xmax: xvals_img[1],\n        ymin: yvals_img[0],\n        ymax: yvals_img[1]\n      });\n    }\n\n    boundsCss(newBounds_css);\n    updateDiv();\n  }\n\n  function stopDragging() {\n    state.dragging = false;\n  }\n\n  function isResizing() {\n    return state.resizing;\n  }\n\n  function startResizing() {\n    state.resizing = true;\n    state.changeStartBounds = $.extend({}, state.boundsCss);\n    state.resizeSides = whichResizeSides(state.down);\n  }\n\n  function resizeTo(offset_css) {\n    // How far the brush was dragged\n    const d_css = {\n      x: offset_css.x - state.down.x,\n      y: offset_css.y - state.down.y\n    };\n\n    const d_img = cssToImg(d_css);\n\n    // Calculate what new positions would be, before clipping.\n    const b_img = cssToImg(state.changeStartBounds);\n    const panelBounds_img = state.panel.range;\n\n    if (state.resizeSides.left) {\n      const xmin_img = imageutils.shiftToRange(b_img.xmin + d_img.x, panelBounds_img.left, b_img.xmax)[0];\n      b_img.xmin = xmin_img;\n    } else if (state.resizeSides.right) {\n      const xmax_img = imageutils.shiftToRange(b_img.xmax + d_img.x, b_img.xmin, panelBounds_img.right)[0];\n      b_img.xmax = xmax_img;\n    }\n\n    if (state.resizeSides.top) {\n      const ymin_img = imageutils.shiftToRange(b_img.ymin + d_img.y, panelBounds_img.top, b_img.ymax)[0];\n      b_img.ymin = ymin_img;\n    } else if (state.resizeSides.bottom) {\n      const ymax_img = imageutils.shiftToRange(b_img.ymax + d_img.y, b_img.ymin, panelBounds_img.bottom)[0];\n      b_img.ymax = ymax_img;\n    }\n\n    boundsCss(imgToCss(b_img));\n    updateDiv();\n  }\n\n  function stopResizing() {\n    state.resizing = false;\n  }\n\n  return {\n    reset: reset,\n\n    importOldBrush: importOldBrush,\n    isInsideBrush: isInsideBrush,\n    isInResizeArea: isInResizeArea,\n    whichResizeSides: whichResizeSides,\n\n    onResize: onResize,  // A callback when the wrapper div or img is resized.\n\n    boundsCss: boundsCss,\n    boundsData: boundsData,\n    getPanel: getPanel,\n\n    down: down,\n    up: up,\n\n    isBrushing: isBrushing,\n    startBrushing: startBrushing,\n    brushTo: brushTo,\n    stopBrushing: stopBrushing,\n\n    isDragging: isDragging,\n    startDragging: startDragging,\n    dragTo: dragTo,\n    stopDragging: stopDragging,\n\n    isResizing: isResizing,\n    startResizing: startResizing,\n    resizeTo: resizeTo,\n    stopResizing: stopResizing\n  };\n};\n\nexports.resetBrush = function(brushId) {\n  exports.setInputValue(brushId, null);\n  imageOutputBinding.find(document).trigger(\"shiny-internal:brushed\", {\n    brushId: brushId, outputId: null\n  });\n};\n\n\n// -----------------------------------------------------------------------\n// Utility functions for finding dimensions and locations of DOM elements\n// -----------------------------------------------------------------------\n\n// Returns the ratio that an element has been scaled (for example, by CSS\n// transforms) in the x and y directions.\nfunction findScalingRatio($el) {\n  const boundingRect = $el[0].getBoundingClientRect();\n  return {\n    x: boundingRect.width  / $el.outerWidth(),\n    y: boundingRect.height / $el.outerHeight()\n  };\n}\n\nfunction findOrigin($el) {\n  const offset = $el.offset();\n  const scaling_ratio = findScalingRatio($el);\n\n  // Find the size of the padding and border, for the top and left. This is\n  // before any transforms.\n  const paddingBorder = {\n    left: parseInt($el.css(\"border-left-width\")) + parseInt($el.css(\"padding-left\")),\n    top:  parseInt($el.css(\"border-top-width\"))  + parseInt($el.css(\"padding-top\"))\n  };\n\n  // offset() returns the upper left corner of the element relative to the\n  // page, but it includes padding and border. Here we find the upper left\n  // of the element, not including padding and border.\n  return {\n    x: offset.left + scaling_ratio.x * paddingBorder.left,\n    y: offset.top  + scaling_ratio.y * paddingBorder.top\n  };\n}\n\n// Find the dimensions of a tag, after transforms, and without padding and\n// border.\nfunction findDims($el) {\n  // If there's any padding/border, we need to find the ratio of the actual\n  // element content compared to the element plus padding and border.\n  const content_ratio = {\n    x: $el.width()  / $el.outerWidth(),\n    y: $el.height() / $el.outerHeight()\n  };\n\n  // Get the dimensions of the element _after_ any CSS transforms. This\n  // includes the padding and border.\n  const bounding_rect = $el[0].getBoundingClientRect();\n\n  // Dimensions of the element after any CSS transforms, and without\n  // padding/border.\n  return {\n    x: content_ratio.x * bounding_rect.width,\n    y: content_ratio.y * bounding_rect.height\n  };\n}\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_html.js\n\nvar htmlOutputBinding = new OutputBinding();\n$.extend(htmlOutputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-html-output');\n  },\n  onValueError: function(el, err) {\n    exports.unbindAll(el);\n    this.renderError(el, err);\n  },\n  renderValue: function(el, data) {\n    exports.renderContent(el, data);\n  }\n});\noutputBindings.register(htmlOutputBinding, 'shiny.htmlOutput');\n\nvar renderDependencies = exports.renderDependencies = function(dependencies) {\n  if (dependencies) {\n    $.each(dependencies, function(i, dep) {\n      renderDependency(dep);\n    });\n  }\n};\n\n// Render HTML in a DOM element, add dependencies, and bind Shiny\n// inputs/outputs. `content` can be null, a string, or an object with\n// properties 'html' and 'deps'.\nexports.renderContent = function(el, content, where=\"replace\") {\n  if (where === \"replace\") {\n    exports.unbindAll(el);\n  }\n\n  var html;\n  var dependencies = [];\n  if (content === null) {\n    html = '';\n  } else if (typeof(content) === 'string') {\n    html = content;\n  } else if (typeof(content) === 'object') {\n    html = content.html;\n    dependencies = content.deps || [];\n  }\n\n  exports.renderHtml(html, el, dependencies, where);\n\n  var scope = el;\n  if (where === \"replace\") {\n    exports.initializeInputs(el);\n    exports.bindAll(el);\n  } else {\n    var $parent = $(el).parent();\n    if ($parent.length > 0) {\n      scope = $parent;\n      if (where === \"beforeBegin\" || where === \"afterEnd\") {\n        var $grandparent = $parent.parent();\n        if ($grandparent.length > 0) scope = $grandparent;\n      }\n    }\n    exports.initializeInputs(scope);\n    exports.bindAll(scope);\n  }\n};\n\n// Render HTML in a DOM element, inserting singletons into head as needed\nexports.renderHtml = function(html, el, dependencies, where = 'replace') {\n  renderDependencies(dependencies);\n  return singletons.renderHtml(html, el, where);\n};\n\nvar htmlDependencies = {};\nfunction registerDependency(name, version) {\n  htmlDependencies[name] = version;\n}\n\n// Client-side dependency resolution and rendering\nfunction renderDependency(dep) {\n  if (htmlDependencies.hasOwnProperty(dep.name))\n    return false;\n\n  registerDependency(dep.name, dep.version);\n\n  var href = dep.src.href;\n\n  var $head = $(\"head\").first();\n\n  if (dep.meta) {\n    var metas = $.map(asArray(dep.meta), function(obj, idx) {\n      // only one named pair is expected in obj as it's already been decomposed\n      var name = Object.keys(obj)[0];\n      return $(\"<meta>\").attr(\"name\", name).attr(\"content\", obj[name]);\n    });\n    $head.append(metas);\n  }\n\n  if (dep.stylesheet) {\n    var stylesheets = $.map(asArray(dep.stylesheet), function(stylesheet) {\n      return $(\"<link rel='stylesheet' type='text/css'>\")\n        .attr(\"href\", href + \"/\" + encodeURI(stylesheet));\n    });\n    $head.append(stylesheets);\n  }\n\n  if (dep.script) {\n    var scripts = $.map(asArray(dep.script), function(scriptName) {\n      return $(\"<script>\").attr(\"src\", href + \"/\" + encodeURI(scriptName));\n    });\n    $head.append(scripts);\n  }\n\n  if (dep.attachment) {\n    // dep.attachment might be a single string, an array, or an object.\n    var attachments = dep.attachment;\n    if (typeof(attachments) === \"string\")\n      attachments = [attachments];\n    if ($.isArray(attachments)) {\n      // The contract for attachments is that arrays of attachments are\n      // addressed using 1-based indexes. Convert this array to an object.\n      var tmp = {};\n      $.each(attachments, function(index, attachment) {\n        tmp[(index + 1) + \"\"] = attachment;\n      });\n      attachments = tmp;\n    }\n\n    var attach = $.map(attachments, function(attachment, key) {\n      return $(\"<link rel='attachment'>\")\n        .attr(\"id\", dep.name + \"-\" + key + \"-attachment\")\n        .attr(\"href\", href + \"/\" + encodeURI(attachment));\n    });\n    $head.append(attach);\n  }\n\n  if (dep.head) {\n    var $newHead = $(\"<head></head>\");\n    $newHead.html(dep.head);\n    $head.append($newHead.children());\n  }\n  return true;\n}\n\nvar singletons = {\n  knownSingletons: {},\n  renderHtml: function(html, el, where) {\n    var processed = this._processHtml(html);\n    this._addToHead(processed.head);\n    this.register(processed.singletons);\n    if (where === \"replace\") {\n      $(el).html(processed.html);\n    } else {\n      el.insertAdjacentHTML(where, processed.html);\n    }\n    return processed;\n  },\n  // Take an object where keys are names of singletons, and merges it into\n  // knownSingletons\n  register: function(s) {\n    $.extend(this.knownSingletons, s);\n  },\n  // Takes a string or array of strings and adds them to knownSingletons\n  registerNames: function(s) {\n    if (typeof s === 'string') {\n      this.knownSingletons[s] = true;\n    } else if (s instanceof Array) {\n      for (var i = 0; i < s.length; i++) {\n        this.knownSingletons[s[i]] = true;\n      }\n    }\n  },\n  // Inserts new content into document head\n  _addToHead: function(head) {\n    if (head.length > 0) {\n      var tempDiv = $(\"<div>\" + head + \"</div>\")[0];\n      var $head = $('head');\n      while (tempDiv.hasChildNodes()) {\n        $head.append(tempDiv.firstChild);\n      }\n    }\n  },\n  // Reads HTML and returns an object with info about singletons\n  _processHtml: function(val) {\n    var self = this;\n    var newSingletons = {};\n    var newVal;\n\n    var findNewPayload = function(match, p1, sig, payload) {\n      if (self.knownSingletons[sig] || newSingletons[sig])\n        return \"\";\n      newSingletons[sig] = true;\n      return payload;\n    };\n    while (true) {\n      newVal = val.replace(self._reSingleton, findNewPayload);\n      if (val.length === newVal.length)\n        break;\n      val = newVal;\n    }\n\n    var heads = [];\n    var headAddPayload = function(match, payload) {\n      heads.push(payload);\n      return \"\";\n    };\n    while (true) {\n      newVal = val.replace(self._reHead, headAddPayload);\n      if (val.length === newVal.length)\n        break;\n      val = newVal;\n    }\n\n    return {\n      html: val,\n      head: heads.join(\"\\n\"),\n      singletons: newSingletons\n    };\n  },\n  _reSingleton: /<!--(SHINY.SINGLETON\\[([\\w]+)\\])-->([\\s\\S]*?)<!--\\/\\1-->/,\n  _reHead: /<head(?:\\s[^>]*)?>([\\s\\S]*?)<\\/head>/\n};\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_downloadlink.js\n\nvar downloadLinkOutputBinding = new OutputBinding();\n$.extend(downloadLinkOutputBinding, {\n  find: function(scope) {\n    return $(scope).find('a.shiny-download-link');\n  },\n  renderValue: function(el, data) {\n    $(el).attr('href', data);\n  }\n});\noutputBindings.register(downloadLinkOutputBinding, 'shiny.downloadLink');\n\n\n// Trigger shiny:filedownload event whenever a downloadButton/Link is clicked\n$(document).on('click.shinyDownloadLink', 'a.shiny-download-link', function(e) {\n  var evt = jQuery.Event('shiny:filedownload');\n  evt.name = this.id;\n  evt.href = this.href;\n  $(document).trigger(evt);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_datatable.js\n\nvar datatableOutputBinding = new OutputBinding();\n$.extend(datatableOutputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-datatable-output');\n  },\n  onValueError: function(el, err) {\n    exports.unbindAll(el);\n    this.renderError(el, err);\n  },\n  renderValue: function(el, data) {\n    var $el = $(el).empty();\n    if (!data || !data.colnames) return;\n\n    var colnames = $.makeArray(data.colnames);\n    var header = $.map(colnames, function(x) {\n      return '<th>' + x + '</th>';\n    }).join('');\n    header = '<thead><tr>' + header + '</tr></thead>';\n    var footer = '';\n    if (data.options === null || data.options.searching !== false) {\n      footer = $.map(colnames, function(x) {\n        // placeholder needs to be escaped (and HTML tags are stripped off)\n        return '<th><input type=\"text\" placeholder=\"' +\n               escapeHTML(x.replace(/(<([^>]+)>)/ig, '')) +\n               '\" /></th>';\n      }).join('');\n      footer = '<tfoot>' + footer + '</tfoot>';\n    }\n    var content = '<table class=\"table table-striped table-hover\">' +\n                  header + footer + '</table>';\n    $el.append(content);\n\n    // options that should be eval()ed\n    if (data.evalOptions)\n      $.each(data.evalOptions, function(i, x) {\n        /*jshint evil: true */\n        data.options[x] = eval('(' + data.options[x] + ')');\n      });\n\n    // caseInsensitive searching? default true\n    var searchCI = data.options === null || typeof(data.options.search) === 'undefined' ||\n                   data.options.search.caseInsensitive !== false;\n    var oTable = $(el).children(\"table\").DataTable($.extend({\n      \"processing\": true,\n      \"serverSide\": true,\n      \"order\": [],\n      \"orderClasses\": false,\n      \"pageLength\": 25,\n      \"ajax\": {\n        \"url\": data.action,\n        \"type\": \"POST\",\n        \"data\": function(d) {\n          d.search.caseInsensitive = searchCI;\n          d.escape = data.escape;\n        }\n      }\n    }, data.options));\n    // the table object may need post-processing\n    if (typeof data.callback === 'string') {\n      /*jshint evil: true */\n      var callback = eval('(' + data.callback + ')');\n      if (typeof callback === 'function') callback(oTable);\n    }\n\n    // use debouncing for searching boxes\n    $el.find('label input').first().unbind('keyup')\n         .keyup(debounce(data.searchDelay, function() {\n            oTable.search(this.value).draw();\n          }));\n    var searchInputs = $el.find(\"tfoot input\");\n    if (searchInputs.length > 0) {\n      // this is a little weird: aoColumns/bSearchable are still in DT 1.10\n      // https://github.com/DataTables/DataTables/issues/388\n      $.each(oTable.settings()[0].aoColumns, function(i, x) {\n        // hide the text box if not searchable\n        if (!x.bSearchable) searchInputs.eq(i).hide();\n      });\n      searchInputs.keyup(debounce(data.searchDelay, function() {\n        oTable.column(searchInputs.index(this)).search(this.value).draw();\n      }));\n    }\n    // FIXME: ugly scrollbars in tab panels b/c Bootstrap uses 'visible: auto'\n    $el.parents('.tab-content').css('overflow', 'visible');\n  }\n});\noutputBindings.register(datatableOutputBinding, 'shiny.datatableOutput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/output_binding_adapter.js\n\nvar OutputBindingAdapter = function(el, binding) {\n  this.el = el;\n  this.binding = binding;\n\n  // If the binding actually has a resize method, override the prototype of\n  // onResize with a version that does a makeResizeFilter on the element.\n  if (binding.resize) {\n    this.onResize = makeResizeFilter(el, function(width, height) {\n      binding.resize(el, width, height);\n    });\n  }\n};\n(function() {\n  this.getId = function() {\n    return this.binding.getId(this.el);\n  };\n  this.onValueChange = function(data) {\n    this.binding.onValueChange(this.el, data);\n  };\n  this.onValueError = function(err) {\n    this.binding.onValueError(this.el, err);\n  };\n  this.showProgress = function(show) {\n    this.binding.showProgress(this.el, show);\n  };\n  this.onResize = function() {\n    // Intentionally left blank; see constructor\n  };\n}).call(OutputBindingAdapter.prototype);\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding.js\n\nvar InputBinding = exports.InputBinding = function() {};\n\n(function() {\n\n// Returns a jQuery object or element array that contains the\n// descendants of scope that match this binding\nthis.find = function(scope) { throw \"Not implemented\"; };\n\nthis.getId = function(el) {\n  return el['data-input-id'] || el.id;\n};\n\n// Gives the input a type in case the server needs to know it\n// to deserialize the JSON correctly\nthis.getType = function() { return false; };\nthis.getValue = function(el) { throw \"Not implemented\"; };\n\n// The callback method takes one argument, whose value is boolean. If true,\n// allow deferred (debounce or throttle) sending depending on the value of\n// getRatePolicy. If false, send value immediately.\nthis.subscribe = function(el, callback) { };\nthis.unsubscribe = function(el) { };\n\n// This is used for receiving messages that tell the input object to do\n// things, such as setting values (including min, max, and others).\n// 'data' should be an object with elements corresponding to value, min,\n// max, etc., as appropriate for the type of input object. It also should\n// trigger a change event.\nthis.receiveMessage = function(el, data) { throw \"Not implemented\"; };\nthis.getState = function(el, data) { throw \"Not implemented\"; };\n\nthis.getRatePolicy = function() { return null; };\n\n// Some input objects need initialization before being bound. This is\n// called when the document is ready (for statically-added input objects),\n// and when new input objects are added to the document with\n// htmlOutputBinding.renderValue() (for dynamically-added input objects).\n// This is called before the input is bound.\nthis.initialize = function(el) { };\n\n// This is called after unbinding the output.\nthis.dispose = function(el) { };\n\n}).call(InputBinding.prototype);\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_text.js\n\nvar textInputBinding = new InputBinding();\n$.extend(textInputBinding, {\n  find: function(scope) {\n    var $inputs = $(scope).find('input[type=\"text\"], input[type=\"search\"], input[type=\"url\"], input[type=\"email\"]');\n    // selectize.js 0.12.4 inserts a hidden text input with an\n    // id that ends in '-selectized'. The .not() selector below\n    // is to prevent textInputBinding from accidentally picking up\n    // this hidden element as a shiny input (#2396)\n    return $inputs.not('input[type=\"text\"][id$=\"-selectized\"]');\n  },\n  getId: function(el) {\n    return InputBinding.prototype.getId.call(this, el) || el.name;\n  },\n  getValue: function(el) {\n    return el.value;\n  },\n  setValue: function(el, value) {\n    el.value = value;\n  },\n  subscribe: function(el, callback) {\n    $(el).on('keyup.textInputBinding input.textInputBinding', function(event) {\n      callback(true);\n    });\n    $(el).on('change.textInputBinding', function(event) {\n      callback(false);\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.textInputBinding');\n  },\n  receiveMessage: function(el, data) {\n    if (data.hasOwnProperty('value'))\n      this.setValue(el, data.value);\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    if (data.hasOwnProperty('placeholder'))\n      el.placeholder = data.placeholder;\n\n    $(el).trigger('change');\n  },\n  getState: function(el) {\n    return {\n      label: this._getLabelNode(el).text(),\n      value: el.value,\n      placeholder: el.placeholder\n    };\n  },\n  getRatePolicy: function() {\n    return {\n      policy: 'debounce',\n      delay: 250\n    };\n  },\n  _getLabelNode: function(el) {\n    return $(el).parent().find('label[for=\"' + $escape(el.id) + '\"]');\n  }\n});\ninputBindings.register(textInputBinding, 'shiny.textInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_textarea.js\n\nvar textareaInputBinding = {};\n$.extend(textareaInputBinding, textInputBinding, {\n  find: function(scope) {\n    return $(scope).find('textarea');\n  }\n});\ninputBindings.register(textareaInputBinding, 'shiny.textareaInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_password.js\n\nvar passwordInputBinding = {};\n$.extend(passwordInputBinding, textInputBinding, {\n  find: function(scope) {\n    return $(scope).find('input[type=\"password\"]');\n  },\n  getType: function(el) {\n    return \"shiny.password\";\n  }\n});\ninputBindings.register(passwordInputBinding, 'shiny.passwordInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_number.js\n\nvar numberInputBinding = {};\n$.extend(numberInputBinding, textInputBinding, {\n  find: function(scope) {\n    return $(scope).find('input[type=\"number\"]');\n  },\n  getValue: function(el) {\n    var numberVal = $(el).val();\n    if (/^\\s*$/.test(numberVal))  // Return null if all whitespace\n      return null;\n    else if (!isNaN(numberVal))   // If valid Javascript number string, coerce to number\n      return +numberVal;\n    else\n      return numberVal;           // If other string like \"1e6\", send it unchanged\n  },\n  setValue: function(el, value) {\n    el.value = value;\n  },\n  getType: function(el) {\n    return \"shiny.number\";\n  },\n  receiveMessage: function(el, data) {\n    if (data.hasOwnProperty('value'))  el.value = data.value;\n    if (data.hasOwnProperty('min'))    el.min   = data.min;\n    if (data.hasOwnProperty('max'))    el.max   = data.max;\n    if (data.hasOwnProperty('step'))   el.step  = data.step;\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    $(el).trigger('change');\n  },\n  getState: function(el) {\n    return { label: this._getLabelNode(el).text(),\n             value: this.getValue(el),\n             min:   Number(el.min),\n             max:   Number(el.max),\n             step:  Number(el.step) };\n  },\n  _getLabelNode: function(el) {\n    return $(el).parent().find('label[for=\"' + $escape(el.id) + '\"]');\n  }\n});\ninputBindings.register(numberInputBinding, 'shiny.numberInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_checkbox.js\n\nvar checkboxInputBinding = new InputBinding();\n$.extend(checkboxInputBinding, {\n  find: function(scope) {\n    return $(scope).find('input[type=\"checkbox\"]');\n  },\n  getValue: function(el) {\n    return el.checked;\n  },\n  setValue: function(el, value) {\n    el.checked = value;\n  },\n  subscribe: function(el, callback) {\n    $(el).on('change.checkboxInputBinding', function(event) {\n      callback(true);\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.checkboxInputBinding');\n  },\n  getState: function(el) {\n    return {\n      label: $(el).parent().find('span').text(),\n      value: el.checked\n    };\n  },\n  receiveMessage: function(el, data) {\n    if (data.hasOwnProperty('value'))\n      el.checked = data.value;\n\n    // checkboxInput()'s label works different from other\n    // input labels...the label container should always exist\n    if (data.hasOwnProperty('label'))\n      $(el).parent().find('span').text(data.label);\n\n    $(el).trigger('change');\n  }\n});\ninputBindings.register(checkboxInputBinding, 'shiny.checkboxInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_slider.js\n\n// Necessary to get hidden sliders to send their updated values\nfunction forceIonSliderUpdate(slider) {\n  if (slider.$cache && slider.$cache.input)\n    slider.$cache.input.trigger('change');\n  else\n    console.log(\"Couldn't force ion slider to update\");\n}\n\nfunction getTypePrettifyer(dataType, timeFormat, timezone) {\n  var timeFormatter;\n  var prettify;\n  if (dataType === 'date') {\n    timeFormatter = strftime.utc();\n    prettify = function(num) {\n      return timeFormatter(timeFormat, new Date(num));\n    };\n\n  } else if (dataType === 'datetime') {\n    if (timezone)\n      timeFormatter = strftime.timezone(timezone);\n    else\n      timeFormatter = strftime;\n\n    prettify = function(num) {\n      return timeFormatter(timeFormat, new Date(num));\n    };\n\n  } else {\n    // The default prettify function for ion.rangeSlider adds thousands\n    // separators after the decimal mark, so we have our own version here.\n    // (#1958)\n    prettify = function(num) {\n      // When executed, `this` will refer to the `IonRangeSlider.options`\n      // object.\n      return formatNumber(num, this.prettify_separator);\n    };\n  }\n  return prettify;\n}\n\nvar sliderInputBinding = {};\n$.extend(sliderInputBinding, textInputBinding, {\n  find: function(scope) {\n    // Check if ionRangeSlider plugin is loaded\n    if (!$.fn.ionRangeSlider)\n      return [];\n\n    return $(scope).find('input.js-range-slider');\n  },\n  getType: function(el) {\n    var dataType = $(el).data('data-type');\n    if (dataType === 'date')\n      return 'shiny.date';\n    else if (dataType === 'datetime')\n      return 'shiny.datetime';\n    else\n      return false;\n  },\n  getValue: function(el) {\n    var $el = $(el);\n    var result = $(el).data('ionRangeSlider').result;\n\n    // Function for converting numeric value from slider to appropriate type.\n    var convert;\n    var dataType = $el.data('data-type');\n    if (dataType === 'date') {\n      convert = function(val) {\n        return formatDateUTC(new Date(+val));\n      };\n    } else if (dataType === 'datetime') {\n      convert = function(val) {\n        // Convert ms to s\n        return +val / 1000;\n      };\n    } else {\n      convert = function(val) { return +val; };\n    }\n\n    if (this._numValues(el) === 2) {\n      return [convert(result.from), convert(result.to)];\n    }\n    else {\n      return convert(result.from);\n    }\n\n  },\n  setValue: function(el, value) {\n    var $el = $(el);\n    var slider = $el.data('ionRangeSlider');\n\n    $el.data('immediate', true);\n    try {\n      if (this._numValues(el) === 2 && value instanceof Array) {\n        slider.update({ from: value[0], to: value[1] });\n      } else {\n        slider.update({ from: value });\n      }\n\n      forceIonSliderUpdate(slider);\n    } finally {\n      $el.data('immediate', false);\n    }\n  },\n  subscribe: function(el, callback) {\n    $(el).on('change.sliderInputBinding', function(event) {\n      callback(!$(el).data('immediate') && !$(el).data('animating'));\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.sliderInputBinding');\n  },\n  receiveMessage: function(el, data) {\n    var $el = $(el);\n    var slider = $el.data('ionRangeSlider');\n    var msg = {};\n\n    if (data.hasOwnProperty('value')) {\n      if (this._numValues(el) === 2 && data.value instanceof Array) {\n        msg.from = data.value[0];\n        msg.to = data.value[1];\n      } else {\n        msg.from = data.value;\n      }\n    }\n    var sliderFeatures = ['min', 'max', 'step'];\n    for (var i = 0; i < sliderFeatures.length; i++) {\n      var feats = sliderFeatures[i];\n      if (data.hasOwnProperty(feats)) {\n        msg[feats] = data[feats];\n      }\n    }\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    var domElements = ['data-type', 'time-format', 'timezone'];\n    for (var i = 0; i < domElements.length; i++) {\n      var elem = domElements[i];\n      if (data.hasOwnProperty(elem)) {\n        $el.data(elem, data[elem]);\n      }\n    }\n\n    var dataType = $el.data('data-type');\n    var timeFormat = $el.data('time-format');\n    var timezone = $el.data('timezone');\n\n    msg.prettify = getTypePrettifyer(dataType, timeFormat, timezone);\n\n    $el.data('immediate', true);\n    try {\n      slider.update(msg);\n      forceIonSliderUpdate(slider);\n    } finally {\n      $el.data('immediate', false);\n    }\n  },\n  getRatePolicy: function() {\n    return {\n      policy: 'debounce',\n      delay: 250\n    };\n  },\n  getState: function(el) {\n  },\n  initialize: function(el) {\n    var opts = {};\n    var $el = $(el);\n    var dataType = $el.data('data-type');\n    var timeFormat = $el.data('time-format');\n    var timezone = $el.data('timezone');\n\n    opts.prettify = getTypePrettifyer(dataType, timeFormat, timezone);\n\n    $el.ionRangeSlider(opts);\n  },\n  _getLabelNode: function(el) {\n    return $(el).parent().find('label[for=\"' + $escape(el.id) + '\"]');\n  },\n  // Number of values; 1 for single slider, 2 for range slider\n  _numValues: function(el) {\n    if ($(el).data('ionRangeSlider').options.type === 'double')\n      return 2;\n    else\n      return 1;\n  }\n});\ninputBindings.register(sliderInputBinding, 'shiny.sliderInput');\n\n\n// Format numbers for nicer output.\n// formatNumber(1234567.12345)           === \"1,234,567.12345\"\n// formatNumber(1234567.12345, \".\", \",\") === \"1.234.567,12345\"\n// formatNumber(1000, \" \")               === \"1 000\"\n// formatNumber(20)                      === \"20\"\n// formatNumber(1.2345e24)               === \"1.2345e+24\"\nfunction formatNumber(num, thousand_sep = \",\", decimal_sep = \".\") {\n  let parts = num.toString().split(\".\");\n\n  // Add separators to portion before decimal mark.\n  parts[0] = parts[0].replace(/(\\d{1,3}(?=(?:\\d\\d\\d)+(?!\\d)))/g, \"$1\" + thousand_sep);\n\n  if (parts.length === 1)\n    return parts[0];\n  else if (parts.length === 2)\n    return parts[0] + decimal_sep + parts[1];\n  else\n    return \"\";\n};\n\n$(document).on('click', '.slider-animate-button', function(evt) {\n  evt.preventDefault();\n  var self = $(this);\n  var target = $('#' + $escape(self.attr('data-target-id')));\n  var startLabel = 'Play';\n  var stopLabel = 'Pause';\n  var loop = self.attr('data-loop') !== undefined &&\n             !/^\\s*false\\s*$/i.test(self.attr('data-loop'));\n  var animInterval = self.attr('data-interval');\n  if (isNaN(animInterval))\n    animInterval = 1500;\n  else\n    animInterval = +animInterval;\n\n  if (!target.data('animTimer')) {\n    var slider;\n    var timer;\n\n    // Separate code paths:\n    // Backward compatible code for old-style jsliders (Shiny <= 0.10.2.2),\n    // and new-style ionsliders.\n    if (target.hasClass('jslider')) {\n      slider = target.slider();\n\n      // If we're currently at the end, restart\n      if (!slider.canStepNext())\n        slider.resetToStart();\n\n      timer = setInterval(function() {\n        if (loop && !slider.canStepNext()) {\n          slider.resetToStart();\n        }\n        else {\n          slider.stepNext();\n          if (!loop && !slider.canStepNext()) {\n            self.click(); // stop the animation\n          }\n        }\n      }, animInterval);\n\n    } else {\n      slider = target.data('ionRangeSlider');\n      // Single sliders have slider.options.type == \"single\", and only the\n      // `from` value is used. Double sliders have type == \"double\", and also\n      // use the `to` value for the right handle.\n      var sliderCanStep = function() {\n        if (slider.options.type === \"double\")\n          return slider.result.to < slider.result.max;\n        else\n          return slider.result.from < slider.result.max;\n      };\n      var sliderReset = function() {\n        var val = { from: slider.result.min };\n        // Preserve the current spacing for double sliders\n        if (slider.options.type === \"double\")\n          val.to = val.from + (slider.result.to - slider.result.from);\n\n        slider.update(val);\n        forceIonSliderUpdate(slider);\n      };\n      var sliderStep = function() {\n        // Don't overshoot the end\n        var val = {\n          from: Math.min(slider.result.max, slider.result.from + slider.options.step)\n        };\n        if (slider.options.type === \"double\")\n          val.to = Math.min(slider.result.max, slider.result.to + slider.options.step);\n\n        slider.update(val);\n        forceIonSliderUpdate(slider);\n      };\n\n      // If we're currently at the end, restart\n      if (!sliderCanStep())\n        sliderReset();\n\n      timer = setInterval(function() {\n        if (loop && !sliderCanStep()) {\n          sliderReset();\n        }\n        else {\n          sliderStep();\n          if (!loop && !sliderCanStep()) {\n            self.click(); // stop the animation\n          }\n        }\n      }, animInterval);\n    }\n\n    target.data('animTimer', timer);\n    self.attr('title', stopLabel);\n    self.addClass('playing');\n    target.data('animating', true);\n  }\n  else {\n    clearTimeout(target.data('animTimer'));\n    target.removeData('animTimer');\n    self.attr('title', startLabel);\n    self.removeClass('playing');\n    target.removeData('animating');\n  }\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_date.js\n\nvar dateInputBinding = new InputBinding();\n$.extend(dateInputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-date-input');\n  },\n  getType: function(el) {\n    return \"shiny.date\";\n  },\n  // Return the date in an unambiguous format, yyyy-mm-dd (as opposed to a\n  // format like mm/dd/yyyy)\n  getValue: function(el) {\n    var date = $(el).find('input').bsDatepicker('getUTCDate');\n    return formatDateUTC(date);\n  },\n  // value must be an unambiguous string like '2001-01-01', or a Date object.\n  setValue: function(el, value) {\n    // R's NA, which is null here will remove current value\n    if (value === null) {\n      $(el).find('input').val('').bsDatepicker('update');\n      return;\n    }\n\n    var date = this._newDate(value);\n    // If date is invalid, do nothing\n    if (isNaN(date))\n      return;\n\n    $(el).find('input').bsDatepicker('setUTCDate', date);\n  },\n  getState: function(el) {\n    var $el = $(el);\n    var $input = $el.find('input');\n\n    var min = $input.data('datepicker').startDate;\n    var max = $input.data('datepicker').endDate;\n\n    // Stringify min and max. If min and max aren't set, they will be\n    // -Infinity and Infinity; replace these with null.\n    min = (min === -Infinity) ? null : formatDateUTC(min);\n    max = (max ===  Infinity) ? null : formatDateUTC(max);\n\n    // startViewMode is stored as a number; convert to string\n    var startview = $input.data('datepicker').startViewMode;\n    if      (startview === 2)  startview = 'decade';\n    else if (startview === 1)  startview = 'year';\n    else if (startview === 0)  startview = 'month';\n\n    return {\n      label:       this._getLabelNode(el).text(),\n      value:       this.getValue(el),\n      valueString: $input.val(),\n      min:         min,\n      max:         max,\n      language:    $input.data('datepicker').language,\n      weekstart:   $input.data('datepicker').weekStart,\n      format:      this._formatToString($input.data('datepicker').format),\n      startview:   startview\n    };\n  },\n  receiveMessage: function(el, data) {\n    var $input = $(el).find('input');\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    if (data.hasOwnProperty('min'))\n      this._setMin($input[0], data.min);\n\n    if (data.hasOwnProperty('max'))\n      this._setMax($input[0], data.max);\n\n    // Must set value only after min and max have been set. If new value is\n    // outside the bounds of the previous min/max, then the result will be a\n    // blank input.\n    if (data.hasOwnProperty('value'))\n      this.setValue(el, data.value);\n\n    $(el).trigger('change');\n  },\n  subscribe: function(el, callback) {\n    $(el).on('keyup.dateInputBinding input.dateInputBinding', function(event) {\n      // Use normal debouncing policy when typing\n      callback(true);\n    });\n    $(el).on('changeDate.dateInputBinding change.dateInputBinding', function(event) {\n      // Send immediately when clicked\n      callback(false);\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.dateInputBinding');\n  },\n  getRatePolicy: function() {\n    return {\n      policy: 'debounce',\n      delay: 250\n    };\n  },\n  initialize: function(el) {\n    var $input = $(el).find('input');\n\n    var date = $input.data('initial-date');\n    // If initial_date is null, set to current date\n    if (date === undefined || date === null) {\n      // Get local date, but as UTC\n      date = this._dateAsUTC(new Date());\n    }\n\n    this.setValue(el, date);\n\n    // Set the start and end dates, from min-date and max-date. These always\n    // use yyyy-mm-dd format, instead of bootstrap-datepicker's built-in\n    // support for date-startdate and data-enddate, which use the current\n    // date format.\n    if ($input.data('min-date') !== undefined) {\n      this._setMin($input[0], $input.data('min-date'));\n    }\n    if ($input.data('max-date') !== undefined) {\n      this._setMax($input[0], $input.data('max-date'));\n    }\n  },\n  _getLabelNode: function(el) {\n    return $(el).find('label[for=\"' + $escape(el.id) + '\"]');\n  },\n  // Given a format object from a date picker, return a string\n  _formatToString: function(format) {\n    // Format object has structure like:\n    // { parts: ['mm', 'dd', 'yy'], separators: ['', '/', '/' ,''] }\n    var str = '';\n    for (var i = 0; i < format.parts.length; i++) {\n      str += format.separators[i] + format.parts[i];\n    }\n    str += format.separators[i];\n    return str;\n  },\n  // Given an unambiguous date string or a Date object, set the min (start) date.\n  // null will unset. undefined will result in no change,\n  _setMin: function(el, date) {\n    if (date === undefined)\n      return;\n    if (date === null) {\n      $(el).bsDatepicker('setStartDate', null);\n      return;\n    }\n\n    date = this._newDate(date);\n    // If date parsing fails, do nothing\n    if (date === null)\n      return;\n\n    date = this._UTCDateAsLocal(date);\n    if (isNaN(date))\n      return;\n    // Workaround for https://github.com/eternicode/bootstrap-datepicker/issues/2010\n    // If the start date when there's a two-digit year format, it will set\n    // the date value to null. So we'll save the value, set the start\n    // date, and the restore the value.\n    var curValue = $(el).bsDatepicker('getUTCDate');\n    $(el).bsDatepicker('setStartDate', date);\n    $(el).bsDatepicker('setUTCDate', curValue);\n\n    // Workaround for https://github.com/rstudio/shiny/issues/2335\n    // We only set the start date *after* the value in this special\n    // case so we don't effect the intended behavior of having a blank\n    // value when it falls outside the start date\n    if (typeof date.toDateString !== 'function') return;\n    if (typeof curValue.toDateString !== 'function') return;\n    if (date.toDateString() === curValue.toDateString()) {\n      $(el).bsDatepicker('setStartDate', null);\n      $(el).bsDatepicker('setUTCDate', curValue);\n      $(el).bsDatepicker('setStartDate', date);\n    }\n  },\n  // Given an unambiguous date string or a Date object, set the max (end) date\n  // null will unset.\n  _setMax: function(el, date) {\n    if (date === undefined)\n      return;\n    if (date === null) {\n      $(el).bsDatepicker('setEndDate', null);\n      return;\n    }\n\n    date = this._newDate(date);\n    // If date parsing fails, do nothing\n    if (date === null)\n      return;\n\n    date = this._UTCDateAsLocal(date);\n    if (isNaN(date))\n      return;\n\n    // Workaround for same issue as in _setMin.\n    var curValue = $(el).bsDatepicker('getUTCDate');\n    $(el).bsDatepicker('setEndDate', date);\n    $(el).bsDatepicker('setUTCDate', curValue);\n\n    // Workaround for same issue as in _setMin.\n    if (typeof date.toDateString !== 'function') return;\n    if (typeof curValue.toDateString !== 'function') return;\n    if (date.toDateString() === curValue.toDateString()) {\n      $(el).bsDatepicker('setEndDate', null);\n      $(el).bsDatepicker('setUTCDate', curValue);\n      $(el).bsDatepicker('setEndDate', date);\n    }\n  },\n  // Given a date string of format yyyy-mm-dd, return a Date object with\n  // that date at 12AM UTC.\n  // If date is a Date object, return it unchanged.\n  _newDate: function(date) {\n    if (date instanceof Date)\n      return date;\n    if (!date)\n      return null;\n\n    // Get Date object - this will be at 12AM in UTC, but may print\n    // differently at the Javascript console.\n    var d = parseDate(date);\n\n    // If invalid date, return null\n    if (isNaN(d))\n      return null;\n\n    return new Date(d.getTime());\n  },\n  // Given a Date object, return a Date object which has the same \"clock time\"\n  // in UTC. For example, if input date is 2013-02-01 23:00:00 GMT-0600 (CST),\n  // output will be 2013-02-01 23:00:00 UTC. Note that the JS console may\n  // print this in local time, as \"Sat Feb 02 2013 05:00:00 GMT-0600 (CST)\".\n  _dateAsUTC: function(date) {\n    return new Date(date.getTime() - date.getTimezoneOffset() * 60000);\n  },\n  // The inverse of _dateAsUTC. This is needed to adjust time zones because\n  // some bootstrap-datepicker methods only take local dates as input, and not\n  // UTC.\n    _UTCDateAsLocal: function(date) {\n    return new Date(date.getTime() + date.getTimezoneOffset() * 60000);\n  }\n});\ninputBindings.register(dateInputBinding, 'shiny.dateInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_daterange.js\n\nvar dateRangeInputBinding = {};\n$.extend(dateRangeInputBinding, dateInputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-date-range-input');\n  },\n  // Return the date in an unambiguous format, yyyy-mm-dd (as opposed to a\n  // format like mm/dd/yyyy)\n  getValue: function(el) {\n    var $inputs = $(el).find('input');\n    var start = $inputs.eq(0).bsDatepicker('getUTCDate');\n    var end   = $inputs.eq(1).bsDatepicker('getUTCDate');\n\n    return [formatDateUTC(start), formatDateUTC(end)];\n  },\n  // value must be an object, with optional fields `start` and `end`. These\n  // should be unambiguous strings like '2001-01-01', or Date objects.\n  setValue: function(el, value) {\n    if (!(value instanceof Object)) {\n      return;\n    }\n\n    // Get the start and end input objects\n    var $inputs = $(el).find('input');\n\n    // If value is undefined, don't try to set\n    // null will remove the current value\n    if (value.start !== undefined) {\n      if (value.start === null) {\n        $inputs.eq(0).val('').bsDatepicker('update');\n      } else {\n        var start = this._newDate(value.start);\n        $inputs.eq(0).bsDatepicker('setUTCDate', start);\n      }\n    }\n    if (value.end !== undefined) {\n      if (value.end === null) {\n        $inputs.eq(1).val('').bsDatepicker('update');\n      } else {\n        var end = this._newDate(value.end);\n        $inputs.eq(1).bsDatepicker('setUTCDate', end);\n      }\n    }\n  },\n  getState: function(el) {\n    var $el = $(el);\n    var $inputs     = $el.find('input');\n    var $startinput = $inputs.eq(0);\n    var $endinput   = $inputs.eq(1);\n\n    // For many of the properties, assume start and end have the same values\n    var min = $startinput.bsDatepicker('getStartDate');\n    var max = $startinput.bsDatepicker('getEndDate');\n\n    // Stringify min and max. If min and max aren't set, they will be\n    // -Infinity and Infinity; replace these with null.\n    min = (min === -Infinity) ? null : formatDateUTC(min);\n    max = (max ===  Infinity) ? null : formatDateUTC(max);\n\n    // startViewMode is stored as a number; convert to string\n    var startview = $startinput.data('datepicker').startView;\n    if      (startview === 2)  startview = 'decade';\n    else if (startview === 1)  startview = 'year';\n    else if (startview === 0)  startview = 'month';\n\n    return {\n      label:       this._getLabelNode(el).text(),\n      value:       this.getValue(el),\n      valueString: [ $startinput.val(), $endinput.val() ],\n      min:         min,\n      max:         max,\n      weekstart:   $startinput.data('datepicker').weekStart,\n      format:      this._formatToString($startinput.data('datepicker').format),\n      language:    $startinput.data('datepicker').language,\n      startview:   startview\n    };\n  },\n  receiveMessage: function(el, data) {\n    var $el = $(el);\n    var $inputs     = $el.find('input');\n    var $startinput = $inputs.eq(0);\n    var $endinput   = $inputs.eq(1);\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    if (data.hasOwnProperty('min')) {\n      this._setMin($startinput[0], data.min);\n      this._setMin($endinput[0],   data.min);\n    }\n\n    if (data.hasOwnProperty('max')) {\n      this._setMax($startinput[0], data.max);\n      this._setMax($endinput[0],   data.max);\n    }\n\n    // Must set value only after min and max have been set. If new value is\n    // outside the bounds of the previous min/max, then the result will be a\n    // blank input.\n    if (data.hasOwnProperty('value'))\n      this.setValue(el, data.value);\n\n    $el.trigger('change');\n  },\n  initialize: function(el) {\n    var $el = $(el);\n    var $inputs     = $el.find('input');\n    var $startinput = $inputs.eq(0);\n    var $endinput   = $inputs.eq(1);\n\n    var start = $startinput.data('initial-date');\n    var end   = $endinput.data('initial-date');\n\n    // If empty/null, use local date, but as UTC\n    if (start === undefined || start === null)\n      start = this._dateAsUTC(new Date());\n\n    if (end === undefined || end === null)\n      end = this._dateAsUTC(new Date());\n\n    this.setValue(el, { \"start\": start, \"end\": end });\n\n    // // Set the start and end dates, from min-date and max-date. These always\n    // // use yyyy-mm-dd format, instead of bootstrap-datepicker's built-in\n    // // support for date-startdate and data-enddate, which use the current\n    // // date format.\n    this._setMin($startinput[0], $startinput.data('min-date'));\n    this._setMin($endinput[0],   $startinput.data('min-date'));\n    this._setMax($startinput[0], $endinput.data('max-date'));\n    this._setMax($endinput[0],   $endinput.data('max-date'));\n  },\n  subscribe: function(el, callback) {\n    $(el).on('keyup.dateRangeInputBinding input.dateRangeInputBinding', function(event) {\n      // Use normal debouncing policy when typing\n      callback(true);\n    });\n    $(el).on('changeDate.dateRangeInputBinding change.dateRangeInputBinding', function(event) {\n      // Send immediately when clicked\n      callback(false);\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.dateRangeInputBinding');\n  },\n  _getLabelNode: function(el) {\n    return $(el).find('label[for=\"' + $escape(el.id) + '\"]');\n  },\n});\ninputBindings.register(dateRangeInputBinding, 'shiny.dateRangeInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_select.js\n\nvar selectInputBinding = new InputBinding();\n$.extend(selectInputBinding, {\n  find: function(scope) {\n    return $(scope).find('select');\n  },\n  getType: function(el) {\n    var $el = $(el);\n    if (!$el.hasClass(\"symbol\")) {\n      // default character type\n      return null;\n    }\n    if ($el.attr(\"multiple\") === \"multiple\") {\n      return 'shiny.symbolList';\n    } else {\n      return 'shiny.symbol';\n    }\n  },\n  getId: function(el) {\n    return InputBinding.prototype.getId.call(this, el) || el.name;\n  },\n  getValue: function(el) {\n    return $(el).val();\n  },\n  setValue: function(el, value) {\n    if (!this._is_selectize(el)) {\n      $(el).val(value);\n    } else {\n      let selectize = this._selectize(el);\n      if (selectize) {\n        selectize.setValue(value);\n      }\n    }\n  },\n  getState: function(el) {\n    // Store options in an array of objects, each with with value and label\n    var options = new Array(el.length);\n    for (var i = 0; i < el.length; i++) {\n      options[i] = { value:    el[i].value,\n                     label:    el[i].label };\n    }\n\n    return {\n      label:    this._getLabelNode(el),\n      value:    this.getValue(el),\n      options:  options\n    };\n  },\n  receiveMessage: function(el, data) {\n    var $el = $(el), selectize;\n\n    // This will replace all the options\n    if (data.hasOwnProperty('options')) {\n      selectize = this._selectize(el);\n      // Must destroy selectize before appending new options, otherwise\n      // selectize will restore the original select\n      if (selectize) selectize.destroy();\n      // Clear existing options and add each new one\n      $el.empty().append(data.options);\n      this._selectize(el);\n    }\n\n    // re-initialize selectize\n    if (data.hasOwnProperty('config')) {\n      $el.parent()\n         .find('script[data-for=\"' + $escape(el.id) + '\"]')\n         .replaceWith(data.config);\n      this._selectize(el, true);\n    }\n\n    // use server-side processing for selectize\n    if (data.hasOwnProperty('url')) {\n      selectize = this._selectize(el);\n      selectize.clearOptions();\n      var loaded = false;\n      selectize.settings.load = function(query, callback) {\n        var settings = selectize.settings;\n        $.ajax({\n          url: data.url,\n          data: {\n            query: query,\n            field: JSON.stringify([settings.searchField]),\n            value: settings.valueField,\n            conju: settings.searchConjunction,\n            maxop: settings.maxOptions\n          },\n          type: 'GET',\n          error: function() {\n            callback();\n          },\n          success: function(res) {\n            // res = [{label: '1', value: '1', group: '1'}, ...]\n            // success is called after options are added, but\n            // groups need to be added manually below\n            $.each(res, function(index, elem) {\n              // Call selectize.addOptionGroup once for each optgroup; the\n              // first argument is the group ID, the second is an object with\n              // the group's label and value. We use the current settings of\n              // the selectize object to decide the fieldnames of that obj.\n              let optgroupId = elem[settings.optgroupField || \"optgroup\"];\n              let optgroup = {};\n              optgroup[settings.optgroupLabelField || \"label\"] = optgroupId;\n              optgroup[settings.optgroupValueField || \"value\"] = optgroupId;\n              selectize.addOptionGroup(optgroupId, optgroup);\n            });\n            callback(res);\n            if (!loaded) {\n              if (data.hasOwnProperty('value')) {\n                selectize.setValue(data.value);\n              } else if (settings.maxItems === 1) {\n                // first item selected by default only for single-select\n                selectize.setValue(res[0].value);\n              }\n            }\n            loaded = true;\n          }\n        });\n      };\n      // perform an empty search after changing the `load` function\n      selectize.load(function(callback) {\n        selectize.settings.load.apply(selectize, ['', callback]);\n      });\n    } else if (data.hasOwnProperty('value')) {\n      this.setValue(el, data.value);\n    }\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    $(el).trigger('change');\n  },\n  subscribe: function(el, callback) {\n    $(el).on('change.selectInputBinding', event => {\n      // https://github.com/rstudio/shiny/issues/2162\n      // Prevent spurious events that are gonna be squelched in\n      // a second anyway by the onItemRemove down below\n      if (el.nonempty && this.getValue(el) === \"\") {\n        return;\n      }\n      callback();\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.selectInputBinding');\n  },\n  initialize: function(el) {\n    this._selectize(el);\n  },\n  _getLabelNode: function(el) {\n    let escaped_id = $escape(el.id);\n    if (this._is_selectize(el)) {\n      escaped_id += \"-selectized\";\n    }\n    return $(el).parent().parent().find('label[for=\"' + escaped_id + '\"]');\n  },\n  // Return true if it's a selectize input, false if it's a regular select input.\n  _is_selectize: function(el) {\n    var config = $(el).parent().find('script[data-for=\"' + $escape(el.id) + '\"]');\n    return (config.length > 0);\n  },\n  _selectize: function(el, update) {\n    if (!$.fn.selectize) return undefined;\n    var $el = $(el);\n    var config = $el.parent().find('script[data-for=\"' + $escape(el.id) + '\"]');\n    if (config.length === 0) return undefined;\n\n    var options = $.extend({\n      labelField: 'label',\n      valueField: 'value',\n      searchField: ['label']\n    }, JSON.parse(config.html()));\n\n    // selectize created from selectInput()\n    if (typeof(config.data('nonempty')) !== 'undefined') {\n      el.nonempty = true;\n      options = $.extend(options, {\n        onItemRemove: function(value) {\n          if (this.getValue() === \"\")\n            $(\"select#\" + $escape(el.id)).empty().append($(\"<option/>\", {\n              \"value\": value,\n              \"selected\": true\n            })).trigger(\"change\");\n        },\n        onDropdownClose: function($dropdown) {\n          if (this.getValue() === \"\")\n            this.setValue($(\"select#\" + $escape(el.id)).val());\n        }\n      });\n    } else {\n      el.nonempty = false;\n    }\n    // options that should be eval()ed\n    if (config.data('eval') instanceof Array)\n      $.each(config.data('eval'), function(i, x) {\n        /*jshint evil: true*/\n        options[x] = eval('(' + options[x] + ')');\n      });\n    var control = $el.selectize(options)[0].selectize;\n    // .selectize() does not really update settings; must destroy and rebuild\n    if (update) {\n      var settings = $.extend(control.settings, options);\n      control.destroy();\n      control = $el.selectize(settings)[0].selectize;\n    }\n    return control;\n  }\n});\ninputBindings.register(selectInputBinding, 'shiny.selectInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_radio.js\n\nvar radioInputBinding = new InputBinding();\n$.extend(radioInputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-input-radiogroup');\n  },\n  getValue: function(el) {\n    // Select the radio objects that have name equal to the grouping div's id\n    return $('input:radio[name=\"' + $escape(el.id) + '\"]:checked').val();\n  },\n  setValue: function(el, value) {\n    $('input:radio[name=\"' + $escape(el.id) + '\"][value=\"' + $escape(value) + '\"]').prop('checked', true);\n  },\n  getState: function(el) {\n    var $objs = $('input:radio[name=\"' + $escape(el.id) + '\"]');\n\n    // Store options in an array of objects, each with with value and label\n    var options = new Array($objs.length);\n    for (var i = 0; i < options.length; i++) {\n      options[i] = { value:   $objs[i].value,\n                     label:   this._getLabel($objs[i]) };\n    }\n\n    return {\n      label:    this._getLabelNode(el).text(),\n      value:    this.getValue(el),\n      options:  options\n    };\n  },\n  receiveMessage: function(el, data) {\n    var $el = $(el);\n\n    // This will replace all the options\n    if (data.hasOwnProperty('options')) {\n      // Clear existing options and add each new one\n      $el.find('div.shiny-options-group').remove();\n      // Backward compatibility: for HTML generated by shinybootstrap2 package\n      $el.find('label.radio').remove();\n      $el.append(data.options);\n    }\n\n    if (data.hasOwnProperty('value'))\n      this.setValue(el, data.value);\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    $(el).trigger('change');\n  },\n  subscribe: function(el, callback) {\n    $(el).on('change.radioInputBinding', function(event) {\n      callback();\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.radioInputBinding');\n  },\n  // Get the DOM element that contains the top-level label\n  _getLabelNode: function(el) {\n      return $(el).parent().find('label[for=\"' + $escape(el.id) + '\"]');\n  },\n  // Given an input DOM object, get the associated label. Handles labels\n  // that wrap the input as well as labels associated with 'for' attribute.\n  _getLabel: function(obj) {\n    // If <label><input /><span>label text</span></label>\n    if (obj.parentNode.tagName === \"LABEL\") {\n      return $(obj.parentNode).find('span').text().trim();\n    }\n\n    return null;\n  },\n  // Given an input DOM object, set the associated label. Handles labels\n  // that wrap the input as well as labels associated with 'for' attribute.\n  _setLabel: function(obj, value) {\n    // If <label><input /><span>label text</span></label>\n    if (obj.parentNode.tagName === \"LABEL\") {\n      $(obj.parentNode).find('span').text(value);\n    }\n\n    return null;\n  }\n\n});\ninputBindings.register(radioInputBinding, 'shiny.radioInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_checkboxgroup.js\n\nvar checkboxGroupInputBinding = new InputBinding();\n$.extend(checkboxGroupInputBinding, {\n  find: function(scope) {\n    return $(scope).find('.shiny-input-checkboxgroup');\n  },\n  getValue: function(el) {\n    // Select the checkbox objects that have name equal to the grouping div's id\n    var $objs = $('input:checkbox[name=\"' + $escape(el.id) + '\"]:checked');\n    var values = new Array($objs.length);\n    for (var i = 0; i < $objs.length; i ++) {\n      values[i] = $objs[i].value;\n    }\n    return values;\n  },\n  setValue: function(el, value) {\n    // Clear all checkboxes\n    $('input:checkbox[name=\"' + $escape(el.id) + '\"]').prop('checked', false);\n\n    // Accept array\n    if (value instanceof Array) {\n      for (var i = 0; i < value.length; i++) {\n        $('input:checkbox[name=\"' + $escape(el.id) + '\"][value=\"' + $escape(value[i]) + '\"]')\n          .prop('checked', true);\n      }\n    // Else assume it's a single value\n    } else {\n      $('input:checkbox[name=\"' + $escape(el.id) + '\"][value=\"' + $escape(value) + '\"]')\n        .prop('checked', true);\n    }\n\n  },\n  getState: function(el) {\n    var $objs = $('input:checkbox[name=\"' + $escape(el.id) + '\"]');\n\n    // Store options in an array of objects, each with with value and label\n    var options = new Array($objs.length);\n    for (var i = 0; i < options.length; i++) {\n      options[i] = { value:   $objs[i].value,\n                     label:   this._getLabel($objs[i]) };\n    }\n\n    return { label:    this._getLabelNode(el).text(),\n             value:    this.getValue(el),\n             options:  options\n           };\n  },\n  receiveMessage: function(el, data) {\n    var $el = $(el);\n\n    // This will replace all the options\n    if (data.hasOwnProperty('options')) {\n      // Clear existing options and add each new one\n      $el.find('div.shiny-options-group').remove();\n      // Backward compatibility: for HTML generated by shinybootstrap2 package\n      $el.find('label.checkbox').remove();\n      $el.append(data.options);\n    }\n\n    if (data.hasOwnProperty('value'))\n      this.setValue(el, data.value);\n\n    updateLabel(data.label, this._getLabelNode(el));\n\n    $(el).trigger('change');\n  },\n  subscribe: function(el, callback) {\n    $(el).on('change.checkboxGroupInputBinding', function(event) {\n      callback();\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.checkboxGroupInputBinding');\n  },\n  // Get the DOM element that contains the top-level label\n  _getLabelNode: function(el) {\n      return $(el).find('label[for=\"' + $escape(el.id) + '\"]');\n  },\n  // Given an input DOM object, get the associated label. Handles labels\n  // that wrap the input as well as labels associated with 'for' attribute.\n  _getLabel: function(obj) {\n    // If <label><input /><span>label text</span></label>\n    if (obj.parentNode.tagName === \"LABEL\") {\n      return $(obj.parentNode).find('span').text().trim();\n    }\n\n    return null;\n  },\n  // Given an input DOM object, set the associated label. Handles labels\n  // that wrap the input as well as labels associated with 'for' attribute.\n  _setLabel: function(obj, value) {\n    // If <label><input /><span>label text</span></label>\n    if (obj.parentNode.tagName === \"LABEL\") {\n      $(obj.parentNode).find('span').text(value);\n    }\n\n    return null;\n  }\n\n});\ninputBindings.register(checkboxGroupInputBinding, 'shiny.checkboxGroupInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_actionbutton.js\n\nvar actionButtonInputBinding = new InputBinding();\n$.extend(actionButtonInputBinding, {\n  find: function(scope) {\n    return $(scope).find(\".action-button\");\n  },\n  getValue: function(el) {\n    return $(el).data('val') || 0;\n  },\n  setValue: function(el, value) {\n    $(el).data('val', value);\n  },\n  getType: function(el) {\n    return 'shiny.action';\n  },\n  subscribe: function(el, callback) {\n    $(el).on(\"click.actionButtonInputBinding\", function(e) {\n      var $el = $(this);\n      var val = $el.data('val') || 0;\n      $el.data('val', val + 1);\n\n      callback();\n    });\n  },\n  getState: function(el) {\n    return { value: this.getValue(el) };\n  },\n  receiveMessage: function(el, data) {\n    var $el = $(el);\n\n    // retrieve current label and icon\n    var label = $el.text();\n    var icon = '';\n\n    // to check (and store) the previous icon, we look for a $el child\n    // object that has an i tag, and some (any) class (this prevents\n    // italicized text - which has an i tag but, usually, no class -\n    // from being mistakenly selected)\n    if ($el.find('i[class]').length > 0) {\n      var icon_html = $el.find('i[class]')[0];\n      if (icon_html === $el.children()[0]) {     // another check for robustness\n        icon = $(icon_html).prop('outerHTML');\n      }\n    }\n\n    // update the requested properties\n    if (data.hasOwnProperty('label')) label = data.label;\n    if (data.hasOwnProperty('icon')) {\n      icon = data.icon;\n      // if the user entered icon=character(0), remove the icon\n      if (icon.length === 0) icon = '';\n    }\n\n    // produce new html\n    $el.html(icon + ' ' + label);\n  },\n  unsubscribe: function(el) {\n    $(el).off(\".actionButtonInputBinding\");\n  }\n});\ninputBindings.register(actionButtonInputBinding, 'shiny.actionButtonInput');\n\n\n$(document).on('click', 'a.action-button', function(e) {\n  e.preventDefault();\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_tabinput.js\n\nvar bootstrapTabInputBinding = new InputBinding();\n$.extend(bootstrapTabInputBinding, {\n  find: function(scope) {\n    return $(scope).find('ul.nav.shiny-tab-input');\n  },\n  getValue: function(el) {\n    var anchor = $(el).find('li:not(.dropdown).active').children('a');\n    if (anchor.length === 1)\n      return this._getTabName(anchor);\n\n    return null;\n  },\n  setValue: function(el, value) {\n    let self = this;\n    let success = false;\n    if (value) {\n      let anchors = $(el).find('li:not(.dropdown)').children('a');\n      anchors.each(function() {\n        if (self._getTabName($(this)) === value) {\n          $(this).tab('show');\n          success = true;\n          return false; // Break out of each()\n        }\n        return true;\n      });\n    }\n    if (!success) {\n      // This is to handle the case where nothing is selected, e.g. the last tab\n      // was removed using removeTab.\n      $(el).trigger(\"change\");\n    }\n  },\n  getState: function(el) {\n    return { value: this.getValue(el) };\n  },\n  receiveMessage: function(el, data) {\n    if (data.hasOwnProperty('value'))\n      this.setValue(el, data.value);\n  },\n  subscribe: function(el, callback) {\n    $(el).on('change shown.bootstrapTabInputBinding shown.bs.tab.bootstrapTabInputBinding', function(event) {\n      callback();\n    });\n  },\n  unsubscribe: function(el) {\n    $(el).off('.bootstrapTabInputBinding');\n  },\n  _getTabName: function(anchor) {\n    return anchor.attr('data-value') || anchor.text();\n  }\n});\ninputBindings.register(bootstrapTabInputBinding, 'shiny.bootstrapTabInput');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/input_binding_fileinput.js\n\nvar IE8FileUploader = function(shinyapp, id, fileEl) {\n  this.shinyapp = shinyapp;\n  this.id = id;\n  this.fileEl = fileEl;\n  this.beginUpload();\n};\n(function() {\n  this.beginUpload = function() {\n    var self = this;\n    // Create invisible frame\n    var iframeId = 'shinyupload_iframe_' + this.id;\n    this.iframe = document.createElement('iframe');\n    this.iframe.id = iframeId;\n    this.iframe.name = iframeId;\n    this.iframe.setAttribute('style', 'position: fixed; top: 0; left: 0; width: 0; height: 0; border: none');\n    $(document.body).append(this.iframe);\n    var iframeDestroy = function() {\n      // Forces Shiny to flushReact, flush outputs, etc. Without this we get\n      // invalidated reactives, but observers don't actually execute.\n      self.shinyapp.makeRequest('uploadieFinish', [], function(){}, function(){});\n      $(self.iframe).remove();\n      // Reset the file input's value to \"\". This allows the same file to be\n      // uploaded again. https://stackoverflow.com/a/22521275\n      $(self.fileEl).val(\"\");\n    };\n    if (this.iframe.attachEvent) {\n      this.iframe.attachEvent('onload', iframeDestroy);\n    } else {\n      this.iframe.onload = iframeDestroy;\n    }\n\n    this.form = document.createElement('form');\n    this.form.method = 'POST';\n    this.form.setAttribute('enctype', 'multipart/form-data');\n    this.form.action = \"session/\" + encodeURI(this.shinyapp.config.sessionId) +\n                       \"/uploadie/\" + encodeURI(this.id);\n    this.form.id = 'shinyupload_form_' + this.id;\n    this.form.target = iframeId;\n    $(this.form).insertAfter(this.fileEl).append(this.fileEl);\n    this.form.submit();\n  };\n}).call(IE8FileUploader.prototype);\n\nvar FileUploader = function(shinyapp, id, files, el) {\n  this.shinyapp = shinyapp;\n  this.id = id;\n  this.el = el;\n  FileProcessor.call(this, files);\n};\n$.extend(FileUploader.prototype, FileProcessor.prototype);\n(function() {\n  this.makeRequest = function(method, args, onSuccess, onFailure, blobs) {\n    this.shinyapp.makeRequest(method, args, onSuccess, onFailure, blobs);\n  };\n  this.onBegin = function(files, cont) {\n    var self = this;\n\n    // Reset progress bar\n    this.$setError(null);\n    this.$setActive(true);\n    this.$setVisible(true);\n    this.onProgress(null, 0);\n\n    this.totalBytes = 0;\n    this.progressBytes = 0;\n    $.each(files, function(i, file) {\n      self.totalBytes += file.size;\n    });\n\n    var fileInfo = $.map(files, function(file, i) {\n      return {\n        name: file.name,\n        size: file.size,\n        type: file.type\n      };\n    });\n\n    this.makeRequest(\n      'uploadInit', [fileInfo],\n      function(response) {\n        self.jobId = response.jobId;\n        self.uploadUrl = response.uploadUrl;\n        cont();\n      },\n      function(error) {\n        self.onError(error);\n      });\n  };\n  this.onFile = function(file, cont) {\n    var self = this;\n    this.onProgress(file, 0);\n\n    $.ajax(this.uploadUrl, {\n      type: 'POST',\n      cache: false,\n      xhr: function() {\n        var xhrVal = $.ajaxSettings.xhr();\n        if (xhrVal.upload) {\n          xhrVal.upload.onprogress = function(e) {\n            if (e.lengthComputable) {\n              self.onProgress(\n                file,\n                (self.progressBytes + e.loaded) / self.totalBytes);\n            }\n          };\n        }\n        return xhrVal;\n      },\n      data: file,\n      contentType: 'application/octet-stream',\n      processData: false,\n      success: function() {\n        self.progressBytes += file.size;\n        cont();\n      },\n      error: function(jqXHR, textStatus, errorThrown) {\n        self.onError(jqXHR.responseText || textStatus);\n      }\n    });\n  };\n  this.onComplete = function() {\n    var self = this;\n\n    var fileInfo = $.map(this.files, function(file, i) {\n      return {\n        name: file.name,\n        size: file.size,\n        type: file.type\n      };\n    });\n\n    // Trigger shiny:inputchanged. Unlike a normal shiny:inputchanged event,\n    // it's not possible to modify the information before the values get\n    // sent to the server.\n    var evt = jQuery.Event(\"shiny:inputchanged\");\n    evt.name = this.id;\n    evt.value = fileInfo;\n    evt.binding = fileInputBinding;\n    evt.el = this.el;\n    evt.inputType = 'shiny.fileupload';\n    $(document).trigger(evt);\n\n    this.makeRequest(\n      'uploadEnd', [this.jobId, this.id],\n      function(response) {\n        self.$setActive(false);\n        self.onProgress(null, 1);\n        self.$bar().text('Upload complete');\n        // Reset the file input's value to \"\". This allows the same file to be\n        // uploaded again. https://stackoverflow.com/a/22521275\n        $(evt.el).val(\"\");\n      },\n      function(error) {\n        self.onError(error);\n      });\n    this.$bar().text('Finishing upload');\n  };\n  this.onError = function(message) {\n    this.$setError(message || '');\n    this.$setActive(false);\n  };\n  this.onAbort = function() {\n    this.$setVisible(false);\n  };\n  this.onProgress = function(file, completed) {\n    this.$bar().width(Math.round(completed*100) + '%');\n    this.$bar().text(file ? file.name : '');\n  };\n  this.$container = function() {\n    return $('#' + $escape(this.id) + '_progress.shiny-file-input-progress');\n  };\n  this.$bar = function() {\n    return $('#' + $escape(this.id) + '_progress.shiny-file-input-progress .progress-bar');\n  };\n  this.$setVisible = function(visible) {\n    this.$container().css('visibility', visible ? 'visible' : 'hidden');\n  };\n  this.$setError = function(error) {\n    this.$bar().toggleClass('progress-bar-danger', (error !== null));\n    if (error !== null) {\n      this.onProgress(null, 1);\n      this.$bar().text(error);\n    }\n  };\n  this.$setActive = function(active) {\n    this.$container().toggleClass('active', !!active);\n  };\n}).call(FileUploader.prototype);\n\n\n// NOTE On Safari, at least version 10.1.2, *if the developer console is open*,\n// setting the input's value will behave strangely because of a Safari bug. The\n// uploaded file's name will appear over the placeholder value, instead of\n// replacing it. The workaround is to restart Safari. When I (Alan Dipert) ran\n// into this bug Winston Chang helped me diagnose the exact problem, and Winston\n// then submitted a bug report to Apple.\nfunction setFileText($el, files) {\n  var $fileText = $el.closest('div.input-group').find('input[type=text]');\n  if (files.length === 1) {\n    $fileText.val(files[0].name);\n  } else {\n    $fileText.val(files.length + \" files\");\n  }\n}\n\n// If previously selected files are uploading, abort that.\nfunction abortCurrentUpload($el) {\n  var uploader = $el.data('currentUploader');\n  if (uploader) uploader.abort();\n  // Clear data-restore attribute if present.\n  $el.removeAttr('data-restore');\n}\n\nfunction uploadDroppedFilesIE10Plus(el, files) {\n  var $el = $(el);\n  abortCurrentUpload($el);\n\n  // Set the label in the text box\n  setFileText($el, files);\n\n  // Start the new upload and put the uploader in 'currentUploader'.\n  $el.data('currentUploader',\n           new FileUploader(exports.shinyapp,\n                            fileInputBinding.getId(el),\n                            files,\n                            el));\n}\n\nfunction uploadFiles(evt) {\n  var $el = $(evt.target);\n  abortCurrentUpload($el);\n\n  var files = evt.target.files;\n  // IE8 here does not necessarily mean literally IE8; it indicates if the web\n  // browser supports the FileList object (IE8/9 do not support it)\n  var IE8 = typeof(files) === 'undefined';\n  var id = fileInputBinding.getId(evt.target);\n\n  if (!IE8 && files.length === 0)\n    return;\n\n  // Set the label in the text box\n  var $fileText = $el.closest('div.input-group').find('input[type=text]');\n  if (IE8) {\n    // If we're using IE8/9, just use this placeholder\n    $fileText.val(\"[Uploaded file]\");\n  } else {\n    setFileText($el, files);\n  }\n\n  // Start the new upload and put the uploader in 'currentUploader'.\n  if (IE8) {\n    /*jshint nonew:false */\n    new IE8FileUploader(exports.shinyapp, id, evt.target);\n  } else {\n    $el.data('currentUploader',\n      new FileUploader(exports.shinyapp, id, files, evt.target));\n  }\n}\n\n// Here we maintain a list of all the current file inputs. This is necessary\n// because we need to trigger events on them in order to respond to file drag\n// events. For example, they should all light up when a file is dragged on to\n// the page.\nvar $fileInputs = $();\n\nvar fileInputBinding = new InputBinding();\n$.extend(fileInputBinding, {\n  find: function(scope) {\n    return $(scope).find('input[type=\"file\"]');\n  },\n  getId: function(el) {\n    return InputBinding.prototype.getId.call(this, el) || el.name;\n  },\n  getValue: function(el) {\n    // This returns a non-undefined value only when there's a 'data-restore'\n    // attribute, which is set only when restoring Shiny state. If a file is\n    // uploaded through the browser, 'data-restore' gets cleared.\n    var data = $(el).attr('data-restore');\n    if (data) {\n      data = JSON.parse(data);\n\n      // Set the label in the text box\n      var $fileText = $(el).closest('div.input-group').find('input[type=text]');\n      if (data.name.length === 1) {\n        $fileText.val(data.name[0]);\n      } else {\n        $fileText.val(data.name.length + \" files\");\n      }\n\n      // Manually set up progress bar. A bit inelegant because it duplicates\n      // code from FileUploader, but duplication is less bad than alternatives.\n      var $progress = $(el).closest('div.form-group').find('.progress');\n      var $bar = $progress.find('.progress-bar');\n      $progress.removeClass('active');\n      $bar.width('100%');\n      $bar.css('visibility', 'visible');\n\n      return data;\n\n    } else {\n      return null;\n    }\n  },\n  setValue: function(el, value) {\n    // Not implemented\n  },\n  getType: function(el) {\n    // This will be used only when restoring a file from a saved state.\n    return 'shiny.file';\n  },\n  _zoneOf: function(el) {\n    return $(el).closest(\"div.input-group\");\n  },\n  // This function makes it possible to attach listeners to the dragenter,\n  // dragleave, and drop events of a single element with children. It's not\n  // intuitive to do directly because outer elements fire \"dragleave\" events\n  // both when the drag leaves the element and when the drag enters a child. To\n  // make it easier, we maintain a count of the elements being dragged across\n  // and trigger 3 new types of event:\n  //\n  // 1. draghover:enter - When a drag enters el and any of its children.\n  // 2. draghover:leave - When the drag leaves el and all of its children.\n  // 3. draghover:drop - When an item is dropped on el or any of its children.\n  _enableDraghover: function(el) {\n    let $el = $(el),\n        childCounter = 0;\n    $el.on({\n      \"dragenter.draghover\": e => {\n        if (childCounter++ === 0) {\n          $el.trigger(\"draghover:enter\", e);\n        }\n      },\n      \"dragleave.draghover\": e => {\n        if (--childCounter === 0) {\n          $el.trigger(\"draghover:leave\", e);\n        }\n        if (childCounter < 0) {\n          console.error(\"draghover childCounter is negative somehow\");\n        }\n      },\n      \"dragover.draghover\": e => {\n        e.preventDefault();\n      },\n      \"drop.draghover\": e => {\n        childCounter = 0;\n        $el.trigger(\"draghover:drop\", e);\n        e.preventDefault();\n      }\n    });\n    return $el;\n  },\n  _disableDraghover: function(el) {\n    return $(el).off(\".draghover\");\n  },\n  _ZoneClass: {\n    ACTIVE: \"shiny-file-input-active\",\n    OVER: \"shiny-file-input-over\"\n  },\n  _enableDocumentEvents: function() {\n    let $doc = $(\"html\"),\n        {ACTIVE, OVER} = this._ZoneClass;\n    this._enableDraghover($doc)\n      .on({\n        \"draghover:enter.draghover\": e => {\n          this._zoneOf($fileInputs).addClass(ACTIVE);\n        },\n        \"draghover:leave.draghover\": e => {\n          this._zoneOf($fileInputs).removeClass(ACTIVE);\n        },\n        \"draghover:drop.draghover\": e => {\n          this._zoneOf($fileInputs)\n            .removeClass(OVER)\n            .removeClass(ACTIVE);\n        }\n      });\n  },\n  _disableDocumentEvents: function() {\n    let $doc = $(\"html\");\n    $doc.off(\".draghover\");\n    this._disableDraghover($doc);\n  },\n  _canSetFiles: function(fileList) {\n    var testEl = document.createElement(\"input\");\n    testEl.type = \"file\";\n    try {\n      testEl.files = fileList;\n    } catch (e) {\n      return false;\n    }\n    return true;\n  },\n  _handleDrop: function(e, el) {\n    const files = e.originalEvent.dataTransfer.files,\n          $el   = $(el);\n    if (files === undefined || files === null) {\n      // 1. The FileList object isn't supported by this browser, and\n      // there's nothing else we can try. (< IE 10)\n      console.log(\"Dropping files is not supported on this browser. (no FileList)\");\n    } else if (!this._canSetFiles(files)) {\n      // 2. The browser doesn't support assigning a type=file input's .files\n      // property, but we do have a FileList to work with. (IE10+/Edge)\n      $el.val(\"\");\n      uploadDroppedFilesIE10Plus(el, files);\n    } else {\n      // 3. The browser supports FileList and input.files assignment.\n      // (Chrome, Safari)\n      $el.val(\"\");\n      el.files = e.originalEvent.dataTransfer.files;\n      // Recent versions of Firefox (57+, or \"Quantum\" and beyond) don't seem to\n      // automatically trigger a change event, so we trigger one manually here.\n      // On browsers that do trigger change, this operation appears to be\n      // idempotent, as el.files doesn't change between events.\n      $el.trigger(\"change\");\n    }\n  },\n  _isIE9: function() {\n    try {\n      return (window.navigator.userAgent.match(/MSIE 9\\./) && true) || false;\n    } catch (e) {\n      return false;\n    }\n  },\n  subscribe: function(el, callback) {\n    $(el).on(\"change.fileInputBinding\", uploadFiles);\n    // Here we try to set up the necessary events for Drag and Drop (\"DnD\") on\n    // every browser except IE9. We specifically exclude IE9 because it's one\n    // browser that supports just enough of the functionality we need to be\n    // confusing. In particular, it supports drag events, so drop zones will\n    // highlight when a file is dragged into the browser window. It doesn't\n    // support the FileList object though, so the user's expectation that DnD is\n    // supported based on this highlighting would be incorrect.\n    if (!this._isIE9()) {\n      if ($fileInputs.length === 0) this._enableDocumentEvents();\n      $fileInputs = $fileInputs.add(el);\n      let $zone = this._zoneOf(el),\n          {OVER} = this._ZoneClass;\n      this._enableDraghover($zone)\n        .on({\n          \"draghover:enter.draghover\": e => {\n            $zone.addClass(OVER);\n          },\n          \"draghover:leave.draghover\": e => {\n            $zone.removeClass(OVER);\n            // Prevent this event from bubbling to the document handler,\n            // which would deactivate all zones.\n            e.stopPropagation();\n          },\n          \"draghover:drop.draghover\": (e, dropEvent) => {\n            this._handleDrop(dropEvent, el);\n          }\n        });\n    }\n  },\n\n  unsubscribe: function(el) {\n    let $el   = $(el),\n        $zone = this._zoneOf(el);\n\n    $zone\n      .removeClass(this._ZoneClass.OVER)\n      .removeClass(this._ZoneClass.ACTIVE);\n\n    this._disableDraghover($zone);\n    $el.off(\".fileInputBinding\");\n    $zone.off(\".draghover\");\n\n    // Remove el from list of inputs and (maybe) clean up global event handlers.\n    $fileInputs = $fileInputs.not(el);\n    if ($fileInputs.length === 0) this._disableDocumentEvents();\n  }\n});\ninputBindings.register(fileInputBinding, 'shiny.fileInputBinding');\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/init_shiny.js\n\nfunction initShiny() {\n\n  var shinyapp = exports.shinyapp = new ShinyApp();\n\n  function bindOutputs(scope = document) {\n    scope = $(scope);\n\n    var bindings = outputBindings.getBindings();\n\n    for (var i = 0; i < bindings.length; i++) {\n      var binding = bindings[i].binding;\n      var matches = binding.find(scope) || [];\n      for (var j = 0; j < matches.length; j++) {\n        var el = matches[j];\n        var id = binding.getId(el);\n\n        // Check if ID is falsy\n        if (!id)\n          continue;\n\n        // In some uncommon cases, elements that are later in the\n        // matches array can be removed from the document by earlier\n        // iterations. See https://github.com/rstudio/shiny/issues/1399\n        if (!$.contains(document, el))\n          continue;\n\n        var $el = $(el);\n        if ($el.hasClass('shiny-bound-output')) {\n          // Already bound; can happen with nested uiOutput (bindAll\n          // gets called on two ancestors)\n          continue;\n        }\n\n        var bindingAdapter = new OutputBindingAdapter(el, binding);\n        shinyapp.bindOutput(id, bindingAdapter);\n        $el.data('shiny-output-binding', bindingAdapter);\n        $el.addClass('shiny-bound-output');\n        $el.trigger({\n          type: 'shiny:bound',\n          binding: binding,\n          bindingType: 'output'\n        });\n      }\n    }\n\n    // Send later in case DOM layout isn't final yet.\n    setTimeout(sendImageSize, 0);\n    setTimeout(sendOutputHiddenState, 0);\n  }\n\n  function unbindOutputs(scope = document, includeSelf = false) {\n    var outputs = $(scope).find('.shiny-bound-output');\n\n    if (includeSelf && $(scope).hasClass('shiny-bound-output')) {\n      outputs.push(scope);\n    }\n\n    for (var i = 0; i < outputs.length; i++) {\n      var $el = $(outputs[i]);\n      var bindingAdapter = $el.data('shiny-output-binding');\n      if (!bindingAdapter)\n        continue;\n      var id = bindingAdapter.binding.getId(outputs[i]);\n      shinyapp.unbindOutput(id, bindingAdapter);\n      $el.removeClass('shiny-bound-output');\n      $el.removeData('shiny-output-binding');\n      $el.trigger({\n        type: 'shiny:unbound',\n        binding: bindingAdapter.binding,\n        bindingType: 'output'\n      });\n    }\n\n    // Send later in case DOM layout isn't final yet.\n    setTimeout(sendImageSize, 0);\n    setTimeout(sendOutputHiddenState, 0);\n  }\n\n  var inputBatchSender = new InputBatchSender(shinyapp);\n  var inputsNoResend = new InputNoResendDecorator(inputBatchSender);\n  var inputsEvent = new InputEventDecorator(inputsNoResend);\n  var inputsRate = new InputRateDecorator(inputsEvent);\n  var inputsDefer = new InputDeferDecorator(inputsEvent);\n\n  var inputs;\n  if ($('input[type=\"submit\"], button[type=\"submit\"]').length > 0) {\n    // If there is a submit button on the page, use defer decorator\n    inputs = inputsDefer;\n\n    $('input[type=\"submit\"], button[type=\"submit\"]').each(function() {\n      $(this).click(function(event) {\n        event.preventDefault();\n        inputsDefer.submit();\n      });\n    });\n\n  } else {\n    // By default, use rate decorator\n    inputs = inputsRate;\n  }\n\n  inputs = new InputValidateDecorator(inputs);\n\n  exports.setInputValue = exports.onInputChange = function(name, value, opts) {\n    opts = addDefaultInputOpts(opts);\n    inputs.setInput(name, value, opts);\n  };\n\n  var boundInputs = {};\n\n  function valueChangeCallback(binding, el, allowDeferred) {\n    var id = binding.getId(el);\n    if (id) {\n      var value = binding.getValue(el);\n      var type = binding.getType(el);\n      if (type)\n        id = id + \":\" + type;\n\n      let opts = {\n        priority: allowDeferred ? \"deferred\" : \"immediate\",\n        binding: binding,\n        el: el\n      };\n      inputs.setInput(id, value, opts);\n    }\n  }\n\n  function bindInputs(scope = document) {\n    var bindings = inputBindings.getBindings();\n\n    var inputItems = {};\n\n    for (var i = 0; i < bindings.length; i++) {\n      var binding = bindings[i].binding;\n      var matches = binding.find(scope) || [];\n      for (var j = 0; j < matches.length; j++) {\n        var el = matches[j];\n        var id = binding.getId(el);\n\n        // Check if ID is falsy, or if already bound\n        if (!id || boundInputs[id])\n          continue;\n\n        var type = binding.getType(el);\n        var effectiveId = type ? id + \":\" + type : id;\n        inputItems[effectiveId] = {\n          value: binding.getValue(el),\n          opts: {\n            immediate: true,\n            binding: binding,\n            el: el\n          }\n        };\n\n        /*jshint loopfunc:true*/\n        var thisCallback = (function() {\n          var thisBinding = binding;\n          var thisEl = el;\n          return function(allowDeferred) {\n            valueChangeCallback(thisBinding, thisEl, allowDeferred);\n          };\n        })();\n\n        binding.subscribe(el, thisCallback);\n        $(el).data('shiny-input-binding', binding);\n        $(el).addClass('shiny-bound-input');\n        var ratePolicy = binding.getRatePolicy(el);\n        if (ratePolicy !== null) {\n          inputsRate.setRatePolicy(\n            effectiveId,\n            ratePolicy.policy,\n            ratePolicy.delay);\n        }\n\n        boundInputs[id] = {\n          binding: binding,\n          node: el\n        };\n\n        $(el).trigger({\n          type: 'shiny:bound',\n          binding: binding,\n          bindingType: 'input'\n        });\n      }\n    }\n\n    return inputItems;\n  }\n\n  function unbindInputs(scope = document, includeSelf = false) {\n    var inputs = $(scope).find('.shiny-bound-input');\n\n    if (includeSelf && $(scope).hasClass('shiny-bound-input')) {\n      inputs.push(scope);\n    }\n\n    for (var i = 0; i < inputs.length; i++) {\n      var el = inputs[i];\n      var binding = $(el).data('shiny-input-binding');\n      if (!binding)\n        continue;\n      var id = binding.getId(el);\n      $(el).removeClass('shiny-bound-input');\n      delete boundInputs[id];\n      binding.unsubscribe(el);\n      $(el).trigger({\n        type: 'shiny:unbound',\n        binding: binding,\n        bindingType: 'input'\n      });\n    }\n  }\n\n  function _bindAll(scope) {\n    bindOutputs(scope);\n    return bindInputs(scope);\n  }\n  function unbindAll(scope, includeSelf = false) {\n    unbindInputs(scope, includeSelf);\n    unbindOutputs(scope, includeSelf);\n  }\n  exports.bindAll = function(scope) {\n    // _bindAll returns input values; it doesn't send them to the server.\n    // export.bindAll needs to send the values to the server.\n    var currentInputItems = _bindAll(scope);\n    $.each(currentInputItems, function(name, item) {\n      inputs.setInput(name, item.value, item.opts);\n    });\n\n    // Not sure if the iframe stuff is an intrinsic part of bindAll, but bindAll\n    // is a convenient place to hang it. bindAll will be called anytime new HTML\n    // appears that might contain inputs/outputs; it's reasonable to assume that\n    // any such HTML may contain iframes as well.\n    initDeferredIframes();\n  };\n  exports.unbindAll = unbindAll;\n\n  // Calls .initialize() for all of the input objects in all input bindings,\n  // in the given scope.\n  function initializeInputs(scope = document) {\n    var bindings = inputBindings.getBindings();\n\n    // Iterate over all bindings\n    for (var i = 0; i < bindings.length; i++) {\n      var binding = bindings[i].binding;\n      var inputObjects = binding.find(scope) || [];\n\n      // Iterate over all input objects for this binding\n      for (var j = 0; j < inputObjects.length; j++) {\n        if (!inputObjects[j]._shiny_initialized) {\n          inputObjects[j]._shiny_initialized = true;\n          binding.initialize(inputObjects[j]);\n        }\n      }\n    }\n  }\n  exports.initializeInputs = initializeInputs;\n\n  function getIdFromEl(el) {\n    var $el = $(el);\n    var bindingAdapter = $el.data(\"shiny-output-binding\");\n    if (!bindingAdapter)\n      return null;\n    else\n      return bindingAdapter.getId();\n  }\n\n\n  // Initialize all input objects in the document, before binding\n  initializeInputs(document);\n\n  // The input values returned by _bindAll() each have a structure like this:\n  //   { value: 123, opts: { ... } }\n  // We want to only keep the value. This is because when the initialValues is\n  // passed to ShinyApp.connect(), the ShinyApp object stores the\n  // initialValues object for the duration of the session, and the opts may\n  // have a reference to the DOM element, which would prevent it from being\n  // GC'd.\n  var initialValues = mapValues(_bindAll(document), x => x.value);\n\n  // The server needs to know the size of each image and plot output element,\n  // in case it is auto-sizing\n  $('.shiny-image-output, .shiny-plot-output, .shiny-report-size').each(function() {\n    var id = getIdFromEl(this);\n    if (this.offsetWidth !== 0 || this.offsetHeight !== 0) {\n      initialValues['.clientdata_output_' + id + '_width'] = this.offsetWidth;\n      initialValues['.clientdata_output_' + id + '_height'] = this.offsetHeight;\n    }\n  });\n\n  function getComputedBgColor(el) {\n    if (!el) {\n      // Top of document, can't recurse further\n      return null;\n    }\n\n    let bgColor = getStyle(el, \"background-color\");\n    let m = bgColor.match(/^rgba\\(\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*,\\s*([\\d.]+)\\s*\\)$/);\n    if (bgColor === \"transparent\" || (m && parseFloat(m[4]) === 0)) {\n      // No background color on this element. See if it has a background image.\n      let bgImage = getStyle(el, \"background-image\");\n      if (bgImage && bgImage !== \"none\") {\n        // Failed to detect background color, since it has a background image\n        return null;\n      } else {\n        // Recurse\n        return getComputedBgColor(el.parentElement);\n      }\n    }\n    return bgColor;\n  }\n\n  // Compute the color property of an a tag, scoped within the element\n  function getComputedLinkColor(el) {\n    let a = document.createElement(\"a\");\n    a.href = \"/\";\n    let div = document.createElement(\"div\");\n    div.style.setProperty(\"position\", \"absolute\", \"important\");\n    div.style.setProperty(\"top\", \"-1000px\", \"important\");\n    div.style.setProperty(\"left\", \"0\", \"important\");\n    div.style.setProperty(\"width\", \"30px\", \"important\");\n    div.style.setProperty(\"height\", \"10px\", \"important\");\n    div.appendChild(a);\n    el.appendChild(div);\n    let linkColor = getStyle(a, \"color\");\n    el.removeChild(div);\n    return linkColor;\n  }\n\n  function getComputedFont(el) {\n    let fontFamily = getStyle(el, \"font-family\");\n    let fontSize = getStyle(el, \"font-size\");\n    return {\n      families: fontFamily.replace(/\"/g, '').split(\", \"),\n      size: fontSize\n    };\n  }\n\n  $('.shiny-image-output, .shiny-plot-output, .shiny-report-theme').each(function() {\n    var id = getIdFromEl(this);\n    initialValues['.clientdata_output_' + id + '_bg'] = getComputedBgColor(this);\n    initialValues['.clientdata_output_' + id + '_fg'] = getStyle(this, \"color\");\n    initialValues['.clientdata_output_' + id + '_accent'] = getComputedLinkColor(this);\n    initialValues['.clientdata_output_' + id + '_font'] = getComputedFont(this);\n  });\n\n  function doSendImageSize() {\n    $('.shiny-image-output, .shiny-plot-output, .shiny-report-size').each(function() {\n      var id = getIdFromEl(this);\n      if (this.offsetWidth !== 0 || this.offsetHeight !== 0) {\n        inputs.setInput('.clientdata_output_' + id + '_width', this.offsetWidth);\n        inputs.setInput('.clientdata_output_' + id + '_height', this.offsetHeight);\n      }\n    });\n\n    $('.shiny-image-output, .shiny-plot-output, .shiny-report-theme').each(function() {\n      var id = getIdFromEl(this);\n      inputs.setInput('.clientdata_output_' + id + '_bg', getComputedBgColor(this));\n      inputs.setInput('.clientdata_output_' + id + '_fg', getStyle(this, \"color\"));\n      inputs.setInput('.clientdata_output_' + id + '_accent', getComputedLinkColor(this));\n      inputs.setInput('.clientdata_output_' + id + '_font', getComputedFont(this));\n    });\n\n    $('.shiny-bound-output').each(function() {\n      var $this = $(this), binding = $this.data('shiny-output-binding');\n      $this.trigger({\n        type: 'shiny:visualchange',\n        visible: !isHidden(this),\n        binding: binding\n      });\n      binding.onResize();\n    });\n  }\n  var sendImageSizeDebouncer = new Debouncer(null, doSendImageSize, 0);\n  function sendImageSize() {\n    sendImageSizeDebouncer.normalCall();\n  }\n  // Make sure sendImageSize actually gets called before the inputBatchSender\n  // sends data to the server.\n  inputBatchSender.lastChanceCallback.push(function() {\n    if (sendImageSizeDebouncer.isPending())\n      sendImageSizeDebouncer.immediateCall();\n  });\n\n  // Return true if the object or one of its ancestors in the DOM tree has\n  // style='display:none'; otherwise return false.\n  function isHidden(obj) {\n    // null means we've hit the top of the tree. If width or height is\n    // non-zero, then we know that no ancestor has display:none.\n    if (obj === null || obj.offsetWidth !== 0 || obj.offsetHeight !== 0) {\n      return false;\n    } else if (getStyle(obj, 'display') === 'none') {\n      return true;\n    } else {\n      return(isHidden(obj.parentNode));\n    }\n  }\n  var lastKnownVisibleOutputs = {};\n  // Set initial state of outputs to hidden, if needed\n  $('.shiny-bound-output').each(function() {\n    var id = getIdFromEl(this);\n    if (isHidden(this)) {\n      initialValues['.clientdata_output_' + id + '_hidden'] = true;\n    } else {\n      lastKnownVisibleOutputs[id] = true;\n      initialValues['.clientdata_output_' + id + '_hidden'] = false;\n    }\n  });\n  // Send update when hidden state changes\n  function doSendOutputHiddenState() {\n    var visibleOutputs = {};\n    $('.shiny-bound-output').each(function() {\n      var id = getIdFromEl(this);\n      delete lastKnownVisibleOutputs[id];\n      // Assume that the object is hidden when width and height are 0\n      var hidden = isHidden(this), evt = {\n        type: 'shiny:visualchange',\n        visible: !hidden\n      };\n      if (hidden) {\n        inputs.setInput('.clientdata_output_' + id + '_hidden', true);\n      } else {\n        visibleOutputs[id] = true;\n        inputs.setInput('.clientdata_output_' + id + '_hidden', false);\n      }\n      var $this = $(this);\n      evt.binding = $this.data('shiny-output-binding');\n      $this.trigger(evt);\n    });\n    // Anything left in lastKnownVisibleOutputs is orphaned\n    for (var name in lastKnownVisibleOutputs) {\n      if (lastKnownVisibleOutputs.hasOwnProperty(name))\n        inputs.setInput('.clientdata_output_' + name + '_hidden', true);\n    }\n    // Update the visible outputs for next time\n    lastKnownVisibleOutputs = visibleOutputs;\n  }\n  // sendOutputHiddenState gets called each time DOM elements are shown or\n  // hidden. This can be in the hundreds or thousands of times at startup.\n  // We'll debounce it, so that we do the actual work once per tick.\n  var sendOutputHiddenStateDebouncer = new Debouncer(null, doSendOutputHiddenState, 0);\n  function sendOutputHiddenState() {\n    sendOutputHiddenStateDebouncer.normalCall();\n  }\n  // We need to make sure doSendOutputHiddenState actually gets called before\n  // the inputBatchSender sends data to the server. The lastChanceCallback\n  // here does that - if the debouncer has a pending call, flush it.\n  inputBatchSender.lastChanceCallback.push(function() {\n    if (sendOutputHiddenStateDebouncer.isPending())\n      sendOutputHiddenStateDebouncer.immediateCall();\n  });\n\n  // Given a namespace and a handler function, return a function that invokes\n  // the handler only when e's namespace matches. For example, if the\n  // namespace is \"bs\", it would match when e.namespace is \"bs\" or \"bs.tab\".\n  // If the namespace is \"bs.tab\", it would match for \"bs.tab\", but not \"bs\".\n  function filterEventsByNamespace(namespace, handler) {\n    namespace = namespace.split(\".\");\n\n    return function(e) {\n      var eventNamespace = e.namespace.split(\".\");\n\n      // If any of the namespace strings aren't present in this event, quit.\n      for (var i=0; i<namespace.length; i++) {\n        if (eventNamespace.indexOf(namespace[i]) === -1)\n          return;\n      }\n\n      handler.apply(this, arguments);\n    };\n  }\n\n  // The size of each image may change either because the browser window was\n  // resized, or because a tab was shown/hidden (hidden elements report size\n  // of 0x0). It's OK to over-report sizes because the input pipeline will\n  // filter out values that haven't changed.\n  $(window).resize(debounce(500, sendImageSize));\n  // Need to register callbacks for each Bootstrap 3 class.\n  var bs3classes = ['modal', 'dropdown', 'tab', 'tooltip', 'popover', 'collapse'];\n  $.each(bs3classes, function(idx, classname) {\n    $(document.body).on('shown.bs.' + classname + '.sendImageSize', '*',\n      filterEventsByNamespace('bs', sendImageSize));\n    $(document.body).on('shown.bs.' + classname + '.sendOutputHiddenState ' +\n                 'hidden.bs.' + classname + '.sendOutputHiddenState',\n                 '*', filterEventsByNamespace('bs', sendOutputHiddenState));\n  });\n\n  // This is needed for Bootstrap 2 compatibility and for non-Bootstrap\n  // related shown/hidden events (like conditionalPanel)\n  $(document.body).on('shown.sendImageSize', '*', sendImageSize);\n  $(document.body).on('shown.sendOutputHiddenState hidden.sendOutputHiddenState', '*',\n               sendOutputHiddenState);\n\n  // Send initial pixel ratio, and update it if it changes\n  initialValues['.clientdata_pixelratio'] = pixelRatio();\n  $(window).resize(function() {\n    inputs.setInput('.clientdata_pixelratio', pixelRatio());\n  });\n\n  // Send initial URL\n  initialValues['.clientdata_url_protocol'] = window.location.protocol;\n  initialValues['.clientdata_url_hostname'] = window.location.hostname;\n  initialValues['.clientdata_url_port']     = window.location.port;\n  initialValues['.clientdata_url_pathname'] = window.location.pathname;\n\n  // Send initial URL search (query string) and update it if it changes\n  initialValues['.clientdata_url_search']   = window.location.search;\n\n  $(window).on('pushstate', function(e) {\n    inputs.setInput('.clientdata_url_search', window.location.search);\n  });\n\n  $(window).on('popstate', function(e) {\n    inputs.setInput('.clientdata_url_search', window.location.search);\n  });\n\n  // This is only the initial value of the hash. The hash can change, but\n  // a reactive version of this isn't sent because watching for changes can\n  // require polling on some browsers. The JQuery hashchange plugin can be\n  // used if this capability is important.\n  initialValues['.clientdata_url_hash_initial'] = window.location.hash;\n  initialValues['.clientdata_url_hash'] = window.location.hash;\n\n  $(window).on('hashchange', function(e) {\n    inputs.setInput('.clientdata_url_hash', window.location.hash);\n  });\n\n  // The server needs to know what singletons were rendered as part of\n  // the page loading\n  var singletonText = initialValues['.clientdata_singletons'] =\n      $('script[type=\"application/shiny-singletons\"]').text();\n  singletons.registerNames(singletonText.split(/,/));\n\n  var dependencyText = $('script[type=\"application/html-dependencies\"]').text();\n  $.each(dependencyText.split(/;/), function(i, depStr) {\n    var match = /\\s*^(.+)\\[(.+)\\]\\s*$/.exec(depStr);\n    if (match) {\n      registerDependency(match[1], match[2]);\n    }\n  });\n\n  // IE8 and IE9 have some limitations with data URIs\n  initialValues['.clientdata_allowDataUriScheme'] = typeof WebSocket !== 'undefined';\n\n  // We've collected all the initial values--start the server process!\n  inputsNoResend.reset(initialValues);\n  shinyapp.connect(initialValues);\n  $(document).one(\"shiny:connected\", function() {\n    initDeferredIframes();\n  });\n\n} // function initShiny()\n\n\n// Give any deferred iframes a chance to load.\nfunction initDeferredIframes() {\n  if (!window.Shiny || !window.Shiny.shinyapp || !window.Shiny.shinyapp.isConnected()) {\n    // If somehow we accidentally call this before the server connection is\n    // established, just ignore the call. At the time of this writing it\n    // doesn't happen, but it's easy to imagine a later refactoring putting\n    // us in this situation and it'd be hard to notice with either manual\n    // testing or automated tests, because the only effect is on HTTP request\n    // timing. (Update: Actually Aron saw this being called without even\n    // window.Shiny being defined, but it was hard to repro.)\n    return;\n  }\n\n  $(\".shiny-frame-deferred\").each(function (i, el) {\n    var $el = $(el);\n    $el.removeClass(\"shiny-frame-deferred\");\n    $el.attr(\"src\", $el.attr(\"data-deferred-src\"));\n    $el.attr(\"data-deferred-src\", null);\n  });\n}\n\n$(function() {\n  // Init Shiny a little later than document ready, so user code can\n  // run first (i.e. to register bindings)\n  setTimeout(initShiny, 1);\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/reactlog.js\n\n$(document).on('keydown', function(e) {\n  if (e.which !== 114 || (!e.ctrlKey && !e.metaKey) || (e.shiftKey || e.altKey))\n    return;\n  var url = 'reactlog?w=' + window.escape(exports.shinyapp.config.workerId) +\n    \"&s=\" + window.escape(exports.shinyapp.config.sessionId);\n  window.open(url);\n  e.preventDefault();\n});\n\n\n$(document).on('keydown', function(e) {\n  if (\n    // if not one of the key combos below\n    !(\n      // cmd/ctrl + fn + f4\n      (e.which === 115 && (e.ctrlKey || e.metaKey) && !e.shiftKey && !e.altKey) ||\n      // cmd/ctrl + shift + fn + f3\n      (e.which === 114 && (e.ctrlKey || e.metaKey) && e.shiftKey && !e.altKey)\n    )\n  ) {\n    return;\n  }\n\n  var url = 'reactlog/mark?w=' + window.escape(exports.shinyapp.config.workerId) +\n    \"&s=\" + window.escape(exports.shinyapp.config.sessionId);\n\n  // send notification\n  $.get(url, function(result) {\n    if (result !== \"marked\") return;\n\n    var html = '<span id=\"shiny-reactlog-mark-text\">Marked time point in reactlog</span>';\n\n    exports.notifications.show({\n      html: html,\n      closeButton: true,\n    });\n  }).fail(function() {\n    // found returned error while marking, should open webpage\n    window.open(url);\n  });\n\n  e.preventDefault();\n});\n","//---------------------------------------------------------------------\n// Source file: ../srcjs/_end.js\n\n})();\n"],"file":"shiny.js"}
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js-374-        var re = new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})");
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js:375:        if (re.exec(ua) !== null) rv = parseFloat(RegExp.$1);
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js-376-      }
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js-1558-      }); // jcheng 2017-07-28: This next part might look a little insane versus the
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js:1559:      // more obvious `$tabContent.append($divTag);`, but there's a method to the
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.js-1560-      // madness.
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.min.js-2-
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.min.js:3:"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}!function(){var $=jQuery,exports=window.Shiny=window.Shiny||{};exports.version="1.5.0";var origPushState=window.history.pushState;function escapeHTML(e){var t={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#039;","/":"&#x2F;"};return e.replace(/[&<>'"\/]/g,function(e){return t[e]})}function randomId(){return Math.floor(4294967296+64424509440*Math.random()).toString(16)}function strToBool(e){if(e&&e.toLowerCase)switch(e.toLowerCase()){case"true":return!0;case"false":return!1;default:return}}function getStyle(e,t){var n;if(e.currentStyle)n=e.currentStyle[t];else if(window.getComputedStyle){var i=document.defaultView.getComputedStyle(e,null);i&&(n=i.getPropertyValue(t))}return n}function padZeros(e,t){for(var n=e.toString();n.length<t;)n="0"+n;return n}function roundSignif(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:1;if(t<1)throw"Significant digits must be at least 1.";return parseFloat(e.toPrecision(t))}function parseDate(e){var t=new Date(e);return isNaN(t)&&(t=new Date(e.replace(/-/g,"/"))),t}function formatDateUTC(e){return e instanceof Date?e.getUTCFullYear()+"-"+padZeros(e.getUTCMonth()+1,2)+"-"+padZeros(e.getUTCDate(),2):null}function makeResizeFilter(t,n){var i={};return function(){var e={w:t.offsetWidth,h:t.offsetHeight};0===e.w&&0===e.h||e.w===i.w&&e.h===i.h||n((i=e).w,e.h)}}window.history.pushState=function(){var e=origPushState.apply(this,arguments);return $(document).trigger("pushstate"),e},$(document).on("submit","form:not([action])",function(e){e.preventDefault()});var _BlobBuilder=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder;function makeBlob(t){try{return new Blob(t)}catch(e){var n=new _BlobBuilder;return $.each(t,function(e,t){n.append(t)}),n.getBlob()}}function pixelRatio(){return window.devicePixelRatio?window.devicePixelRatio:1}function scopeExprToFunc(t){var e=t.replace(/[\\"']/g,"\\$&").replace(/\u0000/g,"\\0").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/[\b]/g,"\\b");try{var n=new Function("with (this) {\n        try {\n          return (".concat(t,");\n        } catch (e) {\n          console.error('Error evaluating expression: ").concat(e,"');\n          throw e;\n        }\n      }"))}catch(e){throw console.error("Error parsing expression: "+t),e}return function(e){return n.call(e)}}function asArray(e){return null==e?[]:$.isArray(e)?e:[e]}function mergeSort(e,t){function n(e,t,n){for(var i=0,a=0,r=[];i<t.length&&a<n.length;)e(t[i],n[a])<=0?r.push(t[i++]):r.push(n[a++]);for(;i<t.length;)r.push(t[i++]);for(;a<n.length;)r.push(n[a++]);return r}e=e.slice(0);for(var i=1;i<e.length;i*=2)for(var a=0;a<e.length;a+=2*i){var r=n(t,e.slice(a,a+i),e.slice(a+i,a+2*i)),o=[a,r.length];Array.prototype.push.apply(o,r),Array.prototype.splice.apply(e,o)}return e}var $escape=exports.$escape=function(e){return e.replace(/([!"#$%&'()*+,.\/:;<=>?@\[\\\]^`{|}~])/g,"\\$1")};function mapValues(e,t){var n={};for(var i in e)e.hasOwnProperty(i)&&(n[i]=t(e[i],i,e));return n}function isnan(e){return"number"==typeof e&&isNaN(e)}function _equal(e,t){if("object"===$.type(e)&&"object"===$.type(t)){if(Object.keys(e).length!==Object.keys(t).length)return;for(var n in e)if(!t.hasOwnProperty(n)||!_equal(e[n],t[n]))return;return 1}if("array"!==$.type(e)||"array"!==$.type(t))return e===t;if(e.length===t.length){for(var i=0;i<e.length;i++)if(!_equal(e[i],t[i]))return;return 1}}function equal(){if(arguments.length<2)throw new Error("equal requires at least two arguments.");for(var e=0;e<arguments.length-1;e++)if(!_equal(e<0||arguments.length<=e?void 0:arguments[e],e+1<0||arguments.length<=e+1?void 0:arguments[e+1]))return;return 1}function updateLabel(e,t){if(void 0!==e){if(1!==t.length)throw new Error("labelNode must be of length 1");$.isArray(e)&&0===e.length?t.addClass("shiny-label-null"):(t.text(e),t.removeClass("shiny-label-null"))}}exports.compareVersion=function(e,t,n){function r(e){return(e+"").replace(/-/,".").replace(/(\.0)+[^\.]*$/,"").split(".")}var i=function(e,t){e=r(e),t=r(t);for(var n,i=Math.min(e.length,t.length),a=0;a<i;a++)if(0!=(n=parseInt(e[a],10)-parseInt(t[a],10)))return n;return e.length-t.length}(e,n);if("=="===t)return 0===i;if(">="===t)return 0<=i;if(">"===t)return 0<i;if("<="===t)return i<=0;if("<"===t)return i<0;throw"Unknown operator: ".concat(t)};var browser=function(){var e=!1;/\bQt\//.test(window.navigator.userAgent)&&($(document.documentElement).addClass("qt"),e=!0),/\bQt\/5/.test(window.navigator.userAgent)&&/Linux/.test(window.navigator.userAgent)&&$(document.documentElement).addClass("qt5");var n="Microsoft Internet Explorer"===navigator.appName;return{isQt:e,isIE:n,IEVersion:function(){var e=-1;if(n){var t=navigator.userAgent;null!==new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})").exec(t)&&(e=parseFloat(RegExp.$1))}return e}()}}(),Invoker=function(e,t){this.target=e,this.func=t};(function(){this.normalCall=this.immediateCall=function(){this.func.apply(this.target,arguments)}}).call(Invoker.prototype);var Debouncer=function(e,t,n){this.target=e,this.func=t,this.delayMs=n,this.timerId=null,this.args=null};(function(){this.normalCall=function(){var e=this;this.$clearTimer(),this.args=arguments,this.timerId=setTimeout(function(){null!==e.timerId&&(e.$clearTimer(),e.$invoke())},this.delayMs)},this.immediateCall=function(){this.$clearTimer(),this.args=arguments,this.$invoke()},this.isPending=function(){return null!==this.timerId},this.$clearTimer=function(){null!==this.timerId&&(clearTimeout(this.timerId),this.timerId=null)},this.$invoke=function(){this.func.apply(this.target,this.args),this.args=null}}).call(Debouncer.prototype);var Throttler=function(e,t,n){this.target=e,this.func=t,this.delayMs=n,this.timerId=null,this.args=null};function debounce(e,t){var n,i,a=null;return function(){n=this,i=arguments,null!==a&&(clearTimeout(a),a=null),a=setTimeout(function(){null!==a&&(a=null,t.apply(n,i))},e)}}function throttle(e,t){return 1}(function(){this.normalCall=function(){var e=this;this.args=arguments,null===this.timerId&&(this.$invoke(),this.timerId=setTimeout(function(){null!==e.timerId&&(e.$clearTimer(),e.args&&e.normalCall.apply(e,e.args))},this.delayMs))},this.immediateCall=function(){this.$clearTimer(),this.args=arguments,this.$invoke()},this.isPending=function(){return null!==this.timerId},this.$clearTimer=function(){null!==this.timerId&&(clearTimeout(this.timerId),this.timerId=null)},this.$invoke=function(){this.func.apply(this.target,this.args),this.args=null}}).call(Throttler.prototype);var InputBatchSender=function(e){this.shinyapp=e,this.timerId=null,this.pendingData={},this.reentrant=!1,this.lastChanceCallback=[]};(function(){this.setInput=function(e,t,n){this.pendingData[e]=t,this.reentrant||("event"===n.priority?this.$sendNow():this.timerId||(this.timerId=setTimeout(this.$sendNow.bind(this),0)))},this.$sendNow=function(){this.reentrant&&console.trace("Unexpected reentrancy in InputBatchSender!"),this.reentrant=!0;try{this.timerId=null,$.each(this.lastChanceCallback,function(e,t){t()});var e=this.pendingData;this.pendingData={},this.shinyapp.sendInput(e)}finally{this.reentrant=!1}}}).call(InputBatchSender.prototype);var InputNoResendDecorator=function(e,t){this.target=e,this.lastSentValues=this.reset(t)};(function(){this.setInput=function(e,t,n){var i=splitInputNameType(e),a=i.name,r=i.inputType,o=JSON.stringify(t);"event"!==n.priority&&this.lastSentValues[a]&&this.lastSentValues[a].jsonValue===o&&this.lastSentValues[a].inputType===r||(this.lastSentValues[a]={jsonValue:o,inputType:r},this.target.setInput(e,t,n))},this.reset=function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t={};for(var n in e)if(e.hasOwnProperty(n)){var i=splitInputNameType(n),a=i.name,r=i.inputType;t[a]={jsonValue:JSON.stringify(e[n]),inputType:r}}this.lastSentValues=t}}).call(InputNoResendDecorator.prototype);var InputEventDecorator=function(e){this.target=e};(function(){this.setInput=function(e,t,n){var i=jQuery.Event("shiny:inputchanged"),a=splitInputNameType(e);if(i.name=a.name,i.inputType=a.inputType,i.value=t,i.binding=n.binding,i.el=n.el,i.priority=n.priority,$(n.el).trigger(i),!i.isDefaultPrevented()){var r=i.name;""!==i.inputType&&(r+=":"+i.inputType),this.target.setInput(r,i.value,{priority:n.priority})}}}).call(InputEventDecorator.prototype);var InputRateDecorator=function(e){this.target=e,this.inputRatePolicies={}};(function(){this.setInput=function(e,t,n){var i=splitInputNameType(e).name;this.$ensureInit(i),"deferred"!==n.priority?this.inputRatePolicies[i].immediateCall(e,t,n):this.inputRatePolicies[i].normalCall(e,t,n)},this.setRatePolicy=function(e,t,n){var i=splitInputNameType(e).name;"direct"===t?this.inputRatePolicies[i]=new Invoker(this,this.$doSetInput):"debounce"===t?this.inputRatePolicies[i]=new Debouncer(this,this.$doSetInput,n):"throttle"===t&&(this.inputRatePolicies[i]=new Throttler(this,this.$doSetInput,n))},this.$ensureInit=function(e){e in this.inputRatePolicies||this.setRatePolicy(e,"direct")},this.$doSetInput=function(e,t,n){this.target.setInput(e,t,n)}}).call(InputRateDecorator.prototype);var InputDeferDecorator=function(e){this.target=e,this.pendingInput={}};(function(){this.setInput=function(e,t,n){/^\./.test(e)?this.target.setInput(e,t,n):this.pendingInput[e]={value:t,opts:n}},this.submit=function(){for(var e in this.pendingInput)if(this.pendingInput.hasOwnProperty(e)){var t=this.pendingInput[e],n=t.value,i=t.opts;this.target.setInput(e,n,i)}}}).call(InputDeferDecorator.prototype);var InputValidateDecorator=function(e){this.target=e};function addDefaultInputOpts(e){if((e=$.extend({priority:"immediate",binding:null,el:null},e))&&void 0!==e.priority)switch(e.priority){case"deferred":case"immediate":case"event":break;default:throw new Error("Unexpected input value mode: '"+e.priority+"'")}return e}function splitInputNameType(e){var t=e.split(":");return{name:t[0],inputType:1<t.length?t[1]:""}}(function(){this.setInput=function(e,t,n){if(!e)throw"Can't set input with empty name.";n=addDefaultInputOpts(n),this.target.setInput(e,t,n)}}).call(InputValidateDecorator.prototype);var ShinyApp=function(){this.$socket=null,this.$inputValues={},this.$initialInput={},this.$bindings={},this.$values={},this.$errors={},this.$conditionals={},this.$pendingMessages=[],this.$activeRequests={},this.$nextRequestId=0,this.$allowReconnect=!1},Gg,Ng;function Hg(){var e=$("#shiny-reconnect-time");if(0!==e.length){var t=Math.floor((Gg-(new Date).getTime())/1e3);0<t?e.text(" in "+t+"s"):e.text("..."),setTimeout(Hg,1e3)}}function Pg(e){Qg(e).fadeOut(Ng,function(){exports.unbindAll(this),$(this).remove(),0===Sg().find(".shiny-notification").map(function(){return this.id.replace(/shiny-notification-/,"")}).get().length&&Sg().remove()})}function Qg(e){return e?Sg().find("#shiny-notification-"+$escape(e)):null}function Sg(){return $("#shiny-notification-panel")}function Wg(e){var t=Qg(e).data("removalCallback");t&&clearTimeout(t)}(function(){this.connect=function(e){if(this.$socket)throw"Connect was already called on this application object";this.$socket=this.createSocket(),this.$initialInput=e,$.extend(this.$inputValues,e),this.$updateConditionals()},this.isConnected=function(){return!!this.$socket};var scheduledReconnect=null;this.reconnect=function(){if(clearTimeout(scheduledReconnect),this.isConnected())throw"Attempted to reconnect, but already connected.";this.$socket=this.createSocket(),this.$initialInput=$.extend({},this.$inputValues),this.$updateConditionals()},this.createSocket=function(){var t=this,n=(exports.createSocket||function(){var e="ws:";"https:"===window.location.protocol&&(e="wss:");var t=window.location.pathname;/^([$#!&-;=?-[\]_a-z~]|%[0-9a-fA-F]{2})+$/.test(t)||(t=encodeURI(t),browser.isQt&&(t=encodeURI(t))),/\/$/.test(t)||(t+="/"),t+="websocket/";var n=new WebSocket(e+"//"+window.location.host+t);return n.binaryType="arraybuffer",n})(),i=!1;return n.onopen=function(){for(i=!0,$(document).trigger({type:"shiny:connected",socket:n}),t.onConnected(),n.send(JSON.stringify({method:"init",data:t.$initialInput}));t.$pendingMessages.length;){var e=t.$pendingMessages.shift();n.send(e)}},n.onmessage=function(e){t.dispatchMessage(e.data)},n.onclose=function(){i&&($(document).trigger({type:"shiny:disconnected",socket:n}),t.$notifyDisconnected()),t.onDisconnected(),t.$removeSocket()},n},this.sendInput=function(e){var t=JSON.stringify({method:"update",data:e});this.$sendMsg(t),$.extend(this.$inputValues,e),this.$updateConditionals()},this.$notifyDisconnected=function(){window.parent&&window.parent.postMessage("disconnected","*")},this.$removeSocket=function(){this.$socket=null},this.$scheduleReconnect=function(e){var t=this;scheduledReconnect=setTimeout(function(){t.reconnect()},e)};var reconnectDelay=(Ic=0,Jc=[1500,1500,2500,2500,5500,5500,10500],{next:function(){var e=Ic;return Jc.length<=e&&(e=Jc.length-1),Ic++,Jc[e]},reset:function(){Ic=0}}),Ic,Jc;function narrowScopeComponent(t,n){return Object.keys(t).filter(function(e){return 0===e.indexOf(n)}).map(function(e){return _defineProperty({},e.substring(n.length),t[e])}).reduce(function(e,t){return $.extend(e,t)},{})}function narrowScope(e,t){return t?{input:narrowScopeComponent(e.input,t),output:narrowScopeComponent(e.output,t)}:e}this.onDisconnected=function(){if(0===$("#shiny-disconnected-overlay").length&&$(document.body).append('<div id="shiny-disconnected-overlay"></div>'),!0===this.$allowReconnect&&!0===this.$socket.allowReconnect||"force"===this.$allowReconnect){var e=reconnectDelay.next();exports.showReconnectDialog(e),this.$scheduleReconnect(e)}},this.onConnected=function(){$("#shiny-disconnected-overlay").remove(),exports.hideReconnectDialog(),reconnectDelay.reset()},this.makeRequest=function(e,t,n,i,a){for(var r=this.$nextRequestId;this.$activeRequests[r];)r=(r+1)%1e9;this.$nextRequestId=r+1,this.$activeRequests[r]={onSuccess:n,onError:i};var o=JSON.stringify({method:e,args:t,tag:r});if(a){var s=function(e){var t=new ArrayBuffer(4);return new DataView(t).setUint32(0,e,!0),t},u=[];u.push(s(16908802));var l=makeBlob([o]);u.push(s(l.size)),u.push(l);for(var d=0;d<a.length;d++)u.push(s(a[d].byteLength||a[d].size||0)),u.push(a[d]);o=makeBlob(u)}this.$sendMsg(o)},this.$sendMsg=function(e){this.$socket.readyState?this.$socket.send(e):this.$pendingMessages.push(e)},this.receiveError=function(e,t){if(this.$errors[e]!==t){this.$errors[e]=t,delete this.$values[e];var n=this.$bindings[e],i=jQuery.Event("shiny:error");i.name=e,i.error=t,i.binding=n,$(n?n.el:document).trigger(i),!i.isDefaultPrevented()&&n&&n.onValueError&&n.onValueError(i.error)}},this.receiveOutput=function(e,t){var n=this.$bindings[e],i=jQuery.Event("shiny:value");if(i.name=e,i.value=t,i.binding=n,this.$values[e]!==t)return this.$values[e]=t,delete this.$errors[e],$(n?n.el:document).trigger(i),!i.isDefaultPrevented()&&n&&n.onValueChange(i.value),t;$(n?n.el:document).trigger(i)},this.bindOutput=function(e,t){if(!e)throw"Can't bind an element with no ID";if(this.$bindings[e])throw"Duplicate binding for ID "+e;return this.$bindings[e]=t,void 0!==this.$values[e]?t.onValueChange(this.$values[e]):void 0!==this.$errors[e]&&t.onValueError(this.$errors[e]),t},this.unbindOutput=function(e,t){return this.$bindings[e]===t&&(delete this.$bindings[e],!0)},this.$updateConditionals=function(){$(document).trigger({type:"shiny:conditional"});var e={};for(var t in this.$inputValues){if(this.$inputValues.hasOwnProperty(t))e[t.replace(/:.*/,"")]=this.$inputValues[t]}for(var n={input:e,output:this.$values},i=$(document).find("[data-display-if]"),a=0;a<i.length;a++){var r=$(i[a]),o=r.data("data-display-if-func");if(!o)o=scopeExprToFunc(r.attr("data-display-if")),r.data("data-display-if-func",o);var s=o(narrowScope(n,r.attr("data-ns-prefix")));s!==("none"!==r.css("display"))&&(s?(r.trigger("show"),r.show(),r.trigger("shown")):(r.trigger("hide"),r.hide(),r.trigger("hidden")))}};var messageHandlerOrder=[],messageHandlers={},customMessageHandlerOrder=[],customMessageHandlers={};function addMessageHandler(e,t){if(messageHandlers[e])throw'handler for message of type "'+e+'" already added.';if("function"!=typeof t)throw"handler must be a function.";if(1!==t.length)throw"handler must be a function that takes one argument.";messageHandlerOrder.push(e),messageHandlers[e]=t}function addCustomMessageHandler(e,t){if(customMessageHandlers[e]){var n=customMessageHandlerOrder.indexOf(e);-1!==n&&(customMessageHandlerOrder.splice(n,1),delete customMessageHandlers[e])}if("function"!=typeof t)throw"handler must be a function.";if(1!==t.length)throw"handler must be a function that takes one argument.";customMessageHandlerOrder.push(e),customMessageHandlers[e]=t}function getTabset(e){var t=$("#"+$escape(e));if(0===t.length)throw"There is no tabsetPanel (or navbarPage or navlistPanel) with id equal to '"+e+"'";return t}function getTabContent(e){var t=e.attr("data-tabsetid");return $("div.tab-content[data-tabsetid='"+$escape(t)+"']")}function getTargetTabs(e,t,n){var i="[data-value='"+$escape(n)+"']",a=e.find("a"+i),r=a.parent();if(0===r.length)throw"There is no tabPanel (or navbarMenu) with value (or menuName) equal to '"+n+"'";var o=[],s=[];if("dropdown"===a.attr("data-toggle")){var u=a.find("+ ul.dropdown-menu"),l=u.attr("data-tabsetid");u.find("a[data-toggle='tab']").parent("li").each(function(e,t){o.push($(t))});var d="div.tab-pane[id^='tab-"+$escape(l)+"']";t.find(d).each(function(e,t){s.push($(t))})}else s.push(t.find("div"+i));return{$liTag:r,$liTags:o,$divTags:s}}function ensureTabsetHasVisibleTab(e){if(0===e.find("li.active").not(".dropdown").length){var t=getFirstTab(e),n=e.data("shiny-input-binding"),i=jQuery.Event("shiny:updateinput");i.binding=n,e.trigger(i),n.setValue(e[0],t)}}function getFirstTab(e){return e.find("li:visible a[data-toggle='tab']").first().attr("data-value")||null}function tabApplyFunction(e,n){var i=2<arguments.length&&void 0!==arguments[2]&&arguments[2];$.each(e,function(e,t){"$liTag"===e?n(t):"$divTags"===e?$.each(t,function(e,t){n(t)}):i&&"$liTags"===e&&$.each(t,function(e,t){n(t)})})}exports.addCustomMessageHandler=addCustomMessageHandler,this.dispatchMessage=function(e){var t={};if("string"==typeof e)t=JSON.parse(e);else{for(var n=new DataView(e,0,1).getUint8(0),i=new DataView(e,1,n),a=[],r=0;r<n;r++)a.push(String.fromCharCode(i.getUint8(r)));var o=a.join("");e=e.slice(n+1),t.custom={},t.custom[o]=e}var s=jQuery.Event("shiny:message");s.message=t,$(document).trigger(s),s.isDefaultPrevented()||(this._sendMessagesToHandlers(s.message,messageHandlers,messageHandlerOrder),this.$updateConditionals())},this._sendMessagesToHandlers=function(e,t,n){for(var i=0;i<n.length;i++){var a=n[i];e.hasOwnProperty(a)&&t[a].call(this,e[a])}},addMessageHandler("values",function(e){for(var t in this.$bindings)this.$bindings.hasOwnProperty(t)&&this.$bindings[t].showProgress(!1);for(var n in e)e.hasOwnProperty(n)&&this.receiveOutput(n,e[n])}),addMessageHandler("errors",function(e){for(var t in e)e.hasOwnProperty(t)&&this.receiveError(t,e[t])}),addMessageHandler("inputMessages",function(e){for(var t=0;t<e.length;t++){var n=$(".shiny-bound-input#"+$escape(e[t].id)),i=n.data("shiny-input-binding");if(0<n.length){var a=n[0],r=jQuery.Event("shiny:updateinput");r.message=e[t].message,r.binding=i,$(a).trigger(r),r.isDefaultPrevented()||i.receiveMessage(a,r.message)}}}),addMessageHandler("javascript",function(message){eval(message)}),addMessageHandler("console",function(e){for(var t=0;t<e.length;t++)console.log&&console.log(e[t])}),addMessageHandler("progress",function(e){if(e.type&&e.message){var t=progressHandlers[e.type];t&&t.call(this,e.message)}}),addMessageHandler("notification",function(e){if("show"===e.type)exports.notifications.show(e.message);else{if("remove"!==e.type)throw"Unkown notification type: "+e.type;exports.notifications.remove(e.message)}}),addMessageHandler("modal",function(e){if("show"===e.type)exports.modal.show(e.message);else{if("remove"!==e.type)throw"Unkown modal type: "+e.type;exports.modal.remove()}}),addMessageHandler("response",function(e){var t=e.tag,n=this.$activeRequests[t];n&&(delete this.$activeRequests[t],"value"in e?n.onSuccess(e.value):n.onError(e.error))}),addMessageHandler("allowReconnect",function(e){if(!0!==e&&!1!==e&&"force"!==e)throw"Invalid value for allowReconnect: "+e;this.$allowReconnect=e}),addMessageHandler("custom",function(e){exports.oncustommessage&&exports.oncustommessage(e),this._sendMessagesToHandlers(e,customMessageHandlers,customMessageHandlerOrder)}),addMessageHandler("config",function(e){this.config={workerId:e.workerId,sessionId:e.sessionId},e.user&&(exports.user=e.user),$(document).trigger("shiny:sessioninitialized")}),addMessageHandler("busy",function(e){"busy"===e?($(document.documentElement).addClass("shiny-busy"),$(document).trigger("shiny:busy")):"idle"===e&&($(document.documentElement).removeClass("shiny-busy"),$(document).trigger("shiny:idle"))}),addMessageHandler("recalculating",function(e){if(e.hasOwnProperty("name")&&e.hasOwnProperty("status")){var t=this.$bindings[e.name];$(t?t.el:null).trigger({type:"shiny:"+e.status})}}),addMessageHandler("reload",function(e){window.location.reload()}),addMessageHandler("shiny-insert-ui",function(n){var e=$(n.selector);0===e.length?(console.warn('The selector you chose ("'+n.selector+'") could not be found in the DOM.'),exports.renderHtml(n.content.html,$([]),n.content.deps)):e.each(function(e,t){return exports.renderContent(t,n.content,n.where),n.multiple})}),addMessageHandler("shiny-remove-ui",function(n){$(n.selector).each(function(e,t){return exports.unbindAll(t,!0),$(t).remove(),n.multiple})}),addMessageHandler("shiny-insert-tab",function(r){var e=getTabset(r.inputId),t=e,n=getTabContent(t),i=e.attr("data-tabsetid"),a=$(r.divTag.html),o=$(r.liTag.html),s=o.find("> a"),u=null,l=null;null!==r.target&&(u=getTargetTabs(t,n,r.target),l=u.$liTag);var d,c,p=function(){{if(null!==r.menuName){var e=$("a.dropdown-toggle[data-value='"+$escape(r.menuName)+"']");if(0===e.length)throw"There is no navbarMenu with menuName equal to '"+r.menuName+"'";var t=e.find("+ ul.dropdown-menu"),n=t.attr("data-tabsetid");return{$tabset:t,id:n}}if(null!==r.target){var i=l.parent("ul");if(i.hasClass("dropdown-menu")){var a=i.attr("data-tabsetid");return{$tabset:i,id:a}}}}return null}();if(null!==p){if("dropdown"===s.attr("data-toggle"))throw"Cannot insert a navbarMenu inside another one";t=p.$tabset,i=p.id}if("tab"===s.attr("data-toggle")){var h="tab-"+i+"-"+(d=i,c=[0],t.find("> li").each(function(){var e=$(this).find("> a[data-toggle='tab']");if(0<e.length){var t=e.attr("href").replace(/.*(?=#[^\s]+$)/,"").replace("#tab-"+d+"-","");c.push(Number(t))}}),Math.max.apply(null,c)+1);o.find("> a").attr("href","#"+h),a.attr("id",h)}"before"===r.position?l?l.before(o):t.append(o):"after"===r.position&&(l?l.after(o):t.prepend(o)),exports.renderContent(o[0],{html:o.html(),deps:r.liTag.deps}),exports.renderContent(n[0],{html:"",deps:r.divTag.deps},"beforeend"),a.get().forEach(function(e){n[0].appendChild(e),exports.renderContent(e,e.innerHTML||e.textContent)}),r.select&&o.find("a").tab("show")}),addMessageHandler("shiny-remove-tab",function(e){var t=getTabset(e.inputId);tabApplyFunction(getTargetTabs(t,getTabContent(t),e.target),function(e){exports.unbindAll(e,!0),e.remove()}),ensureTabsetHasVisibleTab(t)}),addMessageHandler("shiny-change-tab-visibility",function(t){var e=getTabset(t.inputId);tabApplyFunction(getTargetTabs(e,getTabContent(e),t.target),function(e){"show"===t.type?e.css("display",""):"hide"===t.type&&(e.hide(),e.removeClass("active"))},!0),ensureTabsetHasVisibleTab(e)}),addMessageHandler("updateQueryString",function(e){if("replace"!==e.mode){var t=null;if("#"===e.queryString.charAt(0))t="hash";else{if("?"!==e.queryString.charAt(0))throw"The 'query' string must start with either '?' (to update the query string) or with '#' (to update the hash).";t="query"}var n=window.location.pathname,i=window.location.search,a=window.location.hash,r=n;r+="query"===t?e.queryString:i+e.queryString,window.history.pushState(null,null,r),-1!==e.queryString.indexOf("#")&&(t="hash"),window.location.hash!==a&&(t="hash"),"hash"===t&&$(document).trigger("hashchange")}else window.history.replaceState(null,null,e.queryString)}),addMessageHandler("resetBrush",function(e){exports.resetBrush(e.brushId)});var progressHandlers={binding:function(e){var t=e.id,n=this.$bindings[t];n&&($(n.el).trigger({type:"shiny:outputinvalidated",binding:n,name:t}),n.showProgress&&n.showProgress(!0))},open:function(e){if("notification"===e.style)exports.notifications.show({html:'<div id="shiny-progress-'.concat(e.id,'" class="shiny-progress-notification">')+'<div class="progress active" style="display: none;"><div class="progress-bar"></div></div><div class="progress-text"><span class="progress-message">message</span> <span class="progress-detail"></span></div></div>',id:e.id,duration:null});else if("old"===e.style){var t=$(".shiny-progress-container");0===t.length&&(t=$('<div class="shiny-progress-container"></div>'),$(document.body).append(t));var n=$(".shiny-progress.open").length,i=$('<div class="shiny-progress open"><div class="progress active"><div class="progress-bar bar"></div></div><div class="progress-text"><span class="progress-message">message</span><span class="progress-detail"></span></div></div>');i.attr("id",e.id),t.append(i);var a=i.find(".progress");a.css("top",n*a.height()+"px");var r=i.find(".progress-text");r.css("top",3*a.height()+n*r.outerHeight()+"px"),i.hide()}},update:function(e){if("notification"===e.style){if(0===(t=$("#shiny-progress-"+e.id)).length)return;void 0!==e.message&&t.find(".progress-message").text(e.message),void 0!==e.detail&&t.find(".progress-detail").text(e.detail),void 0!==e.value&&null!==e.value&&(t.find(".progress").show(),t.find(".progress-bar").width(100*e.value+"%"))}else if("old"===e.style){var t=$("#"+e.id+".shiny-progress");void 0!==e.message&&t.find(".progress-message").text(e.message),void 0!==e.detail&&t.find(".progress-detail").text(e.detail),void 0!==e.value&&null!==e.value&&(t.find(".progress").show(),t.find(".bar").width(100*e.value+"%")),t.fadeIn()}},close:function(e){if("notification"===e.style)exports.notifications.remove(e.id);else if("old"===e.style){var t=$("#"+e.id+".shiny-progress");t.removeClass("open"),t.fadeOut({complete:function(){t.remove(),0===$(".shiny-progress").length&&$(".shiny-progress-container").remove()}})}}};exports.progressHandlers=progressHandlers,this.getTestSnapshotBaseUrl=function(){var e=(0<arguments.length&&void 0!==arguments[0]?arguments[0]:{}).fullUrl,t=void 0===e||e,n=window.location,i="";return t&&(i=n.origin+n.pathname.replace(/\/[^/]*$/,"")),i+="/session/"+encodeURIComponent(this.config.sessionId)+"/dataobj/shinytest?w="+encodeURIComponent(this.config.workerId)+"&nonce="+randomId()}}).call(ShinyApp.prototype),exports.showReconnectDialog=(Gg=null,function(e){Gg=(new Date).getTime()+e,0<$("#shiny-reconnect-text").length||(exports.notifications.show({id:"reconnect",html:'<span id="shiny-reconnect-text">Attempting to reconnect</span><span id="shiny-reconnect-time"></span>',action:'<a id="shiny-reconnect-now" href="#" onclick="Shiny.shinyapp.reconnect();">Try now</a>',duration:null,closeButton:!1,type:"warning"}),Hg())}),exports.hideReconnectDialog=function(){exports.notifications.remove("reconnect")},exports.notifications=(Ng=250,{show:function(){var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{},t=e.html,n=void 0===t?"":t,i=e.action,a=void 0===i?"":i,r=e.deps,o=void 0===r?[]:r,s=e.duration,u=void 0===s?5e3:s,l=e.id,d=void 0===l?null:l,c=e.closeButton,p=void 0===c||c,h=e.type,g=void 0===h?null:h;d=d||randomId(),0<Sg().length||$(document.body).append('<div id="shiny-notification-panel">');var f=Qg(d);0===f.length&&(f=function(t){var e=Qg(t);return 0===e.length&&((e=$('<div id="shiny-notification-'.concat(t,'" class="shiny-notification">')+'<div class="shiny-notification-close">&times;</div><div class="shiny-notification-content"></div></div>')).find(".shiny-notification-close").on("click",function(e){e.preventDefault(),e.stopPropagation(),Pg(t)}),Sg().append(e)),e}(d));var m='<div class="shiny-notification-content-text">'.concat(n,"</div>")+'<div class="shiny-notification-content-action">'.concat(a,"</div>"),v=f.find(".shiny-notification-content");exports.renderContent(v,{html:m,deps:o});var y=f.attr("class").split(/\s+/).filter(function(e){return e.match(/^shiny-notification-/)}).join(" ");f.removeClass(y),g&&"default"!==g&&f.addClass("shiny-notification-"+g);var b=f.find(".shiny-notification-close");return p&&0===b.length?f.append('<div class="shiny-notification-close">&times;</div>'):p||0===b.length||b.remove(),u?function(e,t){Wg(e);var n=setTimeout(function(){Pg(e)},t);Qg(e).data("removalCallback",n)}(d,u):Wg(d),d},remove:Pg}),exports.modal={show:function(e){var t=0<arguments.length&&void 0!==e?e:{},n=t.html,i=void 0===n?"":n,a=t.deps,r=void 0===a?[]:a;$(".modal-backdrop").remove();var o=$("#shiny-modal-wrapper");0===o.length&&(o=$('<div id="shiny-modal-wrapper"></div>'),$(document.body).append(o),o.on("hidden.bs.modal",function(e){e.target===$("#shiny-modal")[0]&&(exports.unbindAll(o),o.remove())})),o.on("keydown.shinymodal",function(e){!1!==$("#shiny-modal").data("keyboard")&&27===e.keyCode&&(e.stopPropagation(),e.preventDefault())}),exports.renderContent(o,{html:i,deps:r})},remove:function(){var e=$("#shiny-modal-wrapper");e.off("keydown.shinymodal"),0<e.find(".modal").length?e.find(".modal").modal("hide"):(exports.unbindAll(e),e.remove())}};var FileProcessor=function(e){this.files=e,this.fileIndex=-1,this.aborted=!1,this.completed=!1,this.$run()};(function(){this.onBegin=function(e,t){setTimeout(t,0)},this.onFile=function(e,t){setTimeout(t,0)},this.onComplete=function(){},this.onAbort=function(){},this.abort=function(){this.completed||this.aborted||(this.aborted=!0,this.onAbort())},this.$getRun=function(){var e=this,t=!1;return function(){t||(t=!0,e.$run())}},this.$run=function(){if(!this.aborted&&!this.completed){if(this.fileIndex<0)return this.fileIndex=0,void this.onBegin(this.files,this.$getRun());if(this.fileIndex===this.files.length)return this.completed=!0,void this.onComplete();var e=this.files[this.fileIndex++];this.onFile(e,this.$getRun())}}}).call(FileProcessor.prototype);var BindingRegistry=function(){this.bindings=[],this.bindingNames={}};(function(){this.register=function(e,t,n){var i={binding:e,priority:n||0};this.bindings.unshift(i),t&&(this.bindingNames[t]=i,e.name=t)},this.setPriority=function(e,t){var n=this.bindingNames[e];if(!n)throw"Tried to set priority on unknown binding "+e;n.priority=t||0},this.getPriority=function(e){var t=this.bindingNames[e];return!!t&&t.priority},this.getBindings=function(){return mergeSort(this.bindings,function(e,t){return t.priority-e.priority})}}).call(BindingRegistry.prototype);var inputBindings=exports.inputBindings=new BindingRegistry,outputBindings=exports.outputBindings=new BindingRegistry,OutputBinding=exports.OutputBinding=function(){};(function(){this.find=function(e){throw"Not implemented"},this.getId=function(e){return e["data-input-id"]||e.id},this.onValueChange=function(e,t){this.clearError(e),this.renderValue(e,t)},this.onValueError=function(e,t){this.renderError(e,t)},this.renderError=function(e,t){if(this.clearError(e),""!==t.message){var n="shiny-output-error";null!==t.type&&(n=n+" "+$.map(asArray(t.type),function(e){return n+"-"+e}).join(" ")),$(e).addClass(n).text(t.message)}else $(e).empty()},this.clearError=function(e){$(e).attr("class",function(e,t){return t.replace(/(^|\s)shiny-output-error\S*/g,"")})},this.showProgress=function(e,t){var n="recalculating";t?$(e).addClass(n):$(e).removeClass(n)}}).call(OutputBinding.prototype);var textOutputBinding=new OutputBinding;$.extend(textOutputBinding,{find:function(e){return $(e).find(".shiny-text-output")},renderValue:function(e,t){$(e).text(t)}}),outputBindings.register(textOutputBinding,"shiny.textOutput");var imageOutputBinding=new OutputBinding;$.extend(imageOutputBinding,{find:function(e){return $(e).find(".shiny-image-output, .shiny-plot-output")},renderValue:function(e,r){var n,o=this.getId(e),s=$(e),u=s.find("img");if(0===u.length?(n=document.createElement("img"),s.append(n),u=$(n)):(n=u[0],u.trigger("reset")),r){var l={clickId:s.data("click-id"),clickClip:a(strToBool(s.data("click-clip")),!0),dblclickId:s.data("dblclick-id"),dblclickClip:a(strToBool(s.data("dblclick-clip")),!0),dblclickDelay:a(s.data("dblclick-delay"),400),hoverId:s.data("hover-id"),hoverClip:a(strToBool(s.data("hover-clip")),!0),hoverDelayType:a(s.data("hover-delay-type"),"debounce"),hoverDelay:a(s.data("hover-delay"),300),hoverNullOutside:a(strToBool(s.data("hover-null-outside")),!1),brushId:s.data("brush-id"),brushClip:a(strToBool(s.data("brush-clip")),!0),brushDelayType:a(s.data("brush-delay-type"),"debounce"),brushDelay:a(s.data("brush-delay"),300),brushFill:a(s.data("brush-fill"),"#666"),brushStroke:a(s.data("brush-stroke"),"#000"),brushOpacity:a(s.data("brush-opacity"),.3),brushDirection:a(s.data("brush-direction"),"xy"),brushResetOnNew:a(strToBool(s.data("brush-reset-on-new")),!1),coordmap:r.coordmap};$.each(r,function(e,t){null!==t&&"coordmap"!==e&&("src"===e&&t===n.getAttribute("src")&&n.removeAttribute("src"),n.setAttribute(e,t))});for(var t=0;t<n.attributes.length;t++){var i=n.attributes[t];i.specified&&!r.hasOwnProperty(i.name)&&n.removeAttribute(i.name)}l.coordmap||(l.coordmap={panels:[],dims:{height:null,width:null}}),s.off(".image_output"),u.off(".image_output"),u.off("load.shiny_image_interaction"),u.one("load.shiny_image_interaction",function(){imageutils.initCoordmap(s,l.coordmap);var e=imageutils.createClickInfo(s,l.dblclickId,l.dblclickDelay);if(s.on("mousedown.image_output",e.mousedown),browser.isIE&&8===browser.IEVersion&&s.on("dblclick.image_output",e.dblclickIE8),l.clickId){imageutils.disableDrag(s,u);var t=imageutils.createClickHandler(l.clickId,l.clickClip,l.coordmap);s.on("mousedown2.image_output",t.mousedown),s.on("resize.image_output",t.onResize),u.on("reset.image_output",t.onResetImg)}if(l.dblclickId){imageutils.disableDrag(s,u);var n=imageutils.createClickHandler(l.dblclickId,l.clickClip,l.coordmap);s.on("dblclick2.image_output",n.mousedown),s.on("resize.image_output",n.onResize),u.on("reset.image_output",n.onResetImg)}if(l.hoverId){imageutils.disableDrag(s,u);var i=imageutils.createHoverHandler(l.hoverId,l.hoverDelay,l.hoverDelayType,l.hoverClip,l.hoverNullOutside,l.coordmap);s.on("mousemove.image_output",i.mousemove),s.on("mouseout.image_output",i.mouseout),s.on("resize.image_output",i.onResize),u.on("reset.image_output",i.onResetImg)}if(l.brushId){imageutils.disableDrag(s,u);var a=imageutils.createBrushHandler(l.brushId,s,l,l.coordmap,o);s.on("mousedown.image_output",a.mousedown),s.on("mousemove.image_output",a.mousemove),s.on("resize.image_output",a.onResize),u.on("reset.image_output",a.onResetImg)}(l.clickId||l.dblclickId||l.hoverId||l.brushId)&&s.addClass("crosshair"),r.error&&console.log("Error on server extracting coordmap: "+r.error)})}else s.empty();function a(e,t){return void 0===e?t:e}},renderError:function(e,t){$(e).find("img").trigger("reset"),OutputBinding.prototype.renderError.call(this,e,t)},clearError:function(e){$(e).contents().filter(function(){return"IMG"!==this.tagName&&this.id!==e.id+"_brush"}).remove(),OutputBinding.prototype.clearError.call(this,e)},resize:function(e){$(e).find("img").trigger("resize")}}),outputBindings.register(imageOutputBinding,"shiny.imageOutput");var imageutils={};function findScalingRatio(e){var t=e[0].getBoundingClientRect();return{x:t.width/e.outerWidth(),y:t.height/e.outerHeight()}}function findOrigin(e){var t=e.offset(),n=findScalingRatio(e),i=parseInt(e.css("border-left-width"))+parseInt(e.css("padding-left")),a=parseInt(e.css("border-top-width"))+parseInt(e.css("padding-top"));return{x:t.left+n.x*i,y:t.top+n.y*a}}function findDims(e){var t=e.width()/e.outerWidth(),n=e.height()/e.outerHeight(),i=e[0].getBoundingClientRect();return{x:t*i.width,y:n*i.height}}imageutils.disableDrag=function(e,t){t.css("-webkit-user-drag","none"),t.off("dragstart.image_output"),t.on("dragstart.image_output",function(){return!1}),e.off("selectstart.image_output"),e.on("selectstart.image_output",function(){return!1})},imageutils.initPanelScales=function(e){function u(e,t,n,i,a,r){var o=(e-t)*((a-i)/(n-t))+i;if(r=r||!0){var s=Math.max(a,i),u=Math.min(a,i);s<o?o=s:o<u&&(o=u)}return o}function s(i,a,r,o,s){return{scale:function(e,t){return s&&(e=Math.log(e)/Math.log(s)),u(e,i,a,r,o,t)},scaleInv:function(e,t){var n=u(e,r,o,i,a,t);return s&&(n=Math.pow(s,n)),n}}}function t(i){var e=i.domain,t=i.range,n=i.log&&i.log.x?i.log.x:null,a=i.log&&i.log.y?i.log.y:null,r=s(e.left,e.right,t.left,t.right,n),o=s(e.bottom,e.top,t.bottom,t.top,a);i.scaleDataToImg=function(e,i){return mapValues(e,function(e,t){var n=t.substring(0,1);return"x"===n?r.scale(e,i):"y"===n?o.scale(e,i):null})},i.scaleImgToData=function(e,i){return mapValues(e,function(e,t){var n=t.substring(0,1);return"x"===n?r.scaleInv(e,i):"y"===n?o.scaleInv(e,i):null})},i.clipImg=function(e){var t={x:e.x,y:e.y},n=i.range;return e.x>n.right?t.x=n.right:e.x<n.left&&(t.x=n.left),e.y>n.bottom?t.y=n.bottom:e.y<n.top&&(t.y=n.top),t}}for(var n=0;n<e.length;n++){t(e[n])}},imageutils.initCoordmap=function(e,f){var n=e.find("img"),t=n[0];if(0===f.panels.length){var i={top:0,left:0,right:t.clientWidth-1,bottom:t.clientHeight-1};f.panels[0]={domain:i,range:i,mapping:{}}}f.dims.height=f.dims.height||t.naturalHeight,f.dims.width=f.dims.width||t.naturalWidth,imageutils.initPanelScales(f.panels),f.mouseOffsetCss=function(e){var t=findOrigin(n);return{x:e.pageX-t.x,y:e.pageY-t.y}},f.scaleCssToImg=function(i){var a=f.imgToCssScalingRatio();return mapValues(i,function(e,t){var n=t.substring(0,1);return"x"===n?i[t]/a.x:"y"===n?i[t]/a.y:null})},f.scaleImgToCss=function(i){var a=f.imgToCssScalingRatio();return mapValues(i,function(e,t){var n=t.substring(0,1);return"x"===n?i[t]*a.x:"y"===n?i[t]*a.y:null})},f.imgToCssScalingRatio=function(){var e=findDims(n);return{x:e.x/f.dims.width,y:e.y/f.dims.height}},f.cssToImgScalingRatio=function(){var e=f.imgToCssScalingRatio();return{x:1/e.x,y:1/e.y}},f.getPanelCss=function(e){for(var t,n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,i=f.scaleCssToImg(e),a=i.x,r=i.y,o=f.cssToImgScalingRatio(),s=n*o.x,u=n*o.y,l=[],d=[],c=0;c<f.panels.length;c++)if(a<=(t=f.panels[c].range).right+s&&a>=t.left-s&&r<=t.bottom+u&&r>=t.top-u){l.push(f.panels[c]);var p=0,h=0;a>t.right&&a<=t.right+s?p=a-t.right:a<t.left&&a>=t.left-s&&(p=a-t.left),r>t.bottom&&r<=t.bottom+u?h=r-t.bottom:r<t.top&&r>=t.top-u&&(h=r-t.top),d.push(Math.sqrt(Math.pow(p,2)+Math.pow(h,2)))}if(l.length){var g=Math.min.apply(null,d);for(c=0;c<l.length;c++)if(d[c]===g)return l[c]}return null},f.isInPanelCss=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0;return!!f.getPanelCss(e,t)},f.mouseCoordinateSender=function(o,s,u){return void 0===s&&(s=!0),void 0===u&&(u=!1),function(e){if(null!==e){var t={},n=f.mouseOffsetCss(e);if(!f.isInPanelCss(n)){if(u)return void exports.setInputValue(o,null);if(s)return;return t.coords_css=n,t.coords_img=f.scaleCssToImg(n),void exports.setInputValue(o,t,{priority:"event"})}var i=f.getPanelCss(n),a=f.scaleCssToImg(n),r=i.scaleImgToData(a);t.x=r.x,t.y=r.y,t.coords_css=n,t.coords_img=a,t.img_css_ratio=f.cssToImgScalingRatio(),$.extend(t,i.panel_vars),t.mapping=i.mapping,t.domain=i.domain,t.range=i.range,t.log=i.log,exports.setInputValue(o,t,{priority:"event"})}else exports.setInputValue(o,null)}}},imageutils.findBox=function(e,t){return{xmin:Math.min(e.x,t.x),xmax:Math.max(e.x,t.x),ymin:Math.min(e.y,t.y),ymax:Math.max(e.y,t.y)}},imageutils.shiftToRange=function(e,t,n){e instanceof Array||(e=[e]);var i=Math.max.apply(null,e),a=Math.min.apply(null,e),r=0;n<i?r=n-i:a<t&&(r=t-a);for(var o=[],s=0;s<e.length;s++)o[s]=e[s]+r;return o},imageutils.createClickInfo=function(i,t,n){var a=null,r=null;function o(e,t){var n=$.Event(e,{which:t.which,pageX:t.pageX,pageY:t.pageY});i.trigger(n)}function s(){r&&(o("mousedown2",r),r=null)}function u(e){r=e,a=setTimeout(function(){s()},n)}return{mousedown:function(e){1===e.which&&(t?null===r?u(e):(clearTimeout(a),r&&2<Math.abs(r.pageX-e.pageX)||2<Math.abs(r.pageY-e.pageY)?(s(),u(e)):(r=null,o("dblclick2",e))):o("mousedown2",e))},dblclickIE8:function(e){e.which=1,o("dblclick2",e)}}},imageutils.createClickHandler=function(e,t,n){var i=n.mouseCoordinateSender(e,t);return{mousedown:function(e){1===e.which&&i(e)},onResetImg:function(){i(null)},onResize:null}},imageutils.createHoverHandler=function(e,t,n,i,a,r){var o,s=r.mouseCoordinateSender(e,i,a);return o=new("throttle"===n?Throttler:Debouncer)(null,s,t),{mousemove:function(e){o.normalCall(e)},mouseout:a?function(){o.normalCall(null)}:function(){},onResetImg:function(){o.immediateCall(null)},onResize:null}},imageutils.createBrushHandler=function(n,i,a,r,o){var t,s=imageutils.createBrush(i,a,r,20);function u(e){i.removeClass("crosshair grabbable grabbing ns-resize ew-resize nesw-resize nwse-resize"),e&&i.addClass(e)}function e(){var e=s.boundsData();if(isNaN(e.xmin))return exports.setInputValue(n,null),void imageOutputBinding.find(document).trigger("shiny-internal:brushed",{brushId:n,outputId:null});var t=s.getPanel();$.extend(e,t.panel_vars),e.coords_css=s.boundsCss(),e.coords_img=r.scaleCssToImg(e.coords_css),e.img_css_ratio=r.cssToImgScalingRatio(),e.mapping=t.mapping,e.domain=t.domain,e.range=t.range,e.log=t.log,e.direction=a.brushDirection,e.brushId=n,e.outputId=o,exports.setInputValue(n,e),i.data("mostRecentBrush",!0),imageOutputBinding.find(document).trigger("shiny-internal:brushed",e)}function l(e){s.brushTo(r.mouseOffsetCss(e)),t.normalCall()}function d(e){s.dragTo(r.mouseOffsetCss(e)),t.normalCall()}function c(e){s.resizeTo(r.mouseOffsetCss(e)),t.normalCall()}function p(e){if(1===e.which){if($(document).off("mousemove.image_brush").off("mouseup.image_brush"),s.up(r.mouseOffsetCss(e)),s.stopBrushing(),u("crosshair"),s.down().x===s.up().x&&s.down().y===s.up().y)return s.reset(),void t.immediateCall();t.isPending()&&t.immediateCall()}}function h(e){1===e.which&&($(document).off("mousemove.image_brush").off("mouseup.image_brush"),s.up(r.mouseOffsetCss(e)),s.stopDragging(),u("grabbable"),t.isPending()&&t.immediateCall())}function g(e){1===e.which&&($(document).off("mousemove.image_brush").off("mouseup.image_brush"),s.up(r.mouseOffsetCss(e)),s.stopResizing(),t.isPending()&&t.immediateCall())}return i.on("shiny-internal:brushed.image_output",function(e,t){t.brushId===n&&t.outputId!==o&&(i.data("mostRecentBrush",!1),s.reset())}),t=new("throttle"===a.brushDelayType?Throttler:Debouncer)(null,e,a.brushDelay),a.brushResetOnNew||i.data("mostRecentBrush")&&(s.importOldBrush(),t.immediateCall()),{mousedown:function(e){if(!(s.isBrushing()||s.isDragging()||s.isResizing())&&1===e.which){var t=r.mouseOffsetCss(e);if(!a.brushClip||r.isInPanelCss(t,20))if(s.up({x:NaN,y:NaN}),s.down(t),s.isInResizeArea(t))s.startResizing(t),$(document).on("mousemove.image_brush",c).on("mouseup.image_brush",g);else if(s.isInsideBrush(t))s.startDragging(t),u("grabbing"),$(document).on("mousemove.image_brush",d).on("mouseup.image_brush",h);else{var n=r.getPanelCss(t,20);s.startBrushing(n.clipImg(r.scaleCssToImg(t))),$(document).on("mousemove.image_brush",l).on("mouseup.image_brush",p)}}},mousemove:function(e){var t=r.mouseOffsetCss(e);if(!(s.isBrushing()||s.isDragging()||s.isResizing()))if(s.isInResizeArea(t)){var n=s.whichResizeSides(t);n.left&&n.top||n.right&&n.bottom?u("nwse-resize"):n.left&&n.bottom||n.right&&n.top?u("nesw-resize"):n.left||n.right?u("ew-resize"):(n.top||n.bottom)&&u("ns-resize")}else s.isInsideBrush(t)?u("grabbable"):r.isInPanelCss(t,20)?u("crosshair"):u(null)},onResetImg:function(){a.brushResetOnNew&&i.data("mostRecentBrush")&&(s.reset(),t.immediateCall())},onResize:function(){s.onResize(),t.immediateCall()}}},imageutils.createBrush=function(r,l,o,e){var s=10,u=r[0],d=null,c={},p=o.scaleCssToImg,h=o.scaleImgToCss;function t(){c.brushing=!1,c.dragging=!1,c.resizing=!1,c.down={x:NaN,y:NaN},c.up={x:NaN,y:NaN},c.resizeSides={left:!1,right:!1,top:!1,bottom:!1},c.boundsCss={xmin:NaN,xmax:NaN,ymin:NaN,ymax:NaN},c.boundsData={xmin:NaN,xmax:NaN,ymin:NaN,ymax:NaN},c.panel=null,c.changeStartBounds={xmin:NaN,xmax:NaN,ymin:NaN,ymax:NaN},d&&d.remove()}function n(e){var t=c.boundsCss,n=t.xmin-s,i=t.xmax+s,a=t.ymin-s,r=t.ymax+s,o={left:!1,right:!1,top:!1,bottom:!1};return("xy"===l.brushDirection||"x"===l.brushDirection)&&e.y<=r&&e.y>=a&&(e.x<t.xmin&&e.x>=n?o.left=!0:e.x>t.xmax&&e.x<=i&&(o.right=!0)),("xy"===l.brushDirection||"y"===l.brushDirection)&&e.x<=i&&e.x>=n&&(e.y<t.ymin&&e.y>=a?o.top=!0:e.y>t.ymax&&e.y<=r&&(o.bottom=!0)),o}function g(e){if(void 0===e)return $.extend({},c.boundsCss);var t={x:e.xmin,y:e.ymin},n={x:e.xmax,y:e.ymax},i=c.panel,a=i.range;l.brushClip&&(t=h(i.clipImg(p(t))),n=h(i.clipImg(p(n)))),"xy"===l.brushDirection||("x"===l.brushDirection?(t.y=h({y:a.top}).y,n.y=h({y:a.bottom}).y):"y"===l.brushDirection&&(t.x=h({x:a.left}).x,n.x=h({x:a.right}).x)),c.boundsCss={xmin:t.x,xmax:n.x,ymin:t.y,ymax:n.y};var r=c.panel.scaleImgToData(p(t)),o=c.panel.scaleImgToData(p(n));c.boundsData=imageutils.findBox(r,o),c.boundsData=mapValues(c.boundsData,function(e){return roundSignif(e,14)}),d.data("bounds-data",c.boundsData),d.data("panel",c.panel)}function f(e){if(void 0===e)return $.extend({},c.boundsData);var t=h(c.panel.scaleDataToImg(e));t=mapValues(t,function(e){return roundSignif(e,13)}),g({xmin:Math.min(t.xmin,t.xmax),xmax:Math.max(t.xmin,t.xmax),ymin:Math.min(t.ymin,t.ymax),ymax:Math.max(t.ymin,t.ymax)})}function m(){var e=findOrigin(r.find("img")),t=c.boundsCss;d.offset({top:e.y+t.ymin,left:e.x+t.xmin}).outerWidth(t.xmax-t.xmin+1).outerHeight(t.ymax-t.ymin+1)}return t(),{reset:t,importOldBrush:function(){var e=r.find("#"+u.id+"_brush");if(0!==e.length){var t=e.data("bounds-data"),n=e.data("panel");if(t&&n){for(var i=0;i<o.panels.length;i++){var a=o.panels[i];if(equal(n.mapping,a.mapping)&&equal(n.panel_vars,a.panel_vars)){c.panel=o.panels[i];break}}null!==c.panel?(d=e,f(t),m()):e.remove()}}},isInsideBrush:function(e){var t=c.boundsCss;return e.x<=t.xmax&&e.x>=t.xmin&&e.y<=t.ymax&&e.y>=t.ymin},isInResizeArea:function(e){var t=n(e);return t.left||t.right||t.top||t.bottom},whichResizeSides:n,onResize:function(){var e=f();for(var t in e)if(isnan(e[t]))return;f(e),m()},boundsCss:g,boundsData:f,getPanel:function(){return c.panel},down:function(e){if(void 0===e)return c.down;c.down=e},up:function(e){if(void 0===e)return c.up;c.up=e},isBrushing:function(){return c.brushing},startBrushing:function(){c.brushing=!0,function(){d&&d.remove(),d=$(document.createElement("div")).attr("id",u.id+"_brush").css({"background-color":l.brushFill,opacity:l.brushOpacity,"pointer-events":"none",position:"absolute"}).hide();var e="1px solid "+l.brushStroke;"xy"===l.brushDirection?d.css({border:e}):"x"===l.brushDirection?d.css({"border-left":e,"border-right":e}):"y"===l.brushDirection&&d.css({"border-top":e,"border-bottom":e}),r.append(d),d.offset({x:0,y:0}).width(0).outerHeight(0)}(),c.panel=o.getPanelCss(c.down,e),g(imageutils.findBox(c.down,c.down)),m()},brushTo:function(e){g(imageutils.findBox(c.down,e)),d.show(),m()},stopBrushing:function(){c.brushing=!1,g(imageutils.findBox(c.down,c.up))},isDragging:function(){return c.dragging},startDragging:function(){c.dragging=!0,c.changeStartBounds=$.extend({},c.boundsCss)},dragTo:function(e){var t=e.x-c.down.x,n=e.y-c.down.y,i=c.changeStartBounds,a={xmin:i.xmin+t,xmax:i.xmax+t,ymin:i.ymin+n,ymax:i.ymax+n};if(l.brushClip){var r=c.panel.range,o=p(a),s=[o.xmin,o.xmax],u=[o.ymin,o.ymax];s=imageutils.shiftToRange(s,r.left,r.right),u=imageutils.shiftToRange(u,r.top,r.bottom),a=h({xmin:s[0],xmax:s[1],ymin:u[0],ymax:u[1]})}g(a),m()},stopDragging:function(){c.dragging=!1},isResizing:function(){return c.resizing},startResizing:function(){c.resizing=!0,c.changeStartBounds=$.extend({},c.boundsCss),c.resizeSides=n(c.down)},resizeTo:function(e){var t={x:e.x-c.down.x,y:e.y-c.down.y},n=p(t),i=p(c.changeStartBounds),a=c.panel.range;if(c.resizeSides.left){var r=imageutils.shiftToRange(i.xmin+n.x,a.left,i.xmax)[0];i.xmin=r}else if(c.resizeSides.right){var o=imageutils.shiftToRange(i.xmax+n.x,i.xmin,a.right)[0];i.xmax=o}if(c.resizeSides.top){var s=imageutils.shiftToRange(i.ymin+n.y,a.top,i.ymax)[0];i.ymin=s}else if(c.resizeSides.bottom){var u=imageutils.shiftToRange(i.ymax+n.y,i.ymin,a.bottom)[0];i.ymax=u}g(h(i)),m()},stopResizing:function(){c.resizing=!1}}},exports.resetBrush=function(e){exports.setInputValue(e,null),imageOutputBinding.find(document).trigger("shiny-internal:brushed",{brushId:e,outputId:null})};var htmlOutputBinding=new OutputBinding;$.extend(htmlOutputBinding,{find:function(e){return $(e).find(".shiny-html-output")},onValueError:function(e,t){exports.unbindAll(e),this.renderError(e,t)},renderValue:function(e,t){exports.renderContent(e,t)}}),outputBindings.register(htmlOutputBinding,"shiny.htmlOutput");var renderDependencies=exports.renderDependencies=function(e){e&&$.each(e,function(e,t){renderDependency(t)})};exports.renderContent=function(e,t){var n,i=2<arguments.length&&void 0!==arguments[2]?arguments[2]:"replace";"replace"===i&&exports.unbindAll(e);var a=[];null===t?n="":"string"==typeof t?n=t:"object"===_typeof(t)&&(n=t.html,a=t.deps||[]),exports.renderHtml(n,e,a,i);var r=e;if("replace"===i)exports.initializeInputs(e),exports.bindAll(e);else{var o=$(e).parent();if(0<o.length&&(r=o,"beforeBegin"===i||"afterEnd"===i)){var s=o.parent();0<s.length&&(r=s)}exports.initializeInputs(r),exports.bindAll(r)}},exports.renderHtml=function(e,t,n){var i=3<arguments.length&&void 0!==arguments[3]?arguments[3]:"replace";return renderDependencies(n),singletons.renderHtml(e,t,i)};var htmlDependencies={};function registerDependency(e,t){htmlDependencies[e]=t}function renderDependency(n){if(!htmlDependencies.hasOwnProperty(n.name)){registerDependency(n.name,n.version);var i=n.src.href,e=$("head").first();if(n.meta){var t=$.map(asArray(n.meta),function(e,t){var n=Object.keys(e)[0];return $("<meta>").attr("name",n).attr("content",e[n])});e.append(t)}if(n.stylesheet){var a=$.map(asArray(n.stylesheet),function(e){return $("<link rel='stylesheet' type='text/css'>").attr("href",i+"/"+encodeURI(e))});e.append(a)}if(n.script){var r=$.map(asArray(n.script),function(e){return $("<script>").attr("src",i+"/"+encodeURI(e))});e.append(r)}if(n.attachment){var o=n.attachment;if("string"==typeof o&&(o=[o]),$.isArray(o)){var s={};$.each(o,function(e,t){s[e+1+""]=t}),o=s}var u=$.map(o,function(e,t){return $("<link rel='attachment'>").attr("id",n.name+"-"+t+"-attachment").attr("href",i+"/"+encodeURI(e))});e.append(u)}if(n.head){var l=$("<head></head>");l.html(n.head),e.append(l.children())}return 1}}var singletons={knownSingletons:{},renderHtml:function(e,t,n){var i=this._processHtml(e);return this._addToHead(i.head),this.register(i.singletons),"replace"===n?$(t).html(i.html):t.insertAdjacentHTML(n,i.html),i},register:function(e){$.extend(this.knownSingletons,e)},registerNames:function(e){if("string"==typeof e)this.knownSingletons[e]=!0;else if(e instanceof Array)for(var t=0;t<e.length;t++)this.knownSingletons[e[t]]=!0},_addToHead:function(e){if(0<e.length)for(var t=$("<div>"+e+"</div>")[0],n=$("head");t.hasChildNodes();)n.append(t.firstChild)},_processHtml:function(e){for(var t,a=this,r={},n=function(e,t,n,i){return a.knownSingletons[n]||r[n]?"":(r[n]=!0,i)};t=e.replace(a._reSingleton,n),e.length!==t.length;)e=t;for(var i=[],o=function(e,t){return i.push(t),""};t=e.replace(a._reHead,o),e.length!==t.length;)e=t;return{html:e,head:i.join("\n"),singletons:r}},_reSingleton:/<!--(SHINY.SINGLETON\[([\w]+)\])-->([\s\S]*?)<!--\/\1-->/,_reHead:/<head(?:\s[^>]*)?>([\s\S]*?)<\/head>/},downloadLinkOutputBinding=new OutputBinding;$.extend(downloadLinkOutputBinding,{find:function(e){return $(e).find("a.shiny-download-link")},renderValue:function(e,t){$(e).attr("href",t)}}),outputBindings.register(downloadLinkOutputBinding,"shiny.downloadLink"),$(document).on("click.shinyDownloadLink","a.shiny-download-link",function(e){var t=jQuery.Event("shiny:filedownload");t.name=this.id,t.href=this.href,$(document).trigger(t)});var datatableOutputBinding=new OutputBinding;$.extend(datatableOutputBinding,{find:function(e){return $(e).find(".shiny-datatable-output")},onValueError:function(e,t){exports.unbindAll(e),this.renderError(e,t)},renderValue:function renderValue(el,_data){var $el=$(el).empty();if(_data&&_data.colnames){var colnames=$.makeArray(_data.colnames),header=$.map(colnames,function(e){return"<th>"+e+"</th>"}).join("");header="<thead><tr>"+header+"</tr></thead>";var footer="";null!==_data.options&&!1===_data.options.searching||(footer=$.map(colnames,function(e){return'<th><input type="text" placeholder="'+escapeHTML(e.replace(/(<([^>]+)>)/gi,""))+'" /></th>'}).join(""),footer="<tfoot>"+footer+"</tfoot>");var content='<table class="table table-striped table-hover">'+header+footer+"</table>";$el.append(content),_data.evalOptions&&$.each(_data.evalOptions,function(i,x){_data.options[x]=eval("("+_data.options[x]+")")});var searchCI=null===_data.options||void 0===_data.options.search||!1!==_data.options.search.caseInsensitive,oTable=$(el).children("table").DataTable($.extend({processing:!0,serverSide:!0,order:[],orderClasses:!1,pageLength:25,ajax:{url:_data.action,type:"POST",data:function(e){e.search.caseInsensitive=searchCI,e.escape=_data.escape}}},_data.options));if("string"==typeof _data.callback){var callback=eval("("+_data.callback+")");"function"==typeof callback&&callback(oTable)}$el.find("label input").first().unbind("keyup").keyup(debounce(_data.searchDelay,function(){oTable.search(this.value).draw()}));var searchInputs=$el.find("tfoot input");0<searchInputs.length&&($.each(oTable.settings()[0].aoColumns,function(e,t){t.bSearchable||searchInputs.eq(e).hide()}),searchInputs.keyup(debounce(_data.searchDelay,function(){oTable.column(searchInputs.index(this)).search(this.value).draw()}))),$el.parents(".tab-content").css("overflow","visible")}}}),outputBindings.register(datatableOutputBinding,"shiny.datatableOutput");var OutputBindingAdapter=function(n,i){this.el=n,(this.binding=i).resize&&(this.onResize=makeResizeFilter(n,function(e,t){i.resize(n,e,t)}))};(function(){this.getId=function(){return this.binding.getId(this.el)},this.onValueChange=function(e){this.binding.onValueChange(this.el,e)},this.onValueError=function(e){this.binding.onValueError(this.el,e)},this.showProgress=function(e){this.binding.showProgress(this.el,e)},this.onResize=function(){}}).call(OutputBindingAdapter.prototype);var InputBinding=exports.InputBinding=function(){};(function(){this.find=function(e){throw"Not implemented"},this.getId=function(e){return e["data-input-id"]||e.id},this.getType=function(){return!1},this.getValue=function(e){throw"Not implemented"},this.subscribe=function(e,t){},this.unsubscribe=function(e){},this.receiveMessage=function(e,t){throw"Not implemented"},this.getState=function(e,t){throw"Not implemented"},this.getRatePolicy=function(){return null},this.initialize=function(e){},this.dispose=function(e){}}).call(InputBinding.prototype);var textInputBinding=new InputBinding;$.extend(textInputBinding,{find:function(e){return $(e).find('input[type="text"], input[type="search"], input[type="url"], input[type="email"]').not('input[type="text"][id$="-selectized"]')},getId:function(e){return InputBinding.prototype.getId.call(this,e)||e.name},getValue:function(e){return e.value},setValue:function(e,t){e.value=t},subscribe:function(e,t){$(e).on("keyup.textInputBinding input.textInputBinding",function(e){t(!0)}),$(e).on("change.textInputBinding",function(e){t(!1)})},unsubscribe:function(e){$(e).off(".textInputBinding")},receiveMessage:function(e,t){t.hasOwnProperty("value")&&this.setValue(e,t.value),updateLabel(t.label,this._getLabelNode(e)),t.hasOwnProperty("placeholder")&&(e.placeholder=t.placeholder),$(e).trigger("change")},getState:function(e){return{label:this._getLabelNode(e).text(),value:e.value,placeholder:e.placeholder}},getRatePolicy:function(){return{policy:"debounce",delay:250}},_getLabelNode:function(e){return $(e).parent().find('label[for="'+$escape(e.id)+'"]')}}),inputBindings.register(textInputBinding,"shiny.textInput");var textareaInputBinding={};$.extend(textareaInputBinding,textInputBinding,{find:function(e){return $(e).find("textarea")}}),inputBindings.register(textareaInputBinding,"shiny.textareaInput");var passwordInputBinding={};$.extend(passwordInputBinding,textInputBinding,{find:function(e){return $(e).find('input[type="password"]')},getType:function(){return"shiny.password"}}),inputBindings.register(passwordInputBinding,"shiny.passwordInput");var numberInputBinding={};$.extend(numberInputBinding,textInputBinding,{find:function(e){return $(e).find('input[type="number"]')},getValue:function(e){var t=$(e).val();return/^\s*$/.test(t)?null:isNaN(t)?t:+t},setValue:function(e,t){e.value=t},getType:function(){return"shiny.number"},receiveMessage:function(e,t){t.hasOwnProperty("value")&&(e.value=t.value),t.hasOwnProperty("min")&&(e.min=t.min),t.hasOwnProperty("max")&&(e.max=t.max),t.hasOwnProperty("step")&&(e.step=t.step),updateLabel(t.label,this._getLabelNode(e)),$(e).trigger("change")},getState:function(e){return{label:this._getLabelNode(e).text(),value:this.getValue(e),min:Number(e.min),max:Number(e.max),step:Number(e.step)}},_getLabelNode:function(e){return $(e).parent().find('label[for="'+$escape(e.id)+'"]')}}),inputBindings.register(numberInputBinding,"shiny.numberInput");var checkboxInputBinding=new InputBinding;function forceIonSliderUpdate(e){e.$cache&&e.$cache.input?e.$cache.input.trigger("change"):console.log("Couldn't force ion slider to update")}function getTypePrettifyer(e,t,n){var i;return"date"===e?(i=strftime.utc(),function(e){return i(t,new Date(e))}):"datetime"===e?(i=n?strftime.timezone(n):strftime,function(e){return i(t,new Date(e))}):function(e){return formatNumber(e,this.prettify_separator)}}$.extend(checkboxInputBinding,{find:function(e){return $(e).find('input[type="checkbox"]')},getValue:function(e){return e.checked},setValue:function(e,t){e.checked=t},subscribe:function(e,t){$(e).on("change.checkboxInputBinding",function(e){t(!0)})},unsubscribe:function(e){$(e).off(".checkboxInputBinding")},getState:function(e){return{label:$(e).parent().find("span").text(),value:e.checked}},receiveMessage:function(e,t){t.hasOwnProperty("value")&&(e.checked=t.value),t.hasOwnProperty("label")&&$(e).parent().find("span").text(t.label),$(e).trigger("change")}}),inputBindings.register(checkboxInputBinding,"shiny.checkboxInput");var sliderInputBinding={};function formatNumber(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:",",n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:".",i=e.toString().split(".");return i[0]=i[0].replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g,"$1"+t),1===i.length?i[0]:2===i.length?i[0]+n+i[1]:""}$.extend(sliderInputBinding,textInputBinding,{find:function(e){return $.fn.ionRangeSlider?$(e).find("input.js-range-slider"):[]},getType:function(e){var t=$(e).data("data-type");return"date"===t?"shiny.date":"datetime"===t&&"shiny.datetime"},getValue:function(e){var t,n=$(e),i=$(e).data("ionRangeSlider").result,a=n.data("data-type");return t="date"===a?function(e){return formatDateUTC(new Date(+e))}:"datetime"===a?function(e){return e/1e3}:function(e){return+e},2===this._numValues(e)?[t(i.from),t(i.to)]:t(i.from)},setValue:function(e,t){var n=$(e),i=n.data("ionRangeSlider");n.data("immediate",!0);try{2===this._numValues(e)&&t instanceof Array?i.update({from:t[0],to:t[1]}):i.update({from:t}),forceIonSliderUpdate(i)}finally{n.data("immediate",!1)}},subscribe:function(t,n){$(t).on("change.sliderInputBinding",function(e){n(!$(t).data("immediate")&&!$(t).data("animating"))})},unsubscribe:function(e){$(e).off(".sliderInputBinding")},receiveMessage:function(e,t){var n=$(e),i=n.data("ionRangeSlider"),a={};t.hasOwnProperty("value")&&(2===this._numValues(e)&&t.value instanceof Array?(a.from=t.value[0],a.to=t.value[1]):a.from=t.value);for(var r=["min","max","step"],o=0;o<r.length;o++){var s=r[o];t.hasOwnProperty(s)&&(a[s]=t[s])}updateLabel(t.label,this._getLabelNode(e));var u=["data-type","time-format","timezone"];for(o=0;o<u.length;o++){var l=u[o];t.hasOwnProperty(l)&&n.data(l,t[l])}var d=n.data("data-type"),c=n.data("time-format"),p=n.data("timezone");a.prettify=getTypePrettifyer(d,c,p),n.data("immediate",!0);try{i.update(a),forceIonSliderUpdate(i)}finally{n.data("immediate",!1)}},getRatePolicy:function(){return{policy:"debounce",delay:250}},getState:function(){},initialize:function(e){var t={},n=$(e),i=n.data("data-type"),a=n.data("time-format"),r=n.data("timezone");t.prettify=getTypePrettifyer(i,a,r),n.ionRangeSlider(t)},_getLabelNode:function(e){return $(e).parent().find('label[for="'+$escape(e.id)+'"]')},_numValues:function(e){return"double"===$(e).data("ionRangeSlider").options.type?2:1}}),inputBindings.register(sliderInputBinding,"shiny.sliderInput"),$(document).on("click",".slider-animate-button",function(e){e.preventDefault();var t=$(this),n=$("#"+$escape(t.attr("data-target-id"))),i=void 0!==t.attr("data-loop")&&!/^\s*false\s*$/i.test(t.attr("data-loop")),a=t.attr("data-interval");if(a=isNaN(a)?1500:+a,n.data("animTimer"))clearTimeout(n.data("animTimer")),n.removeData("animTimer"),t.attr("title","Play"),t.removeClass("playing"),n.removeData("animating");else{var r,o;if(n.hasClass("jslider"))(r=n.slider()).canStepNext()||r.resetToStart(),o=setInterval(function(){i&&!r.canStepNext()?r.resetToStart():(r.stepNext(),i||r.canStepNext()||t.click())},a);else{r=n.data("ionRangeSlider");var s=function(){return"double"===r.options.type?r.result.to<r.result.max:r.result.from<r.result.max},u=function(){var e={from:r.result.min};"double"===r.options.type&&(e.to=e.from+(r.result.to-r.result.from)),r.update(e),forceIonSliderUpdate(r)};s()||u(),o=setInterval(function(){var e;i&&!s()?u():(e={from:Math.min(r.result.max,r.result.from+r.options.step)},"double"===r.options.type&&(e.to=Math.min(r.result.max,r.result.to+r.options.step)),r.update(e),forceIonSliderUpdate(r),i||s()||t.click())},a)}n.data("animTimer",o),t.attr("title","Pause"),t.addClass("playing"),n.data("animating",!0)}});var dateInputBinding=new InputBinding;$.extend(dateInputBinding,{find:function(e){return $(e).find(".shiny-date-input")},getType:function(){return"shiny.date"},getValue:function(e){return formatDateUTC($(e).find("input").bsDatepicker("getUTCDate"))},setValue:function(e,t){if(null!==t){var n=this._newDate(t);isNaN(n)||$(e).find("input").bsDatepicker("setUTCDate",n)}else $(e).find("input").val("").bsDatepicker("update")},getState:function(e){var t=$(e).find("input"),n=t.data("datepicker").startDate,i=t.data("datepicker").endDate;n=n===-1/0?null:formatDateUTC(n),i=i===1/0?null:formatDateUTC(i);var a=t.data("datepicker").startViewMode;return 2===a?a="decade":1===a?a="year":0===a&&(a="month"),{label:this._getLabelNode(e).text(),value:this.getValue(e),valueString:t.val(),min:n,max:i,language:t.data("datepicker").language,weekstart:t.data("datepicker").weekStart,format:this._formatToString(t.data("datepicker").format),startview:a}},receiveMessage:function(e,t){var n=$(e).find("input");updateLabel(t.label,this._getLabelNode(e)),t.hasOwnProperty("min")&&this._setMin(n[0],t.min),t.hasOwnProperty("max")&&this._setMax(n[0],t.max),t.hasOwnProperty("value")&&this.setValue(e,t.value),$(e).trigger("change")},subscribe:function(e,t){$(e).on("keyup.dateInputBinding input.dateInputBinding",function(e){t(!0)}),$(e).on("changeDate.dateInputBinding change.dateInputBinding",function(e){t(!1)})},unsubscribe:function(e){$(e).off(".dateInputBinding")},getRatePolicy:function(){return{policy:"debounce",delay:250}},initialize:function(e){var t=$(e).find("input"),n=t.data("initial-date");null==n&&(n=this._dateAsUTC(new Date)),this.setValue(e,n),void 0!==t.data("min-date")&&this._setMin(t[0],t.data("min-date")),void 0!==t.data("max-date")&&this._setMax(t[0],t.data("max-date"))},_getLabelNode:function(e){return $(e).find('label[for="'+$escape(e.id)+'"]')},_formatToString:function(e){for(var t="",n=0;n<e.parts.length;n++)t+=e.separators[n]+e.parts[n];return t+=e.separators[n]},_setMin:function(e,t){if(void 0!==t)if(null!==t){if(null!==(t=this._newDate(t))&&(t=this._UTCDateAsLocal(t),!isNaN(t))){var n=$(e).bsDatepicker("getUTCDate");$(e).bsDatepicker("setStartDate",t),$(e).bsDatepicker("setUTCDate",n),"function"==typeof t.toDateString&&"function"==typeof n.toDateString&&t.toDateString()===n.toDateString()&&($(e).bsDatepicker("setStartDate",null),$(e).bsDatepicker("setUTCDate",n),$(e).bsDatepicker("setStartDate",t))}}else $(e).bsDatepicker("setStartDate",null)},_setMax:function(e,t){if(void 0!==t)if(null!==t){if(null!==(t=this._newDate(t))&&(t=this._UTCDateAsLocal(t),!isNaN(t))){var n=$(e).bsDatepicker("getUTCDate");$(e).bsDatepicker("setEndDate",t),$(e).bsDatepicker("setUTCDate",n),"function"==typeof t.toDateString&&"function"==typeof n.toDateString&&t.toDateString()===n.toDateString()&&($(e).bsDatepicker("setEndDate",null),$(e).bsDatepicker("setUTCDate",n),$(e).bsDatepicker("setEndDate",t))}}else $(e).bsDatepicker("setEndDate",null)},_newDate:function(e){if(e instanceof Date)return e;if(!e)return null;var t=parseDate(e);return isNaN(t)?null:new Date(t.getTime())},_dateAsUTC:function(e){return new Date(e.getTime()-6e4*e.getTimezoneOffset())},_UTCDateAsLocal:function(e){return new Date(e.getTime()+6e4*e.getTimezoneOffset())}}),inputBindings.register(dateInputBinding,"shiny.dateInput");var dateRangeInputBinding={};$.extend(dateRangeInputBinding,dateInputBinding,{find:function(e){return $(e).find(".shiny-date-range-input")},getValue:function(e){var t=$(e).find("input"),n=t.eq(0).bsDatepicker("getUTCDate"),i=t.eq(1).bsDatepicker("getUTCDate");return[formatDateUTC(n),formatDateUTC(i)]},setValue:function(e,t){if(t instanceof Object){var n=$(e).find("input");if(void 0!==t.start)if(null===t.start)n.eq(0).val("").bsDatepicker("update");else{var i=this._newDate(t.start);n.eq(0).bsDatepicker("setUTCDate",i)}if(void 0!==t.end)if(null===t.end)n.eq(1).val("").bsDatepicker("update");else{var a=this._newDate(t.end);n.eq(1).bsDatepicker("setUTCDate",a)}}},getState:function(e){var t=$(e).find("input"),n=t.eq(0),i=t.eq(1),a=n.bsDatepicker("getStartDate"),r=n.bsDatepicker("getEndDate");a=a===-1/0?null:formatDateUTC(a),r=r===1/0?null:formatDateUTC(r);var o=n.data("datepicker").startView;return 2===o?o="decade":1===o?o="year":0===o&&(o="month"),{label:this._getLabelNode(e).text(),value:this.getValue(e),valueString:[n.val(),i.val()],min:a,max:r,weekstart:n.data("datepicker").weekStart,format:this._formatToString(n.data("datepicker").format),language:n.data("datepicker").language,startview:o}},receiveMessage:function(e,t){var n=$(e),i=n.find("input"),a=i.eq(0),r=i.eq(1);updateLabel(t.label,this._getLabelNode(e)),t.hasOwnProperty("min")&&(this._setMin(a[0],t.min),this._setMin(r[0],t.min)),t.hasOwnProperty("max")&&(this._setMax(a[0],t.max),this._setMax(r[0],t.max)),t.hasOwnProperty("value")&&this.setValue(e,t.value),n.trigger("change")},initialize:function(e){var t=$(e).find("input"),n=t.eq(0),i=t.eq(1),a=n.data("initial-date"),r=i.data("initial-date");null==a&&(a=this._dateAsUTC(new Date)),null==r&&(r=this._dateAsUTC(new Date)),this.setValue(e,{start:a,end:r}),this._setMin(n[0],n.data("min-date")),this._setMin(i[0],n.data("min-date")),this._setMax(n[0],i.data("max-date")),this._setMax(i[0],i.data("max-date"))},subscribe:function(e,t){$(e).on("keyup.dateRangeInputBinding input.dateRangeInputBinding",function(e){t(!0)}),$(e).on("changeDate.dateRangeInputBinding change.dateRangeInputBinding",function(e){t(!1)})},unsubscribe:function(e){$(e).off(".dateRangeInputBinding")},_getLabelNode:function(e){return $(e).find('label[for="'+$escape(e.id)+'"]')}}),inputBindings.register(dateRangeInputBinding,"shiny.dateRangeInput");var selectInputBinding=new InputBinding;$.extend(selectInputBinding,{find:function(e){return $(e).find("select")},getType:function(e){var t=$(e);return t.hasClass("symbol")?"multiple"===t.attr("multiple")?"shiny.symbolList":"shiny.symbol":null},getId:function(e){return InputBinding.prototype.getId.call(this,e)||e.name},getValue:function(e){return $(e).val()},setValue:function(e,t){if(this._is_selectize(e)){var n=this._selectize(e);n&&n.setValue(t)}else $(e).val(t)},getState:function(e){for(var t=new Array(e.length),n=0;n<e.length;n++)t[n]={value:e[n].value,label:e[n].label};return{label:this._getLabelNode(e),value:this.getValue(e),options:t}},receiveMessage:function(e,n){var r,t=$(e);if(n.hasOwnProperty("options")&&((r=this._selectize(e))&&r.destroy(),t.empty().append(n.options),this._selectize(e)),n.hasOwnProperty("config")&&(t.parent().find('script[data-for="'+$escape(e.id)+'"]').replaceWith(n.config),this._selectize(e,!0)),n.hasOwnProperty("url")){(r=this._selectize(e)).clearOptions();var i=!1;r.settings.load=function(e,t){var a=r.settings;$.ajax({url:n.url,data:{query:e,field:JSON.stringify([a.searchField]),value:a.valueField,conju:a.searchConjunction,maxop:a.maxOptions},type:"GET",error:function(){t()},success:function(e){$.each(e,function(e,t){var n=t[a.optgroupField||"optgroup"],i={};i[a.optgroupLabelField||"label"]=n,i[a.optgroupValueField||"value"]=n,r.addOptionGroup(n,i)}),t(e),i||(n.hasOwnProperty("value")?r.setValue(n.value):1===a.maxItems&&r.setValue(e[0].value)),i=!0}})},r.load(function(e){r.settings.load.apply(r,["",e])})}else n.hasOwnProperty("value")&&this.setValue(e,n.value);updateLabel(n.label,this._getLabelNode(e)),$(e).trigger("change")},subscribe:function(t,n){var i=this;$(t).on("change.selectInputBinding",function(e){t.nonempty&&""===i.getValue(t)||n()})},unsubscribe:function(e){$(e).off(".selectInputBinding")},initialize:function(e){this._selectize(e)},_getLabelNode:function(e){var t=$escape(e.id);return this._is_selectize(e)&&(t+="-selectized"),$(e).parent().parent().find('label[for="'+t+'"]')},_is_selectize:function(e){return 0<$(e).parent().find('script[data-for="'+$escape(e.id)+'"]').length},_selectize:function _selectize(el,update){if($.fn.selectize){var $el=$(el),config=$el.parent().find('script[data-for="'+$escape(el.id)+'"]');if(0!==config.length){var options=$.extend({labelField:"label",valueField:"value",searchField:["label"]},JSON.parse(config.html()));void 0!==config.data("nonempty")?(el.nonempty=!0,options=$.extend(options,{onItemRemove:function(e){""===this.getValue()&&$("select#"+$escape(el.id)).empty().append($("<option/>",{value:e,selected:!0})).trigger("change")},onDropdownClose:function(){""===this.getValue()&&this.setValue($("select#"+$escape(el.id)).val())}})):el.nonempty=!1,config.data("eval")instanceof Array&&$.each(config.data("eval"),function(i,x){options[x]=eval("("+options[x]+")")});var control=$el.selectize(options)[0].selectize;if(update){var settings=$.extend(control.settings,options);control.destroy(),control=$el.selectize(settings)[0].selectize}return control}}}}),inputBindings.register(selectInputBinding,"shiny.selectInput");var radioInputBinding=new InputBinding;$.extend(radioInputBinding,{find:function(e){return $(e).find(".shiny-input-radiogroup")},getValue:function(e){return $('input:radio[name="'+$escape(e.id)+'"]:checked').val()},setValue:function(e,t){$('input:radio[name="'+$escape(e.id)+'"][value="'+$escape(t)+'"]').prop("checked",!0)},getState:function(e){for(var t=$('input:radio[name="'+$escape(e.id)+'"]'),n=new Array(t.length),i=0;i<n.length;i++)n[i]={value:t[i].value,label:this._getLabel(t[i])};return{label:this._getLabelNode(e).text(),value:this.getValue(e),options:n}},receiveMessage:function(e,t){var n=$(e);t.hasOwnProperty("options")&&(n.find("div.shiny-options-group").remove(),n.find("label.radio").remove(),n.append(t.options)),t.hasOwnProperty("value")&&this.setValue(e,t.value),updateLabel(t.label,this._getLabelNode(e)),$(e).trigger("change")},subscribe:function(e,t){$(e).on("change.radioInputBinding",function(e){t()})},unsubscribe:function(e){$(e).off(".radioInputBinding")},_getLabelNode:function(e){return $(e).parent().find('label[for="'+$escape(e.id)+'"]')},_getLabel:function(e){return"LABEL"===e.parentNode.tagName?$(e.parentNode).find("span").text().trim():null},_setLabel:function(e,t){return"LABEL"===e.parentNode.tagName&&$(e.parentNode).find("span").text(t),null}}),inputBindings.register(radioInputBinding,"shiny.radioInput");var checkboxGroupInputBinding=new InputBinding;$.extend(checkboxGroupInputBinding,{find:function(e){return $(e).find(".shiny-input-checkboxgroup")},getValue:function(e){for(var t=$('input:checkbox[name="'+$escape(e.id)+'"]:checked'),n=new Array(t.length),i=0;i<t.length;i++)n[i]=t[i].value;return n},setValue:function(e,t){if($('input:checkbox[name="'+$escape(e.id)+'"]').prop("checked",!1),t instanceof Array)for(var n=0;n<t.length;n++)$('input:checkbox[name="'+$escape(e.id)+'"][value="'+$escape(t[n])+'"]').prop("checked",!0);else $('input:checkbox[name="'+$escape(e.id)+'"][value="'+$escape(t)+'"]').prop("checked",!0)},getState:function(e){for(var t=$('input:checkbox[name="'+$escape(e.id)+'"]'),n=new Array(t.length),i=0;i<n.length;i++)n[i]={value:t[i].value,label:this._getLabel(t[i])};return{label:this._getLabelNode(e).text(),value:this.getValue(e),options:n}},receiveMessage:function(e,t){var n=$(e);t.hasOwnProperty("options")&&(n.find("div.shiny-options-group").remove(),n.find("label.checkbox").remove(),n.append(t.options)),t.hasOwnProperty("value")&&this.setValue(e,t.value),updateLabel(t.label,this._getLabelNode(e)),$(e).trigger("change")},subscribe:function(e,t){$(e).on("change.checkboxGroupInputBinding",function(e){t()})},unsubscribe:function(e){$(e).off(".checkboxGroupInputBinding")},_getLabelNode:function(e){return $(e).find('label[for="'+$escape(e.id)+'"]')},_getLabel:function(e){return"LABEL"===e.parentNode.tagName?$(e.parentNode).find("span").text().trim():null},_setLabel:function(e,t){return"LABEL"===e.parentNode.tagName&&$(e.parentNode).find("span").text(t),null}}),inputBindings.register(checkboxGroupInputBinding,"shiny.checkboxGroupInput");var actionButtonInputBinding=new InputBinding;$.extend(actionButtonInputBinding,{find:function(e){return $(e).find(".action-button")},getValue:function(e){return $(e).data("val")||0},setValue:function(e,t){$(e).data("val",t)},getType:function(){return"shiny.action"},subscribe:function(e,i){$(e).on("click.actionButtonInputBinding",function(e){var t=$(this),n=t.data("val")||0;t.data("val",n+1),i()})},getState:function(e){return{value:this.getValue(e)}},receiveMessage:function(e,t){var n=$(e),i=n.text(),a="";if(0<n.find("i[class]").length){var r=n.find("i[class]")[0];r===n.children()[0]&&(a=$(r).prop("outerHTML"))}t.hasOwnProperty("label")&&(i=t.label),t.hasOwnProperty("icon")&&0===(a=t.icon).length&&(a=""),n.html(a+" "+i)},unsubscribe:function(e){$(e).off(".actionButtonInputBinding")}}),inputBindings.register(actionButtonInputBinding,"shiny.actionButtonInput"),$(document).on("click","a.action-button",function(e){e.preventDefault()});var bootstrapTabInputBinding=new InputBinding;$.extend(bootstrapTabInputBinding,{find:function(e){return $(e).find("ul.nav.shiny-tab-input")},getValue:function(e){var t=$(e).find("li:not(.dropdown).active").children("a");return 1===t.length?this._getTabName(t):null},setValue:function(e,t){var n=this,i=!1;t&&$(e).find("li:not(.dropdown)").children("a").each(function(){return n._getTabName($(this))!==t||($(this).tab("show"),!(i=!0))});i||$(e).trigger("change")},getState:function(e){return{value:this.getValue(e)}},receiveMessage:function(e,t){t.hasOwnProperty("value")&&this.setValue(e,t.value)},subscribe:function(e,t){$(e).on("change shown.bootstrapTabInputBinding shown.bs.tab.bootstrapTabInputBinding",function(e){t()})},unsubscribe:function(e){$(e).off(".bootstrapTabInputBinding")},_getTabName:function(e){return e.attr("data-value")||e.text()}}),inputBindings.register(bootstrapTabInputBinding,"shiny.bootstrapTabInput");var IE8FileUploader=function(e,t,n){this.shinyapp=e,this.id=t,this.fileEl=n,this.beginUpload()};(function(){this.beginUpload=function(){var e=this,t="shinyupload_iframe_"+this.id;this.iframe=document.createElement("iframe"),this.iframe.id=t,this.iframe.name=t,this.iframe.setAttribute("style","position: fixed; top: 0; left: 0; width: 0; height: 0; border: none"),$(document.body).append(this.iframe);function n(){e.shinyapp.makeRequest("uploadieFinish",[],function(){},function(){}),$(e.iframe).remove(),$(e.fileEl).val("")}this.iframe.attachEvent?this.iframe.attachEvent("onload",n):this.iframe.onload=n,this.form=document.createElement("form"),this.form.method="POST",this.form.setAttribute("enctype","multipart/form-data"),this.form.action="session/"+encodeURI(this.shinyapp.config.sessionId)+"/uploadie/"+encodeURI(this.id),this.form.id="shinyupload_form_"+this.id,this.form.target=t,$(this.form).insertAfter(this.fileEl).append(this.fileEl),this.form.submit()}}).call(IE8FileUploader.prototype);var FileUploader=function(e,t,n,i){this.shinyapp=e,this.id=t,this.el=i,FileProcessor.call(this,n)};function setFileText(e,t){var n=e.closest("div.input-group").find("input[type=text]");1===t.length?n.val(t[0].name):n.val(t.length+" files")}function abortCurrentUpload(e){var t=e.data("currentUploader");t&&t.abort(),e.removeAttr("data-restore")}function uploadDroppedFilesIE10Plus(e,t){var n=$(e);abortCurrentUpload(n),setFileText(n,t),n.data("currentUploader",new FileUploader(exports.shinyapp,fileInputBinding.getId(e),t,e))}function uploadFiles(e){var t=$(e.target);abortCurrentUpload(t);var n=e.target.files,i=void 0===n,a=fileInputBinding.getId(e.target);if(i||0!==n.length){var r=t.closest("div.input-group").find("input[type=text]");i?r.val("[Uploaded file]"):setFileText(t,n),i?new IE8FileUploader(exports.shinyapp,a,e.target):t.data("currentUploader",new FileUploader(exports.shinyapp,a,n,e.target))}}$.extend(FileUploader.prototype,FileProcessor.prototype),function(){this.makeRequest=function(e,t,n,i,a){this.shinyapp.makeRequest(e,t,n,i,a)},this.onBegin=function(e,t){var n=this;this.$setError(null),this.$setActive(!0),this.$setVisible(!0),this.onProgress(null,0),this.totalBytes=0,this.progressBytes=0,$.each(e,function(e,t){n.totalBytes+=t.size});var i=$.map(e,function(e,t){return{name:e.name,size:e.size,type:e.type}});this.makeRequest("uploadInit",[i],function(e){n.jobId=e.jobId,n.uploadUrl=e.uploadUrl,t()},function(e){n.onError(e)})},this.onFile=function(t,e){var n=this;this.onProgress(t,0),$.ajax(this.uploadUrl,{type:"POST",cache:!1,xhr:function(){var e=$.ajaxSettings.xhr();return e.upload&&(e.upload.onprogress=function(e){e.lengthComputable&&n.onProgress(t,(n.progressBytes+e.loaded)/n.totalBytes)}),e},data:t,contentType:"application/octet-stream",processData:!1,success:function(){n.progressBytes+=t.size,e()},error:function(e,t){n.onError(e.responseText||t)}})},this.onComplete=function(){var t=this,e=$.map(this.files,function(e,t){return{name:e.name,size:e.size,type:e.type}}),n=jQuery.Event("shiny:inputchanged");n.name=this.id,n.value=e,n.binding=fileInputBinding,n.el=this.el,n.inputType="shiny.fileupload",$(document).trigger(n),this.makeRequest("uploadEnd",[this.jobId,this.id],function(e){t.$setActive(!1),t.onProgress(null,1),t.$bar().text("Upload complete"),$(n.el).val("")},function(e){t.onError(e)}),this.$bar().text("Finishing upload")},this.onError=function(e){this.$setError(e||""),this.$setActive(!1)},this.onAbort=function(){this.$setVisible(!1)},this.onProgress=function(e,t){this.$bar().width(Math.round(100*t)+"%"),this.$bar().text(e?e.name:"")},this.$container=function(){return $("#"+$escape(this.id)+"_progress.shiny-file-input-progress")},this.$bar=function(){return $("#"+$escape(this.id)+"_progress.shiny-file-input-progress .progress-bar")},this.$setVisible=function(e){this.$container().css("visibility",e?"visible":"hidden")},this.$setError=function(e){this.$bar().toggleClass("progress-bar-danger",null!==e),null!==e&&(this.onProgress(null,1),this.$bar().text(e))},this.$setActive=function(e){this.$container().toggleClass("active",!!e)}}.call(FileUploader.prototype);var $fileInputs=$(),fileInputBinding=new InputBinding;function initShiny(){var c=exports.shinyapp=new ShinyApp;var s,e=new InputBatchSender(c),t=new InputNoResendDecorator(e),n=new InputEventDecorator(t),g=new InputRateDecorator(n),i=new InputDeferDecorator(n);0<$('input[type="submit"], button[type="submit"]').length?(s=i,$('input[type="submit"], button[type="submit"]').each(function(){$(this).click(function(e){e.preventDefault(),i.submit()})})):s=g,s=new InputValidateDecorator(s),exports.setInputValue=exports.onInputChange=function(e,t,n){n=addDefaultInputOpts(n),s.setInput(e,t,n)};var f={};function m(e,t,n){var i=e.getId(t);if(i){var a=e.getValue(t),r=e.getType(t);r&&(i=i+":"+r);var o={priority:n?"deferred":"immediate",binding:e,el:t};s.setInput(i,a,o)}}function a(e){return function(e){var t=0<arguments.length&&void 0!==e?e:document;t=$(t);for(var n=outputBindings.getBindings(),i=0;i<n.length;i++)for(var a=n[i].binding,r=a.find(t)||[],o=0;o<r.length;o++){var s=r[o],u=a.getId(s);if(u&&$.contains(document,s)){var l=$(s);if(!l.hasClass("shiny-bound-output")){var d=new OutputBindingAdapter(s,a);c.bindOutput(u,d),l.data("shiny-output-binding",d),l.addClass("shiny-bound-output"),l.trigger({type:"shiny:bound",binding:a,bindingType:"output"})}}}setTimeout(v,0),setTimeout(x,0)}(e),function(e){for(var t=0<arguments.length&&void 0!==e?e:document,n=inputBindings.getBindings(),i={},a=0;a<n.length;a++)for(var r=n[a].binding,o=r.find(t)||[],s=0;s<o.length;s++){var u=o[s],l=r.getId(u);if(l&&!f[l]){var d=r.getType(u),c=d?l+":"+d:l;i[c]={value:r.getValue(u),opts:{immediate:!0,binding:r,el:u}};var p=function(){var t=r,n=u;return function(e){m(t,n,e)}}();r.subscribe(u,p),$(u).data("shiny-input-binding",r),$(u).addClass("shiny-bound-input");var h=r.getRatePolicy(u);null!==h&&g.setRatePolicy(c,h.policy,h.delay),f[l]={binding:r,node:u},$(u).trigger({type:"shiny:bound",binding:r,bindingType:"input"})}}return i}(e)}function r(){for(var e=0<arguments.length&&void 0!==arguments[0]?arguments[0]:document,t=inputBindings.getBindings(),n=0;n<t.length;n++)for(var i=t[n].binding,a=i.find(e)||[],r=0;r<a.length;r++)a[r]._shiny_initialized||(a[r]._shiny_initialized=!0,i.initialize(a[r]))}function o(e){var t=$(e).data("shiny-output-binding");return t?t.getId():null}exports.bindAll=function(e){var t=a(e);$.each(t,function(e,t){s.setInput(e,t.value,t.opts)}),initDeferredIframes()},exports.unbindAll=function(e){var t=1<arguments.length&&void 0!==arguments[1]&&arguments[1];!function(e,t){var n=0<arguments.length&&void 0!==e?e:document,i=1<arguments.length&&void 0!==t&&t,a=$(n).find(".shiny-bound-input");i&&$(n).hasClass("shiny-bound-input")&&a.push(n);for(var r=0;r<a.length;r++){var o=a[r],s=$(o).data("shiny-input-binding");if(s){var u=s.getId(o);$(o).removeClass("shiny-bound-input"),delete f[u],s.unsubscribe(o),$(o).trigger({type:"shiny:unbound",binding:s,bindingType:"input"})}}}(e,t),function(e,t){var n=0<arguments.length&&void 0!==e?e:document,i=1<arguments.length&&void 0!==t&&t,a=$(n).find(".shiny-bound-output");i&&$(n).hasClass("shiny-bound-output")&&a.push(n);for(var r=0;r<a.length;r++){var o=$(a[r]),s=o.data("shiny-output-binding");if(s){var u=s.binding.getId(a[r]);c.unbindOutput(u,s),o.removeClass("shiny-bound-output"),o.removeData("shiny-output-binding"),o.trigger({type:"shiny:unbound",binding:s.binding,bindingType:"output"})}}setTimeout(v,0),setTimeout(x,0)}(e,t)},(exports.initializeInputs=r)(document);var u=mapValues(a(document),function(e){return e.value});function l(e){if(!e)return null;var t=getStyle(e,"background-color"),n=t.match(/^rgba\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)$/);if("transparent"===t||n&&0===parseFloat(n[4])){var i=getStyle(e,"background-image");return i&&"none"!==i?null:l(e.parentElement)}return t}function d(e){var t=document.createElement("a");t.href="/";var n=document.createElement("div");n.style.setProperty("position","absolute","important"),n.style.setProperty("top","-1000px","important"),n.style.setProperty("left","0","important"),n.style.setProperty("width","30px","important"),n.style.setProperty("height","10px","important"),n.appendChild(t),e.appendChild(n);var i=getStyle(t,"color");return e.removeChild(n),i}function p(e){var t=getStyle(e,"font-family"),n=getStyle(e,"font-size");return{families:t.replace(/"/g,"").split(", "),size:n}}$(".shiny-image-output, .shiny-plot-output, .shiny-report-size").each(function(){var e=o(this);0===this.offsetWidth&&0===this.offsetHeight||(u[".clientdata_output_"+e+"_width"]=this.offsetWidth,u[".clientdata_output_"+e+"_height"]=this.offsetHeight)}),$(".shiny-image-output, .shiny-plot-output, .shiny-report-theme").each(function(){var e=o(this);u[".clientdata_output_"+e+"_bg"]=l(this),u[".clientdata_output_"+e+"_fg"]=getStyle(this,"color"),u[".clientdata_output_"+e+"_accent"]=d(this),u[".clientdata_output_"+e+"_font"]=p(this)});var h=new Debouncer(null,function(){$(".shiny-image-output, .shiny-plot-output, .shiny-report-size").each(function(){var e=o(this);0===this.offsetWidth&&0===this.offsetHeight||(s.setInput(".clientdata_output_"+e+"_width",this.offsetWidth),s.setInput(".clientdata_output_"+e+"_height",this.offsetHeight))}),$(".shiny-image-output, .shiny-plot-output, .shiny-report-theme").each(function(){var e=o(this);s.setInput(".clientdata_output_"+e+"_bg",l(this)),s.setInput(".clientdata_output_"+e+"_fg",getStyle(this,"color")),s.setInput(".clientdata_output_"+e+"_accent",d(this)),s.setInput(".clientdata_output_"+e+"_font",p(this))}),$(".shiny-bound-output").each(function(){var e=$(this),t=e.data("shiny-output-binding");e.trigger({type:"shiny:visualchange",visible:!y(this),binding:t}),t.onResize()})},0);function v(){h.normalCall()}function y(e){return null!==e&&0===e.offsetWidth&&0===e.offsetHeight&&("none"===getStyle(e,"display")||y(e.parentNode))}e.lastChanceCallback.push(function(){h.isPending()&&h.immediateCall()});var b={};$(".shiny-bound-output").each(function(){var e=o(this);y(this)?u[".clientdata_output_"+e+"_hidden"]=!0:(b[e]=!0,u[".clientdata_output_"+e+"_hidden"]=!1)});var w=new Debouncer(null,function(){var a={};for(var e in $(".shiny-bound-output").each(function(){var e=o(this);delete b[e];var t=y(this),n={type:"shiny:visualchange",visible:!t};t?s.setInput(".clientdata_output_"+e+"_hidden",!0):(a[e]=!0,s.setInput(".clientdata_output_"+e+"_hidden",!1));var i=$(this);n.binding=i.data("shiny-output-binding"),i.trigger(n)}),b)b.hasOwnProperty(e)&&s.setInput(".clientdata_output_"+e+"_hidden",!0);b=a},0);function x(){w.normalCall()}function I(i,a){return i=i.split("."),function(e){for(var t=e.namespace.split("."),n=0;n<i.length;n++)if(-1===t.indexOf(i[n]))return;a.apply(this,arguments)}}e.lastChanceCallback.push(function(){w.isPending()&&w.immediateCall()}),$(window).resize(debounce(500,v));$.each(["modal","dropdown","tab","tooltip","popover","collapse"],function(e,t){$(document.body).on("shown.bs."+t+".sendImageSize","*",I("bs",v)),$(document.body).on("shown.bs."+t+".sendOutputHiddenState hidden.bs."+t+".sendOutputHiddenState","*",I("bs",x))}),$(document.body).on("shown.sendImageSize","*",v),$(document.body).on("shown.sendOutputHiddenState hidden.sendOutputHiddenState","*",x),u[".clientdata_pixelratio"]=pixelRatio(),$(window).resize(function(){s.setInput(".clientdata_pixelratio",pixelRatio())}),u[".clientdata_url_protocol"]=window.location.protocol,u[".clientdata_url_hostname"]=window.location.hostname,u[".clientdata_url_port"]=window.location.port,u[".clientdata_url_pathname"]=window.location.pathname,u[".clientdata_url_search"]=window.location.search,$(window).on("pushstate",function(e){s.setInput(".clientdata_url_search",window.location.search)}),$(window).on("popstate",function(e){s.setInput(".clientdata_url_search",window.location.search)}),u[".clientdata_url_hash_initial"]=window.location.hash,u[".clientdata_url_hash"]=window.location.hash,$(window).on("hashchange",function(e){s.setInput(".clientdata_url_hash",window.location.hash)});var _=u[".clientdata_singletons"]=$('script[type="application/shiny-singletons"]').text();singletons.registerNames(_.split(/,/));var B=$('script[type="application/html-dependencies"]').text();$.each(B.split(/;/),function(e,t){var n=/\s*^(.+)\[(.+)\]\s*$/.exec(t);n&&registerDependency(n[1],n[2])}),u[".clientdata_allowDataUriScheme"]="undefined"!=typeof WebSocket,t.reset(u),c.connect(u),$(document).one("shiny:connected",function(){initDeferredIframes()})}function initDeferredIframes(){window.Shiny&&window.Shiny.shinyapp&&window.Shiny.shinyapp.isConnected()&&$(".shiny-frame-deferred").each(function(e,t){var n=$(t);n.removeClass("shiny-frame-deferred"),n.attr("src",n.attr("data-deferred-src")),n.attr("data-deferred-src",null)})}$.extend(fileInputBinding,{find:function(e){return $(e).find('input[type="file"]')},getId:function(e){return InputBinding.prototype.getId.call(this,e)||e.name},getValue:function(e){var t=$(e).attr("data-restore");if(t){t=JSON.parse(t);var n=$(e).closest("div.input-group").find("input[type=text]");1===t.name.length?n.val(t.name[0]):n.val(t.name.length+" files");var i=$(e).closest("div.form-group").find(".progress"),a=i.find(".progress-bar");return i.removeClass("active"),a.width("100%"),a.css("visibility","visible"),t}return null},setValue:function(){},getType:function(){return"shiny.file"},_zoneOf:function(e){return $(e).closest("div.input-group")},_enableDraghover:function(e){var t=$(e),n=0;return t.on({"dragenter.draghover":function(e){0==n++&&t.trigger("draghover:enter",e)},"dragleave.draghover":function(e){0==--n&&t.trigger("draghover:leave",e),n<0&&console.error("draghover childCounter is negative somehow")},"dragover.draghover":function(e){e.preventDefault()},"drop.draghover":function(e){n=0,t.trigger("draghover:drop",e),e.preventDefault()}}),t},_disableDraghover:function(e){return $(e).off(".draghover")},_ZoneClass:{ACTIVE:"shiny-file-input-active",OVER:"shiny-file-input-over"},_enableDocumentEvents:function(){var e=this,t=$("html"),n=this._ZoneClass,i=n.ACTIVE,a=n.OVER;this._enableDraghover(t).on({"draghover:enter.draghover":function(){e._zoneOf($fileInputs).addClass(i)},"draghover:leave.draghover":function(){e._zoneOf($fileInputs).removeClass(i)},"draghover:drop.draghover":function(){e._zoneOf($fileInputs).removeClass(a).removeClass(i)}})},_disableDocumentEvents:function(){var e=$("html");e.off(".draghover"),this._disableDraghover(e)},_canSetFiles:function(e){var t=document.createElement("input");t.type="file";try{t.files=e}catch(e){return!1}return!0},_handleDrop:function(e,t){var n=e.originalEvent.dataTransfer.files,i=$(t);null==n?console.log("Dropping files is not supported on this browser. (no FileList)"):this._canSetFiles(n)?(i.val(""),t.files=e.originalEvent.dataTransfer.files,i.trigger("change")):(i.val(""),uploadDroppedFilesIE10Plus(t,n))},_isIE9:function(){try{return!!window.navigator.userAgent.match(/MSIE 9\./)}catch(e){return!1}},subscribe:function(n){var i=this;if($(n).on("change.fileInputBinding",uploadFiles),!this._isIE9()){0===$fileInputs.length&&this._enableDocumentEvents(),$fileInputs=$fileInputs.add(n);var t=this._zoneOf(n),a=this._ZoneClass.OVER;this._enableDraghover(t).on({"draghover:enter.draghover":function(){t.addClass(a)},"draghover:leave.draghover":function(e){t.removeClass(a),e.stopPropagation()},"draghover:drop.draghover":function(e,t){i._handleDrop(t,n)}})}},unsubscribe:function(e){var t=$(e),n=this._zoneOf(e);n.removeClass(this._ZoneClass.OVER).removeClass(this._ZoneClass.ACTIVE),this._disableDraghover(n),t.off(".fileInputBinding"),n.off(".draghover"),0===($fileInputs=$fileInputs.not(e)).length&&this._disableDocumentEvents()}}),inputBindings.register(fileInputBinding,"shiny.fileInputBinding"),$(function(){setTimeout(initShiny,1)}),$(document).on("keydown",function(e){if(114===e.which&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey){var t="reactlog?w="+window.escape(exports.shinyapp.config.workerId)+"&s="+window.escape(exports.shinyapp.config.sessionId);window.open(t),e.preventDefault()}}),$(document).on("keydown",function(e){if(115===e.which&&(e.ctrlKey||e.metaKey)&&!e.shiftKey&&!e.altKey||114===e.which&&(e.ctrlKey||e.metaKey)&&e.shiftKey&&!e.altKey){var t="reactlog/mark?w="+window.escape(exports.shinyapp.config.workerId)+"&s="+window.escape(exports.shinyapp.config.sessionId);$.get(t,function(e){if("marked"===e){exports.notifications.show({html:'<span id="shiny-reactlog-mark-text">Marked time point in reactlog</span>',closeButton:!0})}}).fail(function(){window.open(t)}),e.preventDefault()}})}();
r-cran-shiny-1.5.0+dfsg/inst/www/shared/shiny.min.js-4-//# sourceMappingURL=shiny.min.js.map
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/compressed/showdown.js:1:var Showdown={extensions:{}},forEach=Showdown.forEach=function(a,b){if(typeof a.forEach=="function")a.forEach(b);else{var c,d=a.length;for(c=0;c<d;c++)b(a[c],c,a)}},stdExtName=function(a){return a.replace(/[_-]||\s/g,"").toLowerCase()};Showdown.converter=function(a){var b,c,d,e=0,f=[],g=[];if(typeof module!="undefind"&&typeof exports!="undefined"&&typeof require!="undefind"){var h=require("fs");if(h){var i=h.readdirSync((__dirname||".")+"/extensions").filter(function(a){return~a.indexOf(".js")}).map(function(a){return a.replace(/\.js$/,"")});Showdown.forEach(i,function(a){var b=stdExtName(a);Showdown.extensions[b]=require("./extensions/"+a)})}}a&&a.extensions&&Showdown.forEach(a.extensions,function(a){typeof a=="string"&&(a=Showdown.extensions[stdExtName(a)]);if(typeof a!="function")throw"Extension '"+a+"' could not be loaded.  It was either not found or is not a valid extension.";Showdown.forEach(a(this),function(a){a.type?a.type==="language"||a.type==="lang"?f.push(a):(a.type==="output"||a.type==="html")&&g.push(a):g.push(a)})}),this.makeHtml=function(a){return b={},c={},d=[],a=a.replace(/~/g,"~T"),a=a.replace(/\$/g,"~D"),a=a.replace(/\r\n/g,"\n"),a=a.replace(/\r/g,"\n"),a="\n\n"+a+"\n\n",a=L(a),a=a.replace(/^[ \t]+$/mg,""),Showdown.forEach(f,function(b){a=j(b,a)}),a=y(a),a=l(a),a=k(a),a=n(a),a=J(a),a=a.replace(/~D/g,"$$"),a=a.replace(/~T/g,"~"),Showdown.forEach(g,function(b){a=j(b,a)}),a};var j=function(a,b){if(a.regex){var c=new RegExp(a.regex,"g");return b.replace(c,a.replace)}if(a.filter)return a.filter(b)},k=function(a){return a+="~0",a=a.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|(?=~0))/gm,function(a,d,e,f,g){return d=d.toLowerCase(),b[d]=F(e),f?f+g:(g&&(c[d]=g.replace(/"/g,"&quot;")),"")}),a=a.replace(/~0/,""),a},l=function(a){a=a.replace(/\n/g,"\n\n");var b="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside",c="p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside";return a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,m),a=a.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?<\/\2>[ \t]*(?=\n+)\n)/gm,m),a=a.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,m),a=a.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,m),a=a.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,m),a=a.replace(/\n\n/g,"\n"),a},m=function(a,b){var c=b;return c=c.replace(/\n\n/g,"\n"),c=c.replace(/^\n/,""),c=c.replace(/\n+$/g,""),c="\n\n~K"+(d.push(c)-1)+"K\n\n",c},n=function(a){a=u(a);var b=z("<hr />");return a=a.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,b),a=a.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,b),a=w(a),a=x(a),a=D(a),a=l(a),a=E(a),a},o=function(a){return a=A(a),a=p(a),a=G(a),a=s(a),a=q(a),a=H(a),a=F(a),a=C(a),a=a.replace(/  +\n/g," <br />\n"),a},p=function(a){var b=/(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;return a=a.replace(b,function(a){var b=a.replace(/(.)<\/?code>(?=.)/g,"$1`");return b=M(b,"\\`*_"),b}),a},q=function(a){return a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,r),a=a.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?(?:\(.*?\).*?)?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,r),a=a.replace(/(\[([^\[\]]+)\])()()()()()/g,r),a},r=function(a,d,e,f,g,h,i,j){j==undefined&&(j="");var k=d,l=e,m=f.toLowerCase(),n=g,o=j;if(n==""){m==""&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m;if(b[m]!=undefined)n=b[m],c[m]!=undefined&&(o=c[m]);else{if(!(k.search(/\(\s*\)$/m)>-1))return k;n=""}}n=M(n,"*_");var p='<a href="'+n+'"';return o!=""&&(o=o.replace(/"/g,"&quot;"),o=M(o,"*_"),p+=' title="'+o+'"'),p+=">"+l+"</a>",p},s=function(a){return a=a.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,t),a=a.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,t),a},t=function(a,d,e,f,g,h,i,j){var k=d,l=e,m=f.toLowerCase(),n=g,o=j;o||(o="");if(n==""){m==""&&(m=l.toLowerCase().replace(/ ?\n/g," ")),n="#"+m;if(b[m]==undefined)return k;n=b[m],c[m]!=undefined&&(o=c[m])}l=l.replace(/"/g,"&quot;"),n=M(n,"*_");var p='<img src="'+n+'" alt="'+l+'"';return o=o.replace(/"/g,"&quot;"),o=M(o,"*_"),p+=' title="'+o+'"',p+=" />",p},u=function(a){function b(a){return a.replace(/[^\w]/g,"").toLowerCase()}return a=a.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,function(a,c){return z('<h1 id="'+b(c)+'">'+o(c)+"</h1>")}),a=a.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,function(a,c){return z('<h2 id="'+b(c)+'">'+o(c)+"</h2>")}),a=a.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,function(a,c,d){var e=c.length;return z("<h"+e+' id="'+b(d)+'">'+o(d)+"</h"+e+">")}),a},v,w=function(a){a+="~0";var b=/^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;return e?a=a.replace(b,function(a,b,c){var d=b,e=c.search(/[*+-]/g)>-1?"ul":"ol";d=d.replace(/\n{2,}/g,"\n\n\n");var f=v(d);return f=f.replace(/\s+$/,""),f="<"+e+">"+f+"</"+e+">\n",f}):(b=/(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g,a=a.replace(b,function(a,b,c,d){var e=b,f=c,g=d.search(/[*+-]/g)>-1?"ul":"ol",f=f.replace(/\n{2,}/g,"\n\n\n"),h=v(f);return h=e+"<"+g+">\n"+h+"</"+g+">\n",h})),a=a.replace(/~0/,""),a};v=function(a){return e++,a=a.replace(/\n{2,}$/,"\n"),a+="~0",a=a.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,function(a,b,c,d,e){var f=e,g=b,h=c;return g||f.search(/\n{2,}/)>-1?f=n(K(f)):(f=w(K(f)),f=f.replace(/\n$/,""),f=o(f)),"<li>"+f+"</li>\n"}),a=a.replace(/~0/g,""),e--,a};var x=function(a){return a+="~0",a=a.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,function(a,b,c){var d=b,e=c;return d=B(K(d)),d=L(d),d=d.replace(/^\n+/g,""),d=d.replace(/\n+$/g,""),d="<pre><code>"+d+"\n</code></pre>",z(d)+e}),a=a.replace(/~0/,""),a},y=function(a){return a+="~0",a=a.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,function(a,b,c){var d=b,e=c;return e=B(e),e=L(e),e=e.replace(/^\n+/g,""),e=e.replace(/\n+$/g,""),e="<pre><code"+(d?' class="'+d+'"':"")+">"+e+"\n</code></pre>",z(e)}),a=a.replace(/~0/,""),a},z=function(a){return a=a.replace(/(^\n+|\n+$)/g,""),"\n\n~K"+(d.push(a)-1)+"K\n\n"},A=function(a){return a=a.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(a,b,c,d,e){var f=d;return f=f.replace(/^([ \t]*)/g,""),f=f.replace(/[ \t]*$/g,""),f=B(f),b+"<code>"+f+"</code>"}),a},B=function(a){return a=a.replace(/&/g,"&amp;"),a=a.replace(/</g,"&lt;"),a=a.replace(/>/g,"&gt;"),a=M(a,"*_{}[]\\",!1),a},C=function(a){return a=a.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,"<strong>$2</strong>"),a=a.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,"<em>$2</em>"),a},D=function(a){return a=a.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,function(a,b){var c=b;return c=c.replace(/^[ \t]*>[ \t]?/gm,"~0"),c=c.replace(/~0/g,""),c=c.replace(/^[ \t]+$/gm,""),c=n(c),c=c.replace(/(^|\n)/g,"$1  "),c=c.replace(/(\s*<pre>[^\r]+?<\/pre>)/gm,function(a,b){var c=b;return c=c.replace(/^  /mg,"~0"),c=c.replace(/~0/g,""),c}),z("<blockquote>\n"+c+"\n</blockquote>")}),a},E=function(a){a=a.replace(/^\n+/g,""),a=a.replace(/\n+$/g,"");var b=a.split(/\n{2,}/g),c=[],e=b.length;for(var f=0;f<e;f++){var g=b[f];g.search(/~K(\d+)K/g)>=0?c.push(g):g.search(/\S/)>=0&&(g=o(g),g=g.replace(/^([ \t]*)/g,"<p>"),g+="</p>",c.push(g))}e=c.length;for(var f=0;f<e;f++)while(c[f].search(/~K(\d+)K/)>=0){var h=d[RegExp.$1];h=h.replace(/\$/g,"$$$$"),c[f]=c[f].replace(/~K\d+K/,h)}return c.join("\n\n")},F=function(a){return a=a.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;"),a=a.replace(/<(?![a-z\/?\$!])/gi,"&lt;"),a},G=function(a){return a=a.replace(/\\(\\)/g,N),a=a.replace(/\\([`*_{}\[\]()>#+-.!])/g,N),a},H=function(a){return a=a.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,'<a href="$1">$1</a>'),a=a.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,function(a,b){return I(J(b))}),a},I=function(a){var b=[function(a){return"&#"+a.charCodeAt(0)+";"},function(a){return"&#x"+a.charCodeAt(0).toString(16)+";"},function(a){return a}];return a="mailto:"+a,a=a.replace(/./g,function(a){if(a=="@")a=b[Math.floor(Math.random()*2)](a);else if(a!=":"){var c=Math.random();a=c>.9?b[2](a):c>.45?b[1](a):b[0](a)}return a}),a='<a href="'+a+'">'+a+"</a>",a=a.replace(/">.+:/g,'">'),a},J=function(a){return a=a.replace(/~E(\d+)E/g,function(a,b){var c=parseInt(b);return String.fromCharCode(c)}),a},K=function(a){return a=a.replace(/^(\t|[ ]{1,4})/gm,"~0"),a=a.replace(/~0/g,""),a},L=function(a){return a=a.replace(/\t(?=\t)/g,"    "),a=a.replace(/\t/g,"~A~B"),a=a.replace(/~B(.+?)~A/g,function(a,b,c){var d=b,e=4-d.length%4;for(var f=0;f<e;f++)d+=" ";return d}),a=a.replace(/~A/g,"    "),a=a.replace(/~B/g,""),a},M=function(a,b,c){var d="(["+b.replace(/([\[\]\\])/g,"\\$1")+"])";c&&(d="\\\\"+d);var e=new RegExp(d,"g");return a=a.replace(e,N),a},N=function(a,b){var c=b.charCodeAt(0);return"~E"+c+"E"}},typeof module!="undefined"&&(module.exports=Showdown),typeof define=="function"&&define.amd&&define("showdown",function(){return Showdown});
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/src/showdown.js-860-
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/src/showdown.js:861:			// Trim any trailing whitespace, to put the closing `</$list_type>`
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/src/showdown.js-862-			// up on the preceding line, to get it past the current stupid
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/src/showdown.js-1076-			(^|[^\\])					// Character before opening ` can't be a backslash
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/src/showdown.js:1077:			(`+)						// $2 = Opening run of `
r-cran-shiny-1.5.0+dfsg/inst/www/shared/showdown/src/showdown.js-1078-			(							// $3 = The code block
##############################################
r-cran-shiny-1.5.0+dfsg/inst/www/shared/ionrangeslider/js/ion.rangeSlider.min.js:1:!function(i){"function"==typeof define&&define.amd?define(["jquery"],function(t){return i(t,document,window,navigator)}):"object"==typeof exports?i(require("jquery"),document,window,navigator):i(jQuery,document,window,navigator)}(function(a,c,l,t,_){"use strict";var i,s,o=0,e=(i=t.userAgent,s=/msie\s\d+/i,0<i.search(s)&&s.exec(i).toString().split(" ")[1]<9&&(a("html").addClass("lt-ie9"),!0));Function.prototype.bind||(Function.prototype.bind=function(o){var e=this,h=[].slice;if("function"!=typeof e)throw new TypeError;var r=h.call(arguments,1),n=function(){if(this instanceof n){var t=function(){};t.prototype=e.prototype;var i=new t,s=e.apply(i,r.concat(h.call(arguments)));return Object(s)===s?s:i}return e.apply(o,r.concat(h.call(arguments)))};return n}),Array.prototype.indexOf||(Array.prototype.indexOf=function(t,i){var s;if(null==this)throw new TypeError('"this" is null or not defined');var o=Object(this),e=o.length>>>0;if(0==e)return-1;var h=+i||0;if(Math.abs(h)===1/0&&(h=0),e<=h)return-1;for(s=Math.max(0<=h?h:e-Math.abs(h),0);s<e;){if(s in o&&o[s]===t)return s;s++}return-1});function h(t,i,s){this.VERSION="2.2.0",this.input=t,this.plugin_count=s,this.current_plugin=0,this.calc_count=0,this.update_tm=0,this.old_from=0,this.old_to=0,this.old_min_interval=null,this.raf_id=null,this.dragging=!1,this.force_redraw=!1,this.no_diapason=!1,this.has_tab_index=!0,this.is_key=!1,this.is_update=!1,this.is_start=!0,this.is_finish=!1,this.is_active=!1,this.is_resize=!1,this.is_click=!1,i=i||{},this.$cache={win:a(l),body:a(c.body),input:a(t),cont:null,rs:null,min:null,max:null,from:null,to:null,single:null,bar:null,line:null,s_single:null,s_from:null,s_to:null,shad_single:null,shad_from:null,shad_to:null,edge:null,grid:null,grid_labels:[]},this.coords={x_gap:0,x_pointer:0,w_rs:0,w_rs_old:0,w_handle:0,p_gap:0,p_gap_left:0,p_gap_right:0,p_step:0,p_pointer:0,p_handle:0,p_single_fake:0,p_single_real:0,p_from_fake:0,p_from_real:0,p_to_fake:0,p_to_real:0,p_bar_x:0,p_bar_w:0,grid_gap:0,big_num:0,big:[],big_w:[],big_p:[],big_x:[]},this.labels={w_min:0,w_max:0,w_from:0,w_to:0,w_single:0,p_min:0,p_max:0,p_from_fake:0,p_from_left:0,p_to_fake:0,p_to_left:0,p_single_fake:0,p_single_left:0};var o,e,h,r=this.$cache.input,n=r.prop("value");for(h in o={type:"single",min:10,max:100,from:null,to:null,step:1,min_interval:0,max_interval:0,drag_interval:!1,values:[],p_values:[],from_fixed:!1,from_min:null,from_max:null,from_shadow:!1,to_fixed:!1,to_min:null,to_max:null,to_shadow:!1,prettify_enabled:!0,prettify_separator:" ",prettify:null,force_edges:!1,keyboard:!0,grid:!1,grid_margin:!0,grid_num:4,grid_snap:!1,hide_min_max:!1,hide_from_to:!1,prefix:"",postfix:"",max_postfix:"",decorate_both:!0,values_separator:" — ",input_values_separator:";",disable:!1,block:!1,extra_classes:"",scope:null,onStart:null,onChange:null,onFinish:null,onUpdate:null},"INPUT"!==r[0].nodeName&&console&&console.warn&&console.warn("Base element should be <input>!",r[0]),(e={type:r.data("type"),min:r.data("min"),max:r.data("max"),from:r.data("from"),to:r.data("to"),step:r.data("step"),min_interval:r.data("minInterval"),max_interval:r.data("maxInterval"),drag_interval:r.data("dragInterval"),values:r.data("values"),from_fixed:r.data("fromFixed"),from_min:r.data("fromMin"),from_max:r.data("fromMax"),from_shadow:r.data("fromShadow"),to_fixed:r.data("toFixed"),to_min:r.data("toMin"),to_max:r.data("toMax"),to_shadow:r.data("toShadow"),prettify_enabled:r.data("prettifyEnabled"),prettify_separator:r.data("prettifySeparator"),force_edges:r.data("forceEdges"),keyboard:r.data("keyboard"),grid:r.data("grid"),grid_margin:r.data("gridMargin"),grid_num:r.data("gridNum"),grid_snap:r.data("gridSnap"),hide_min_max:r.data("hideMinMax"),hide_from_to:r.data("hideFromTo"),prefix:r.data("prefix"),postfix:r.data("postfix"),max_postfix:r.data("maxPostfix"),decorate_both:r.data("decorateBoth"),values_separator:r.data("valuesSeparator"),input_values_separator:r.data("inputValuesSeparator"),disable:r.data("disable"),block:r.data("block"),extra_classes:r.data("extraClasses")}).values=e.values&&e.values.split(","),e)e.hasOwnProperty(h)&&(e[h]!==_&&""!==e[h]||delete e[h]);n!==_&&""!==n&&((n=n.split(e.input_values_separator||i.input_values_separator||";"))[0]&&n[0]==+n[0]&&(n[0]=+n[0]),n[1]&&n[1]==+n[1]&&(n[1]=+n[1]),i&&i.values&&i.values.length?(o.from=n[0]&&i.values.indexOf(n[0]),o.to=n[1]&&i.values.indexOf(n[1])):(o.from=n[0]&&+n[0],o.to=n[1]&&+n[1])),a.extend(o,i),a.extend(o,e),this.options=o,this.update_check={},this.validate(),this.result={input:this.$cache.input,slider:null,min:this.options.min,max:this.options.max,from:this.options.from,from_percent:0,from_value:null,to:this.options.to,to_percent:0,to_value:null},this.init()}h.prototype={init:function(t){this.no_diapason=!1,this.coords.p_step=this.convertToPercent(this.options.step,!0),this.target="base",this.toggleInput(),this.append(),this.setMinMax(),t?(this.force_redraw=!0,this.calc(!0),this.callOnUpdate()):(this.force_redraw=!0,this.calc(!0),this.callOnStart()),this.updateScene()},append:function(){var t='<span class="irs js-irs-'+this.plugin_count+" "+this.options.extra_classes+'"></span>';this.$cache.input.before(t),this.$cache.input.prop("readonly",!0),this.$cache.cont=this.$cache.input.prev(),this.result.slider=this.$cache.cont,this.$cache.cont.html('<span class="irs"><span class="irs-line" tabindex="0"><span class="irs-line-left"></span><span class="irs-line-mid"></span><span class="irs-line-right"></span></span><span class="irs-min">0</span><span class="irs-max">1</span><span class="irs-from">0</span><span class="irs-to">0</span><span class="irs-single">0</span></span><span class="irs-grid"></span><span class="irs-bar"></span>'),this.$cache.rs=this.$cache.cont.find(".irs"),this.$cache.min=this.$cache.cont.find(".irs-min"),this.$cache.max=this.$cache.cont.find(".irs-max"),this.$cache.from=this.$cache.cont.find(".irs-from"),this.$cache.to=this.$cache.cont.find(".irs-to"),this.$cache.single=this.$cache.cont.find(".irs-single"),this.$cache.bar=this.$cache.cont.find(".irs-bar"),this.$cache.line=this.$cache.cont.find(".irs-line"),this.$cache.grid=this.$cache.cont.find(".irs-grid"),"single"===this.options.type?(this.$cache.cont.append('<span class="irs-bar-edge"></span><span class="irs-shadow shadow-single"></span><span class="irs-slider single"></span>'),this.$cache.edge=this.$cache.cont.find(".irs-bar-edge"),this.$cache.s_single=this.$cache.cont.find(".single"),this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.shad_single=this.$cache.cont.find(".shadow-single")):(this.$cache.cont.append('<span class="irs-shadow shadow-from"></span><span class="irs-shadow shadow-to"></span><span class="irs-slider from"></span><span class="irs-slider to"></span>'),this.$cache.s_from=this.$cache.cont.find(".from"),this.$cache.s_to=this.$cache.cont.find(".to"),this.$cache.shad_from=this.$cache.cont.find(".shadow-from"),this.$cache.shad_to=this.$cache.cont.find(".shadow-to"),this.setTopHandler()),this.options.hide_from_to&&(this.$cache.from[0].style.display="none",this.$cache.to[0].style.display="none",this.$cache.single[0].style.display="none"),this.appendGrid(),this.options.disable?(this.appendDisableMask(),this.$cache.input[0].disabled=!0):(this.$cache.input[0].disabled=!1,this.removeDisableMask(),this.bindEvents()),this.options.disable||(this.options.block?this.appendDisableMask():this.removeDisableMask()),this.options.drag_interval&&(this.$cache.bar[0].style.cursor="ew-resize")},setTopHandler:function(){var t=this.options.min,i=this.options.max,s=this.options.from,o=this.options.to;t<s&&o===i?this.$cache.s_from.addClass("type_last"):o<i&&this.$cache.s_to.addClass("type_last")},changeLevel:function(t){switch(t){case"single":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_single_fake),this.$cache.s_single.addClass("state_hover");break;case"from":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_from_fake),this.$cache.s_from.addClass("state_hover"),this.$cache.s_from.addClass("type_last"),this.$cache.s_to.removeClass("type_last");break;case"to":this.coords.p_gap=this.toFixed(this.coords.p_pointer-this.coords.p_to_fake),this.$cache.s_to.addClass("state_hover"),this.$cache.s_to.addClass("type_last"),this.$cache.s_from.removeClass("type_last");break;case"both":this.coords.p_gap_left=this.toFixed(this.coords.p_pointer-this.coords.p_from_fake),this.coords.p_gap_right=this.toFixed(this.coords.p_to_fake-this.coords.p_pointer),this.$cache.s_to.removeClass("type_last"),this.$cache.s_from.removeClass("type_last")}},appendDisableMask:function(){this.$cache.cont.append('<span class="irs-disable-mask"></span>'),this.$cache.cont.addClass("irs-disabled")},removeDisableMask:function(){this.$cache.cont.remove(".irs-disable-mask"),this.$cache.cont.removeClass("irs-disabled")},remove:function(){this.$cache.cont.remove(),this.$cache.cont=null,this.$cache.line.off("keydown.irs_"+this.plugin_count),this.$cache.body.off("touchmove.irs_"+this.plugin_count),this.$cache.body.off("mousemove.irs_"+this.plugin_count),this.$cache.win.off("touchend.irs_"+this.plugin_count),this.$cache.win.off("mouseup.irs_"+this.plugin_count),e&&(this.$cache.body.off("mouseup.irs_"+this.plugin_count),this.$cache.body.off("mouseleave.irs_"+this.plugin_count)),this.$cache.grid_labels=[],this.coords.big=[],this.coords.big_w=[],this.coords.big_p=[],this.coords.big_x=[],cancelAnimationFrame(this.raf_id)},bindEvents:function(){this.no_diapason||(this.$cache.body.on("touchmove.irs_"+this.plugin_count,this.pointerMove.bind(this)),this.$cache.body.on("mousemove.irs_"+this.plugin_count,this.pointerMove.bind(this)),this.$cache.win.on("touchend.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.win.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.line.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.line.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.line.on("focus.irs_"+this.plugin_count,this.pointerFocus.bind(this)),this.options.drag_interval&&"double"===this.options.type?(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"both")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"both"))):(this.$cache.bar.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.bar.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))),"single"===this.options.type?(this.$cache.single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.shad_single.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.s_single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"single")),this.$cache.edge.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_single.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))):(this.$cache.single.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.single.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,null)),this.$cache.from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("touchstart.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.shad_from.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("touchstart.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.s_from.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"from")),this.$cache.to.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.s_to.on("mousedown.irs_"+this.plugin_count,this.pointerDown.bind(this,"to")),this.$cache.shad_from.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click")),this.$cache.shad_to.on("mousedown.irs_"+this.plugin_count,this.pointerClick.bind(this,"click"))),this.options.keyboard&&this.$cache.line.on("keydown.irs_"+this.plugin_count,this.key.bind(this,"keyboard")),e&&(this.$cache.body.on("mouseup.irs_"+this.plugin_count,this.pointerUp.bind(this)),this.$cache.body.on("mouseleave.irs_"+this.plugin_count,this.pointerUp.bind(this))))},pointerFocus:function(t){var i,s;this.target||(i=(s="single"===this.options.type?this.$cache.single:this.$cache.from).offset().left,i+=s.width()/2-1,this.pointerClick("single",{preventDefault:function(){},pageX:i}))},pointerMove:function(t){if(this.dragging){var i=t.pageX||t.originalEvent.touches&&t.originalEvent.touches[0].pageX;this.coords.x_pointer=i-this.coords.x_gap,this.calc()}},pointerUp:function(t){this.current_plugin===this.plugin_count&&this.is_active&&(this.is_active=!1,this.$cache.cont.find(".state_hover").removeClass("state_hover"),this.force_redraw=!0,e&&a("*").prop("unselectable",!1),this.updateScene(),this.restoreOriginalMinInterval(),(a.contains(this.$cache.cont[0],t.target)||this.dragging)&&this.callOnFinish(),this.dragging=!1)},pointerDown:function(t,i){i.preventDefault(),i.stopPropagation();var s=i.pageX||i.originalEvent.touches&&i.originalEvent.touches[0].pageX;2!==i.button&&("both"===t&&this.setTempMinInterval(),t=t||(this.target||"from"),this.current_plugin=this.plugin_count,this.target=t,this.is_active=!0,this.dragging=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=s-this.coords.x_gap,this.calcPointerPercent(),this.changeLevel(t),e&&a("*").prop("unselectable",!0),this.$cache.line.trigger("focus"),this.updateScene())},pointerClick:function(t,i){i.preventDefault(),i.stopPropagation();var s=i.pageX||i.originalEvent.touches&&i.originalEvent.touches[0].pageX;2!==i.button&&(this.current_plugin=this.plugin_count,this.target=t,this.is_click=!0,this.coords.x_gap=this.$cache.rs.offset().left,this.coords.x_pointer=+(s-this.coords.x_gap).toFixed(),this.force_redraw=!0,this.calc(),this.$cache.line.trigger("focus"))},key:function(t,i){if(!(this.current_plugin!==this.plugin_count||i.altKey||i.ctrlKey||i.shiftKey||i.metaKey)){switch(i.which){case 83:case 65:case 40:case 37:i.preventDefault(),this.moveByKey(!1);break;case 87:case 68:case 38:case 39:i.preventDefault(),this.moveByKey(!0)}return!0}},moveByKey:function(t){var i=this.coords.p_pointer,s=(this.options.max-this.options.min)/100;s=this.options.step/s,t?i+=s:i-=s,this.coords.x_pointer=this.toFixed(this.coords.w_rs/100*i),this.is_key=!0,this.calc()},setMinMax:function(){if(this.options){if(this.options.hide_min_max)return this.$cache.min[0].style.display="none",void(this.$cache.max[0].style.display="none");if(this.options.values.length)this.$cache.min.html(this.decorate(this.options.p_values[this.options.min])),this.$cache.max.html(this.decorate(this.options.p_values[this.options.max]));else{var t=this._prettify(this.options.min),i=this._prettify(this.options.max);this.result.min_pretty=t,this.result.max_pretty=i,this.$cache.min.html(this.decorate(t,this.options.min)),this.$cache.max.html(this.decorate(i,this.options.max))}this.labels.w_min=this.$cache.min.outerWidth(!1),this.labels.w_max=this.$cache.max.outerWidth(!1)}},setTempMinInterval:function(){var t=this.result.to-this.result.from;null===this.old_min_interval&&(this.old_min_interval=this.options.min_interval),this.options.min_interval=t},restoreOriginalMinInterval:function(){null!==this.old_min_interval&&(this.options.min_interval=this.old_min_interval,this.old_min_interval=null)},calc:function(t){if(this.options&&(this.calc_count++,10!==this.calc_count&&!t||(this.calc_count=0,this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.calcHandlePercent()),this.coords.w_rs)){this.calcPointerPercent();var i=this.getHandleX();switch("both"===this.target&&(this.coords.p_gap=0,i=this.getHandleX()),"click"===this.target&&(this.coords.p_gap=this.coords.p_handle/2,i=this.getHandleX(),this.options.drag_interval?this.target="both_one":this.target=this.chooseHandle(i)),this.target){case"base":var s=(this.options.max-this.options.min)/100,o=(this.result.from-this.options.min)/s,e=(this.result.to-this.options.min)/s;this.coords.p_single_real=this.toFixed(o),this.coords.p_from_real=this.toFixed(o),this.coords.p_to_real=this.toFixed(e),this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real),this.target=null;break;case"single":if(this.options.from_fixed)break;this.coords.p_single_real=this.convertToRealPercent(i),this.coords.p_single_real=this.calcWithStep(this.coords.p_single_real),this.coords.p_single_real=this.checkDiapason(this.coords.p_single_real,this.options.from_min,this.options.from_max),this.coords.p_single_fake=this.convertToFakePercent(this.coords.p_single_real);break;case"from":if(this.options.from_fixed)break;this.coords.p_from_real=this.convertToRealPercent(i),this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real),this.coords.p_from_real>this.coords.p_to_real&&(this.coords.p_from_real=this.coords.p_to_real),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,"from"),this.coords.p_from_real=this.checkMaxInterval(this.coords.p_from_real,this.coords.p_to_real,"from"),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real);break;case"to":if(this.options.to_fixed)break;this.coords.p_to_real=this.convertToRealPercent(i),this.coords.p_to_real=this.calcWithStep(this.coords.p_to_real),this.coords.p_to_real<this.coords.p_from_real&&(this.coords.p_to_real=this.coords.p_from_real),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_real=this.checkMinInterval(this.coords.p_to_real,this.coords.p_from_real,"to"),this.coords.p_to_real=this.checkMaxInterval(this.coords.p_to_real,this.coords.p_from_real,"to"),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);break;case"both":if(this.options.from_fixed||this.options.to_fixed)break;i=this.toFixed(i+.001*this.coords.p_handle),this.coords.p_from_real=this.convertToRealPercent(i)-this.coords.p_gap_left,this.coords.p_from_real=this.calcWithStep(this.coords.p_from_real),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_real=this.checkMinInterval(this.coords.p_from_real,this.coords.p_to_real,"from"),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_real=this.convertToRealPercent(i)+this.coords.p_gap_right,this.coords.p_to_real=this.calcWithStep(this.coords.p_to_real),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_real=this.checkMinInterval(this.coords.p_to_real,this.coords.p_from_real,"to"),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real);break;case"both_one":if(this.options.from_fixed||this.options.to_fixed)break;var h=this.convertToRealPercent(i),r=this.result.from_percent,n=this.result.to_percent-r,a=n/2,c=h-a,l=h+a;c<0&&(l=(c=0)+n),100<l&&(c=(l=100)-n),this.coords.p_from_real=this.calcWithStep(c),this.coords.p_from_real=this.checkDiapason(this.coords.p_from_real,this.options.from_min,this.options.from_max),this.coords.p_from_fake=this.convertToFakePercent(this.coords.p_from_real),this.coords.p_to_real=this.calcWithStep(l),this.coords.p_to_real=this.checkDiapason(this.coords.p_to_real,this.options.to_min,this.options.to_max),this.coords.p_to_fake=this.convertToFakePercent(this.coords.p_to_real)}"single"===this.options.type?(this.coords.p_bar_x=this.coords.p_handle/2,this.coords.p_bar_w=this.coords.p_single_fake,this.result.from_percent=this.coords.p_single_real,this.result.from=this.convertToValue(this.coords.p_single_real),this.result.from_pretty=this._prettify(this.result.from),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from])):(this.coords.p_bar_x=this.toFixed(this.coords.p_from_fake+this.coords.p_handle/2),this.coords.p_bar_w=this.toFixed(this.coords.p_to_fake-this.coords.p_from_fake),this.result.from_percent=this.coords.p_from_real,this.result.from=this.convertToValue(this.coords.p_from_real),this.result.from_pretty=this._prettify(this.result.from),this.result.to_percent=this.coords.p_to_real,this.result.to=this.convertToValue(this.coords.p_to_real),this.result.to_pretty=this._prettify(this.result.to),this.options.values.length&&(this.result.from_value=this.options.values[this.result.from],this.result.to_value=this.options.values[this.result.to])),this.calcMinMax(),this.calcLabels()}},calcPointerPercent:function(){this.coords.w_rs?(this.coords.x_pointer<0||isNaN(this.coords.x_pointer)?this.coords.x_pointer=0:this.coords.x_pointer>this.coords.w_rs&&(this.coords.x_pointer=this.coords.w_rs),this.coords.p_pointer=this.toFixed(this.coords.x_pointer/this.coords.w_rs*100)):this.coords.p_pointer=0},convertToRealPercent:function(t){return t/(100-this.coords.p_handle)*100},convertToFakePercent:function(t){return t/100*(100-this.coords.p_handle)},getHandleX:function(){var t=100-this.coords.p_handle,i=this.toFixed(this.coords.p_pointer-this.coords.p_gap);return i<0?i=0:t<i&&(i=t),i},calcHandlePercent:function(){"single"===this.options.type?this.coords.w_handle=this.$cache.s_single.outerWidth(!1):this.coords.w_handle=this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100)},chooseHandle:function(t){return"single"===this.options.type?"single":this.coords.p_from_real+(this.coords.p_to_real-this.coords.p_from_real)/2<=t?this.options.to_fixed?"from":"to":this.options.from_fixed?"to":"from"},calcMinMax:function(){this.coords.w_rs&&(this.labels.p_min=this.labels.w_min/this.coords.w_rs*100,this.labels.p_max=this.labels.w_max/this.coords.w_rs*100)},calcLabels:function(){this.coords.w_rs&&!this.options.hide_from_to&&("single"===this.options.type?(this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=this.coords.p_single_fake+this.coords.p_handle/2-this.labels.p_single_fake/2):(this.labels.w_from=this.$cache.from.outerWidth(!1),this.labels.p_from_fake=this.labels.w_from/this.coords.w_rs*100,this.labels.p_from_left=this.coords.p_from_fake+this.coords.p_handle/2-this.labels.p_from_fake/2,this.labels.p_from_left=this.toFixed(this.labels.p_from_left),this.labels.p_from_left=this.checkEdges(this.labels.p_from_left,this.labels.p_from_fake),this.labels.w_to=this.$cache.to.outerWidth(!1),this.labels.p_to_fake=this.labels.w_to/this.coords.w_rs*100,this.labels.p_to_left=this.coords.p_to_fake+this.coords.p_handle/2-this.labels.p_to_fake/2,this.labels.p_to_left=this.toFixed(this.labels.p_to_left),this.labels.p_to_left=this.checkEdges(this.labels.p_to_left,this.labels.p_to_fake),this.labels.w_single=this.$cache.single.outerWidth(!1),this.labels.p_single_fake=this.labels.w_single/this.coords.w_rs*100,this.labels.p_single_left=(this.labels.p_from_left+this.labels.p_to_left+this.labels.p_to_fake)/2-this.labels.p_single_fake/2,this.labels.p_single_left=this.toFixed(this.labels.p_single_left)),this.labels.p_single_left=this.checkEdges(this.labels.p_single_left,this.labels.p_single_fake))},updateScene:function(){this.raf_id&&(cancelAnimationFrame(this.raf_id),this.raf_id=null),clearTimeout(this.update_tm),this.update_tm=null,this.options&&(this.drawHandles(),this.is_active?this.raf_id=requestAnimationFrame(this.updateScene.bind(this)):this.update_tm=setTimeout(this.updateScene.bind(this),300))},drawHandles:function(){this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&(this.coords.w_rs!==this.coords.w_rs_old&&(this.target="base",this.is_resize=!0),this.coords.w_rs===this.coords.w_rs_old&&!this.force_redraw||(this.setMinMax(),this.calc(!0),this.drawLabels(),this.options.grid&&(this.calcGridMargin(),this.calcGridLabels()),this.force_redraw=!0,this.coords.w_rs_old=this.coords.w_rs,this.drawShadow()),this.coords.w_rs&&(this.dragging||this.force_redraw||this.is_key)&&((this.old_from!==this.result.from||this.old_to!==this.result.to||this.force_redraw||this.is_key)&&(this.drawLabels(),this.$cache.bar[0].style.left=this.coords.p_bar_x+"%",this.$cache.bar[0].style.width=this.coords.p_bar_w+"%","single"===this.options.type?this.$cache.s_single[0].style.left=this.coords.p_single_fake+"%":(this.$cache.s_from[0].style.left=this.coords.p_from_fake+"%",this.$cache.s_to[0].style.left=this.coords.p_to_fake+"%",this.old_from===this.result.from&&!this.force_redraw||(this.$cache.from[0].style.left=this.labels.p_from_left+"%"),this.old_to===this.result.to&&!this.force_redraw||(this.$cache.to[0].style.left=this.labels.p_to_left+"%")),this.$cache.single[0].style.left=this.labels.p_single_left+"%",this.writeToInput(),this.old_from===this.result.from&&this.old_to===this.result.to||this.is_start||(this.$cache.input.trigger("change"),this.$cache.input.trigger("input")),this.old_from=this.result.from,this.old_to=this.result.to,this.is_resize||this.is_update||this.is_start||this.is_finish||this.callOnChange(),(this.is_key||this.is_click)&&(this.is_key=!1,this.is_click=!1,this.callOnFinish()),this.is_update=!1,this.is_resize=!1,this.is_finish=!1),this.is_start=!1,this.is_key=!1,this.is_click=!1,this.force_redraw=!1))},drawLabels:function(){if(this.options){var t,i,s,o,e,h=this.options.values.length,r=this.options.p_values;if(!this.options.hide_from_to)if("single"===this.options.type)t=h?this.decorate(r[this.result.from]):(o=this._prettify(this.result.from),this.decorate(o,this.result.from)),this.$cache.single.html(t),this.calcLabels(),this.labels.p_single_left<this.labels.p_min+1?this.$cache.min[0].style.visibility="hidden":this.$cache.min[0].style.visibility="visible",this.labels.p_single_left+this.labels.p_single_fake>100-this.labels.p_max-1?this.$cache.max[0].style.visibility="hidden":this.$cache.max[0].style.visibility="visible";else{s=h?(this.options.decorate_both?(t=this.decorate(r[this.result.from]),t+=this.options.values_separator,t+=this.decorate(r[this.result.to])):t=this.decorate(r[this.result.from]+this.options.values_separator+r[this.result.to]),i=this.decorate(r[this.result.from]),this.decorate(r[this.result.to])):(o=this._prettify(this.result.from),e=this._prettify(this.result.to),this.options.decorate_both?(t=this.decorate(o,this.result.from),t+=this.options.values_separator,t+=this.decorate(e,this.result.to)):t=this.decorate(o+this.options.values_separator+e,this.result.to),i=this.decorate(o,this.result.from),this.decorate(e,this.result.to)),this.$cache.single.html(t),this.$cache.from.html(i),this.$cache.to.html(s),this.calcLabels();var n=Math.min(this.labels.p_single_left,this.labels.p_from_left),a=this.labels.p_single_left+this.labels.p_single_fake,c=this.labels.p_to_left+this.labels.p_to_fake,l=Math.max(a,c);this.labels.p_from_left+this.labels.p_from_fake>=this.labels.p_to_left?(this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",l=this.result.from===this.result.to?("from"===this.target?this.$cache.from[0].style.visibility="visible":"to"===this.target?this.$cache.to[0].style.visibility="visible":this.target||(this.$cache.from[0].style.visibility="visible"),this.$cache.single[0].style.visibility="hidden",c):(this.$cache.from[0].style.visibility="hidden",this.$cache.to[0].style.visibility="hidden",this.$cache.single[0].style.visibility="visible",Math.max(a,c))):(this.$cache.from[0].style.visibility="visible",this.$cache.to[0].style.visibility="visible",this.$cache.single[0].style.visibility="hidden"),n<this.labels.p_min+1?this.$cache.min[0].style.visibility="hidden":this.$cache.min[0].style.visibility="visible",l>100-this.labels.p_max-1?this.$cache.max[0].style.visibility="hidden":this.$cache.max[0].style.visibility="visible"}}},drawShadow:function(){var t,i,s,o,e=this.options,h=this.$cache,r="number"==typeof e.from_min&&!isNaN(e.from_min),n="number"==typeof e.from_max&&!isNaN(e.from_max),a="number"==typeof e.to_min&&!isNaN(e.to_min),c="number"==typeof e.to_max&&!isNaN(e.to_max);"single"===e.type?e.from_shadow&&(r||n)?(t=this.convertToPercent(r?e.from_min:e.min),i=this.convertToPercent(n?e.from_max:e.max)-t,t=this.toFixed(t-this.coords.p_handle/100*t),i=this.toFixed(i-this.coords.p_handle/100*i),t+=this.coords.p_handle/2,h.shad_single[0].style.display="block",h.shad_single[0].style.left=t+"%",h.shad_single[0].style.width=i+"%"):h.shad_single[0].style.display="none":(e.from_shadow&&(r||n)?(t=this.convertToPercent(r?e.from_min:e.min),i=this.convertToPercent(n?e.from_max:e.max)-t,t=this.toFixed(t-this.coords.p_handle/100*t),i=this.toFixed(i-this.coords.p_handle/100*i),t+=this.coords.p_handle/2,h.shad_from[0].style.display="block",h.shad_from[0].style.left=t+"%",h.shad_from[0].style.width=i+"%"):h.shad_from[0].style.display="none",e.to_shadow&&(a||c)?(s=this.convertToPercent(a?e.to_min:e.min),o=this.convertToPercent(c?e.to_max:e.max)-s,s=this.toFixed(s-this.coords.p_handle/100*s),o=this.toFixed(o-this.coords.p_handle/100*o),s+=this.coords.p_handle/2,h.shad_to[0].style.display="block",h.shad_to[0].style.left=s+"%",h.shad_to[0].style.width=o+"%"):h.shad_to[0].style.display="none")},writeToInput:function(){"single"===this.options.type?(this.options.values.length?this.$cache.input.prop("value",this.result.from_value):this.$cache.input.prop("value",this.result.from),this.$cache.input.data("from",this.result.from)):(this.options.values.length?this.$cache.input.prop("value",this.result.from_value+this.options.input_values_separator+this.result.to_value):this.$cache.input.prop("value",this.result.from+this.options.input_values_separator+this.result.to),this.$cache.input.data("from",this.result.from),this.$cache.input.data("to",this.result.to))},callOnStart:function(){this.writeToInput(),this.options.onStart&&"function"==typeof this.options.onStart&&(this.options.scope?this.options.onStart.call(this.options.scope,this.result):this.options.onStart(this.result))},callOnChange:function(){this.writeToInput(),this.options.onChange&&"function"==typeof this.options.onChange&&(this.options.scope?this.options.onChange.call(this.options.scope,this.result):this.options.onChange(this.result))},callOnFinish:function(){this.writeToInput(),this.options.onFinish&&"function"==typeof this.options.onFinish&&(this.options.scope?this.options.onFinish.call(this.options.scope,this.result):this.options.onFinish(this.result))},callOnUpdate:function(){this.writeToInput(),this.options.onUpdate&&"function"==typeof this.options.onUpdate&&(this.options.scope?this.options.onUpdate.call(this.options.scope,this.result):this.options.onUpdate(this.result))},toggleInput:function(){if(this.$cache.input.toggleClass("irs-hidden-input"),this.has_tab_index)this.$cache.input.prop("tabindex",-1);else try{this.$cache.input.removeProp("tabindex")}catch(t){}this.has_tab_index=!this.has_tab_index},convertToPercent:function(t,i){var s,o=this.options.max-this.options.min,e=o/100;return o?(s=(i?t:t-this.options.min)/e,this.toFixed(s)):(this.no_diapason=!0,0)},convertToValue:function(t){var i,s,o=this.options.min,e=this.options.max,h=o.toString().split(".")[1],r=e.toString().split(".")[1],n=0,a=0;if(0===t)return this.options.min;if(100===t)return this.options.max;h&&(n=i=h.length),r&&(n=s=r.length),i&&s&&(n=s<=i?i:s),o<0&&(o=+(o+(a=Math.abs(o))).toFixed(n),e=+(e+a).toFixed(n));var c,l=(e-o)/100*t+o,_=this.options.step.toString().split(".")[1];return l=_?+l.toFixed(_.length):(l/=this.options.step,+(l*=this.options.step).toFixed(0)),a&&(l-=a),(c=_?+l.toFixed(_.length):this.toFixed(l))<this.options.min?c=this.options.min:c>this.options.max&&(c=this.options.max),c},calcWithStep:function(t){var i=Math.round(t/this.coords.p_step)*this.coords.p_step;return 100<i&&(i=100),100===t&&(i=100),this.toFixed(i)},checkMinInterval:function(t,i,s){var o,e,h=this.options;return h.min_interval?(o=this.convertToValue(t),e=this.convertToValue(i),"from"===s?e-o<h.min_interval&&(o=e-h.min_interval):o-e<h.min_interval&&(o=e+h.min_interval),this.convertToPercent(o)):t},checkMaxInterval:function(t,i,s){var o,e,h=this.options;return h.max_interval?(o=this.convertToValue(t),e=this.convertToValue(i),"from"===s?e-o>h.max_interval&&(o=e-h.max_interval):o-e>h.max_interval&&(o=e+h.max_interval),this.convertToPercent(o)):t},checkDiapason:function(t,i,s){var o=this.convertToValue(t),e=this.options;return"number"!=typeof i&&(i=e.min),"number"!=typeof s&&(s=e.max),o<i&&(o=i),s<o&&(o=s),this.convertToPercent(o)},toFixed:function(t){return+(t=t.toFixed(20))},_prettify:function(t){return this.options.prettify_enabled?this.options.prettify&&"function"==typeof this.options.prettify?this.options.prettify(t):this.prettify(t):t},prettify:function(t){return t.toString().replace(/(\d{1,3}(?=(?:\d\d\d)+(?!\d)))/g,"$1"+this.options.prettify_separator)},checkEdges:function(t,i){return this.options.force_edges&&(t<0?t=0:100-i<t&&(t=100-i)),this.toFixed(t)},validate:function(){var t,i,s=this.options,o=this.result,e=s.values,h=e.length;if("string"==typeof s.min&&(s.min=+s.min),"string"==typeof s.max&&(s.max=+s.max),"string"==typeof s.from&&(s.from=+s.from),"string"==typeof s.to&&(s.to=+s.to),"string"==typeof s.step&&(s.step=+s.step),"string"==typeof s.from_min&&(s.from_min=+s.from_min),"string"==typeof s.from_max&&(s.from_max=+s.from_max),"string"==typeof s.to_min&&(s.to_min=+s.to_min),"string"==typeof s.to_max&&(s.to_max=+s.to_max),"string"==typeof s.grid_num&&(s.grid_num=+s.grid_num),s.max<s.min&&(s.max=s.min),h)for(s.p_values=[],s.min=0,s.max=h-1,s.step=1,s.grid_num=s.max,s.grid_snap=!0,i=0;i<h;i++)t=+e[i],t=isNaN(t)?e[i]:(e[i]=t,this._prettify(t)),s.p_values.push(t);"number"==typeof s.from&&!isNaN(s.from)||(s.from=s.min),"number"==typeof s.to&&!isNaN(s.to)||(s.to=s.max),"single"===s.type?(s.from<s.min&&(s.from=s.min),s.from>s.max&&(s.from=s.max)):(s.from<s.min&&(s.from=s.min),s.from>s.max&&(s.from=s.max),s.to<s.min&&(s.to=s.min),s.to>s.max&&(s.to=s.max),this.update_check.from&&(this.update_check.from!==s.from&&s.from>s.to&&(s.from=s.to),this.update_check.to!==s.to&&s.to<s.from&&(s.to=s.from)),s.from>s.to&&(s.from=s.to),s.to<s.from&&(s.to=s.from)),("number"!=typeof s.step||isNaN(s.step)||!s.step||s.step<0)&&(s.step=1),"number"==typeof s.from_min&&s.from<s.from_min&&(s.from=s.from_min),"number"==typeof s.from_max&&s.from>s.from_max&&(s.from=s.from_max),"number"==typeof s.to_min&&s.to<s.to_min&&(s.to=s.to_min),"number"==typeof s.to_max&&s.from>s.to_max&&(s.to=s.to_max),o&&(o.min!==s.min&&(o.min=s.min),o.max!==s.max&&(o.max=s.max),(o.from<o.min||o.from>o.max)&&(o.from=s.from),(o.to<o.min||o.to>o.max)&&(o.to=s.to)),("number"!=typeof s.min_interval||isNaN(s.min_interval)||!s.min_interval||s.min_interval<0)&&(s.min_interval=0),("number"!=typeof s.max_interval||isNaN(s.max_interval)||!s.max_interval||s.max_interval<0)&&(s.max_interval=0),s.min_interval&&s.min_interval>s.max-s.min&&(s.min_interval=s.max-s.min),s.max_interval&&s.max_interval>s.max-s.min&&(s.max_interval=s.max-s.min)},decorate:function(t,i){var s="",o=this.options;return o.prefix&&(s+=o.prefix),s+=t,o.max_postfix&&(o.values.length&&t===o.p_values[o.max]||i===o.max)&&(s+=o.max_postfix,o.postfix&&(s+=" ")),o.postfix&&(s+=o.postfix),s},updateFrom:function(){this.result.from=this.options.from,this.result.from_percent=this.convertToPercent(this.result.from),this.result.from_pretty=this._prettify(this.result.from),this.options.values&&(this.result.from_value=this.options.values[this.result.from])},updateTo:function(){this.result.to=this.options.to,this.result.to_percent=this.convertToPercent(this.result.to),this.result.to_pretty=this._prettify(this.result.to),this.options.values&&(this.result.to_value=this.options.values[this.result.to])},updateResult:function(){this.result.min=this.options.min,this.result.max=this.options.max,this.updateFrom(),this.updateTo()},appendGrid:function(){if(this.options.grid){var t,i,s,o,e,h=this.options,r=h.max-h.min,n=h.grid_num,a=0,c=0,l=4,_="";for(this.calcGridMargin(),a=h.grid_snap?50<r?(n=50/h.step,this.toFixed(h.step/.5)):(n=r/h.step,this.toFixed(h.step/(r/100))):this.toFixed(100/n),4<n&&(l=3),7<n&&(l=2),14<n&&(l=1),28<n&&(l=0),t=0;t<n+1;t++){for(s=l,100<(c=this.toFixed(a*t))&&(c=100),o=((this.coords.big[t]=c)-a*(t-1))/(s+1),i=1;i<=s&&0!==c;i++)_+='<span class="irs-grid-pol small" style="left: '+this.toFixed(c-o*i)+'%"></span>';_+='<span class="irs-grid-pol" style="left: '+c+'%"></span>',e=this.convertToValue(c),_+='<span class="irs-grid-text js-grid-text-'+t+'" style="left: '+c+'%">'+(e=h.values.length?h.p_values[e]:this._prettify(e))+"</span>"}this.coords.big_num=Math.ceil(n+1),this.$cache.cont.addClass("irs-with-grid"),this.$cache.grid.html(_),this.cacheGridLabels()}},cacheGridLabels:function(){var t,i,s=this.coords.big_num;for(i=0;i<s;i++)t=this.$cache.grid.find(".js-grid-text-"+i),this.$cache.grid_labels.push(t);this.calcGridLabels()},calcGridLabels:function(){var t,i,s=[],o=[],e=this.coords.big_num;for(t=0;t<e;t++)this.coords.big_w[t]=this.$cache.grid_labels[t].outerWidth(!1),this.coords.big_p[t]=this.toFixed(this.coords.big_w[t]/this.coords.w_rs*100),this.coords.big_x[t]=this.toFixed(this.coords.big_p[t]/2),s[t]=this.toFixed(this.coords.big[t]-this.coords.big_x[t]),o[t]=this.toFixed(s[t]+this.coords.big_p[t]);for(this.options.force_edges&&(s[0]<-this.coords.grid_gap&&(s[0]=-this.coords.grid_gap,o[0]=this.toFixed(s[0]+this.coords.big_p[0]),this.coords.big_x[0]=this.coords.grid_gap),o[e-1]>100+this.coords.grid_gap&&(o[e-1]=100+this.coords.grid_gap,s[e-1]=this.toFixed(o[e-1]-this.coords.big_p[e-1]),this.coords.big_x[e-1]=this.toFixed(this.coords.big_p[e-1]-this.coords.grid_gap))),this.calcGridCollision(2,s,o),this.calcGridCollision(4,s,o),t=0;t<e;t++)i=this.$cache.grid_labels[t][0],this.coords.big_x[t]!==Number.POSITIVE_INFINITY&&(i.style.marginLeft=-this.coords.big_x[t]+"%")},calcGridCollision:function(t,i,s){var o,e,h,r=this.coords.big_num;for(o=0;o<r&&!(r<=(e=o+t/2));o+=t)h=this.$cache.grid_labels[e][0],s[o]<=i[e]?h.style.visibility="visible":h.style.visibility="hidden"},calcGridMargin:function(){this.options.grid_margin&&(this.coords.w_rs=this.$cache.rs.outerWidth(!1),this.coords.w_rs&&("single"===this.options.type?this.coords.w_handle=this.$cache.s_single.outerWidth(!1):this.coords.w_handle=this.$cache.s_from.outerWidth(!1),this.coords.p_handle=this.toFixed(this.coords.w_handle/this.coords.w_rs*100),this.coords.grid_gap=this.toFixed(this.coords.p_handle/2-.1),this.$cache.grid[0].style.width=this.toFixed(100-this.coords.p_handle)+"%",this.$cache.grid[0].style.left=this.coords.grid_gap+"%"))},update:function(t){this.input&&(this.is_update=!0,this.options.from=this.result.from,this.options.to=this.result.to,this.update_check.from=this.result.from,this.update_check.to=this.result.to,this.options=a.extend(this.options,t),this.validate(),this.updateResult(t),this.toggleInput(),this.remove(),this.init(!0))},reset:function(){this.input&&(this.updateResult(),this.update())},destroy:function(){this.input&&(this.toggleInput(),this.$cache.input.prop("readonly",!1),a.data(this.input,"ionRangeSlider",null),this.remove(),this.input=null,this.options=null)}},a.fn.ionRangeSlider=function(t){return this.each(function(){a.data(this,"ionRangeSlider")||a.data(this,"ionRangeSlider",new h(this,t,o++))})},function(){for(var h=0,t=["ms","moz","webkit","o"],i=0;i<t.length&&!l.requestAnimationFrame;++i)l.requestAnimationFrame=l[t[i]+"RequestAnimationFrame"],l.cancelAnimationFrame=l[t[i]+"CancelAnimationFrame"]||l[t[i]+"CancelRequestAnimationFrame"];l.requestAnimationFrame||(l.requestAnimationFrame=function(t,i){var s=(new Date).getTime(),o=Math.max(0,16-(s-h)),e=l.setTimeout(function(){t(s+o)},o);return h=s+o,e}),l.cancelAnimationFrame||(l.cancelAnimationFrame=function(t){clearTimeout(t)})}()});
##############################################
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/babel-polyfill/babel-polyfill.min.js-2-return it(jt(this),t,arguments.length>1?arguments[1]:void 0)},forEach:function forEach(t){Q(jt(this),t,arguments.length>1?arguments[1]:void 0)},indexOf:function indexOf(t){return ut(jt(this),t,arguments.length>1?arguments[1]:void 0)},includes:function includes(t){return ot(jt(this),t,arguments.length>1?arguments[1]:void 0)},join:function join(t){return vt.apply(jt(this),arguments)},lastIndexOf:function lastIndexOf(t){return st.apply(jt(this),arguments)},map:function map(t){return Ft(jt(this),t,arguments.length>1?arguments[1]:void 0)},reduce:function reduce(t){return lt.apply(jt(this),arguments)},reduceRight:function reduceRight(t){return ht.apply(jt(this),arguments)},reverse:function reverse(){for(var t,n=this,r=jt(n).length,e=Math.floor(r/2),i=0;i<e;)t=n[i],n[i++]=n[--r],n[r]=t;return n},some:function some(t){return nt(jt(this),t,arguments.length>1?arguments[1]:void 0)},sort:function sort(t){return pt.call(jt(this),t)},subarray:function subarray(t,n){var r=jt(this),e=r.length,i=y(t,e);return new(N(r,r[wt]))(r.buffer,r.byteOffset+i*r.BYTES_PER_ELEMENT,d((void 0===n?e:y(n,e))-i))}},Wt=function slice(t,n){return kt(this,dt.call(jt(this),t,n))},Bt=function set(t){jt(this);var n=It(arguments[1],1),r=this.length,e=S(t),i=d(e.length),o=0;if(i+n>r)throw V(Ot);for(;o<i;)this[n+o]=e[o++]},Vt={entries:function entries(){return at.call(jt(this))},keys:function keys(){return ft.call(jt(this))},values:function values(){return ct.call(jt(this))}},zt=function(t,n){return w(t)&&t[_t]&&"symbol"!=typeof n&&n in t&&String(+n)==String(n)},Kt=function getOwnPropertyDescriptor(t,n){return zt(t,n=g(n,!0))?l(2,t[n]):B(t,n)},Jt=function defineProperty(t,n,r){return!(zt(t,n=g(n,!0))&&w(r)&&b(r,"value"))||b(r,"get")||b(r,"set")||r.configurable||b(r,"writable")&&!r.writable||b(r,"enumerable")&&!r.enumerable?W(t,n,r):(t[n]=r.value,t)};St||(D.f=Kt,G.f=Jt),u(u.S+u.F*!St,"Object",{getOwnPropertyDescriptor:Kt,defineProperty:Jt}),o(function(){yt.call({})})&&(yt=gt=function toString(){return vt.call(this)});var Yt=v({},Dt);v(Yt,Vt),h(Yt,bt,Vt.values),v(Yt,{slice:Wt,set:Bt,constructor:function(){},toString:yt,toLocaleString:Gt}),Tt(Yt,"buffer","b"),Tt(Yt,"byteOffset","o"),Tt(Yt,"byteLength","l"),Tt(Yt,"length","e"),W(Yt,xt,{get:function(){return this[_t]}}),n.exports=function(t,n,r,f){f=!!f;var a=t+(f?"Clamped":"")+"Array",l="Uint8Array"!=a,v="get"+t,p="set"+t,y=i[a],g=y||{},b=y&&O(y),x=!y||!c.ABV,S={},_=y&&y[X],P=function(t,r){var e=t._d;return e.v[v](r*n+e.o,Pt)},A=function(t,r,e){var i=t._d;f&&(e=(e=Math.round(e))<0?0:e>255?255:255&e),i.v[p](r*n+i.o,e,Pt)},M=function(t,n){W(t,n,{get:function(){return P(this,n)},set:function(t){return A(this,n,t)},enumerable:!0})};x?(y=r(function(t,r,e,i){s(t,y,a,"_d");var o,u,c,f,l=0,v=0;if(w(r)){if(!(r instanceof H||(f=m(r))==J||f==Y))return _t in r?Rt(y,r):Lt.call(y,r);o=r,v=It(e,n);var p=r.byteLength;if(void 0===i){if(p%n)throw V(Ot);if(u=p-v,u<0)throw V(Ot)}else if(u=d(i)*n,u+v>p)throw V(Ot);c=u/n}else c=Mt(r,!0),u=c*n,o=new H(u);for(h(t,"_d",{b:o,o:v,l:u,e:c,v:new Z(o)});l<c;)M(t,l++)}),_=y[X]=E(Yt),h(_,"constructor",y)):T(function(t){new y(null),new y(t)},!0)||(y=r(function(t,r,e,i){s(t,y,a);var o;return w(r)?r instanceof H||(o=m(r))==J||o==Y?void 0!==i?new g(r,It(e,n),i):void 0!==e?new g(r,It(e,n)):new g(r):_t in r?Rt(y,r):Lt.call(y,r):new g(Mt(r,l))}),Q(b!==Function.prototype?F(g).concat(F(b)):F(g),function(t){t in y||h(y,t,g[t])}),y[X]=_,e||(_.constructor=y));var I=_[bt],j=!!I&&("values"==I.name||void 0==I.name),N=Vt.values;h(y,mt,!0),h(_,_t,a),h(_,Et,!0),h(_,wt,y),(f?new y(1)[xt]==a:xt in _)||W(_,xt,{get:function(){return a}}),S[a]=y,u(u.G+u.W+u.F*(y!=g),S),u(u.S,a,{BYTES_PER_ELEMENT:n,from:Lt,of:Ct}),q in _||h(_,q,n),u(u.P,a,Dt),L(a),u(u.P+u.F*At,a,{set:Bt}),u(u.P+u.F*!j,a,Vt),u(u.P+u.F*(_.toString!=yt),a,{toString:yt}),u(u.P+u.F*o(function(){new y(1).slice()}),a,{slice:Wt}),u(u.P+u.F*(o(function(){return[1,2].toLocaleString()!=new y([1,2]).toLocaleString()})||!o(function(){_.toLocaleString.call([1,2])})),a,{toLocaleString:Gt}),R[a]=j?I:N,e||j||h(_,bt,N)}}else n.exports=function(){}},{105:105,106:106,108:108,109:109,11:11,110:110,112:112,113:113,114:114,117:117,118:118,12:12,130:130,17:17,25:25,28:28,32:32,34:34,38:38,39:39,40:40,46:46,49:49,54:54,56:56,58:58,6:6,66:66,67:67,70:70,72:72,74:74,8:8,85:85,86:86,89:89,9:9,91:91,95:95}],112:[function(t,n,r){"use strict";var e=t(38),i=t(28),o=t(58),u=t(113),c=t(40),f=t(86),a=t(34),s=t(6),l=t(106),h=t(108),v=t(72).f,p=t(67).f,d=t(9),y=t(92),g="ArrayBuffer",b="DataView",x="prototype",m="Wrong length!",w="Wrong index!",S=e[g],_=e[b],E=e.Math,O=e.RangeError,F=e.Infinity,P=S,A=E.abs,M=E.pow,I=E.floor,j=E.log,N=E.LN2,k="buffer",R="byteLength",T="byteOffset",L=i?"_b":k,C=i?"_l":R,U=i?"_o":T,G=function(t,n,r){var e,i,o,u=Array(r),c=8*r-n-1,f=(1<<c)-1,a=f>>1,s=23===n?M(2,-24)-M(2,-77):0,l=0,h=t<0||0===t&&1/t<0?1:0;for(t=A(t),t!=t||t===F?(i=t!=t?1:0,e=f):(e=I(j(t)/N),t*(o=M(2,-e))<1&&(e--,o*=2),t+=e+a>=1?s/o:s*M(2,1-a),t*o>=2&&(e++,o/=2),e+a>=f?(i=0,e=f):e+a>=1?(i=(t*o-1)*M(2,n),e+=a):(i=t*M(2,a-1)*M(2,n),e=0));n>=8;u[l++]=255&i,i/=256,n-=8);for(e=e<<n|i,c+=n;c>0;u[l++]=255&e,e/=256,c-=8);return u[--l]|=128*h,u},D=function(t,n,r){var e,i=8*r-n-1,o=(1<<i)-1,u=o>>1,c=i-7,f=r-1,a=t[f--],s=127&a;for(a>>=7;c>0;s=256*s+t[f],f--,c-=8);for(e=s&(1<<-c)-1,s>>=-c,c+=n;c>0;e=256*e+t[f],f--,c-=8);if(0===s)s=1-u;else{if(s===o)return e?NaN:a?-F:F;e+=M(2,n),s-=u}return(a?-1:1)*e*M(2,s-n)},W=function(t){return t[3]<<24|t[2]<<16|t[1]<<8|t[0]},B=function(t){return[255&t]},V=function(t){return[255&t,t>>8&255]},z=function(t){return[255&t,t>>8&255,t>>16&255,t>>24&255]},K=function(t){return G(t,52,8)},J=function(t){return G(t,23,4)},Y=function(t,n,r){p(t[x],n,{get:function(){return this[r]}})},q=function(t,n,r,e){var i=+r,o=l(i);if(i!=o||o<0||o+n>t[C])throw O(w);var u=t[L]._b,c=o+t[U],f=u.slice(c,c+n);return e?f:f.reverse()},X=function(t,n,r,e,i,o){var u=+r,c=l(u);if(u!=c||c<0||c+n>t[C])throw O(w);for(var f=t[L]._b,a=c+t[U],s=e(+i),h=0;h<n;h++)f[a+h]=s[o?h:n-h-1]},$=function(t,n){s(t,S,g);var r=+n,e=h(r);if(r!=e)throw O(m);return e};if(u.ABV){if(!a(function(){new S})||!a(function(){new S(.5)})){S=function ArrayBuffer(t){return new P($(this,t))};for(var H,Z=S[x]=P[x],Q=v(P),tt=0;Q.length>tt;)(H=Q[tt++])in S||c(S,H,P[H]);o||(Z.constructor=S)}var nt=new _(new S(2)),rt=_[x].setInt8;nt.setInt8(0,2147483648),nt.setInt8(1,2147483649),!nt.getInt8(0)&&nt.getInt8(1)||f(_[x],{setInt8:function setInt8(t,n){rt.call(this,t,n<<24>>24)},setUint8:function setUint8(t,n){rt.call(this,t,n<<24>>24)}},!0)}else S=function ArrayBuffer(t){var n=$(this,t);this._b=d.call(Array(n),0),this[C]=n},_=function DataView(t,n,r){s(this,_,b),s(t,S,b);var e=t[C],i=l(n);if(i<0||i>e)throw O("Wrong offset!");if(r=void 0===r?e-i:h(r),i+r>e)throw O(m);this[L]=t,this[U]=i,this[C]=r},i&&(Y(S,R,"_l"),Y(_,k,"_b"),Y(_,R,"_l"),Y(_,T,"_o")),f(_[x],{getInt8:function getInt8(t){return q(this,1,t)[0]<<24>>24},getUint8:function getUint8(t){return q(this,1,t)[0]},getInt16:function getInt16(t){var n=q(this,2,t,arguments[1]);return(n[1]<<8|n[0])<<16>>16},getUint16:function getUint16(t){var n=q(this,2,t,arguments[1]);return n[1]<<8|n[0]},getInt32:function getInt32(t){return W(q(this,4,t,arguments[1]))},getUint32:function getUint32(t){return W(q(this,4,t,arguments[1]))>>>0},getFloat32:function getFloat32(t){return D(q(this,4,t,arguments[1]),23,4)},getFloat64:function getFloat64(t){return D(q(this,8,t,arguments[1]),52,8)},setInt8:function setInt8(t,n){X(this,1,t,B,n)},setUint8:function setUint8(t,n){X(this,1,t,B,n)},setInt16:function setInt16(t,n){X(this,2,t,V,n,arguments[2])},setUint16:function setUint16(t,n){X(this,2,t,V,n,arguments[2])},setInt32:function setInt32(t,n){X(this,4,t,z,n,arguments[2])},setUint32:function setUint32(t,n){X(this,4,t,z,n,arguments[2])},setFloat32:function setFloat32(t,n){X(this,4,t,J,n,arguments[2])},setFloat64:function setFloat64(t,n){X(this,8,t,K,n,arguments[2])}});y(S,g),y(_,b),c(_[x],u.VIEW,!0),r[g]=S,r[b]=_},{106:106,108:108,113:113,28:28,34:34,38:38,40:40,58:58,6:6,67:67,72:72,86:86,9:9,92:92}],113:[function(t,n,r){for(var e,i=t(38),o=t(40),u=t(114),c=u("typed_array"),f=u("view"),a=!(!i.ArrayBuffer||!i.DataView),s=a,l=0,h=9,v="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");l<h;)(e=i[v[l++]])?(o(e.prototype,c,!0),o(e.prototype,f,!0)):s=!1;n.exports={ABV:a,CONSTR:s,TYPED:c,VIEW:f}},{114:114,38:38,40:40}],114:[function(t,n,r){var e=0,i=Math.random();n.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++e+i).toString(36))}},{}],115:[function(t,n,r){var e=t(38),i=t(23),o=t(58),u=t(116),c=t(67).f;n.exports=function(t){var n=i.Symbol||(i.Symbol=o?{}:e.Symbol||{});"_"==t.charAt(0)||t in n||c(n,t,{value:u.f(t)})}},{116:116,23:23,38:38,58:58,67:67}],116:[function(t,n,r){r.f=t(117)},{117:117}],117:[function(t,n,r){var e=t(94)("wks"),i=t(114),o=t(38).Symbol,u="function"==typeof o,c=n.exports=function(t){return e[t]||(e[t]=u&&o[t]||(u?o:i)("Symbol."+t))};c.store=e},{114:114,38:38,94:94}],118:[function(t,n,r){var e=t(17),i=t(117)("iterator"),o=t(56);n.exports=t(23).getIteratorMethod=function(t){if(void 0!=t)return t[i]||t["@@iterator"]||o[e(t)]}},{117:117,17:17,23:23,56:56}],119:[function(t,n,r){var e=t(32),i=t(88)(/[\\^$*+?.()|[\]{}]/g,"\\$&");e(e.S,"RegExp",{escape:function escape(t){return i(t)}})},{32:32,88:88}],120:[function(t,n,r){var e=t(32);e(e.P,"Array",{copyWithin:t(8)}),t(5)("copyWithin")},{32:32,5:5,8:8}],121:[function(t,n,r){"use strict";var e=t(32),i=t(12)(4);e(e.P+e.F*!t(96)([].every,!0),"Array",{every:function every(t){return i(this,t,arguments[1])}})},{12:12,32:32,96:96}],122:[function(t,n,r){var e=t(32);e(e.P,"Array",{fill:t(9)}),t(5)("fill")},{32:32,5:5,9:9}],123:[function(t,n,r){"use strict";var e=t(32),i=t(12)(2);e(e.P+e.F*!t(96)([].filter,!0),"Array",{filter:function filter(t){return i(this,t,arguments[1])}})},{12:12,32:32,96:96}],124:[function(t,n,r){"use strict";var e=t(32),i=t(12)(6),o="findIndex",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{findIndex:function findIndex(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),t(5)(o)},{12:12,32:32,5:5}],125:[function(t,n,r){"use strict";var e=t(32),i=t(12)(5),o="find",u=!0;o in[]&&Array(1)[o](function(){u=!1}),e(e.P+e.F*u,"Array",{find:function find(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),t(5)(o)},{12:12,32:32,5:5}],126:[function(t,n,r){"use strict";var e=t(32),i=t(12)(0),o=t(96)([].forEach,!0);e(e.P+e.F*!o,"Array",{forEach:function forEach(t){return i(this,t,arguments[1])}})},{12:12,32:32,96:96}],127:[function(t,n,r){"use strict";var e=t(25),i=t(32),o=t(109),u=t(51),c=t(46),f=t(108),a=t(24),s=t(118);i(i.S+i.F*!t(54)(function(t){Array.from(t)}),"Array",{from:function from(t){var n,r,i,l,h=o(t),v="function"==typeof this?this:Array,p=arguments.length,d=p>1?arguments[1]:void 0,y=void 0!==d,g=0,b=s(h);if(y&&(d=e(d,p>2?arguments[2]:void 0,2)),void 0==b||v==Array&&c(b))for(n=f(h.length),r=new v(n);n>g;g++)a(r,g,y?d(h[g],g):h[g]);else for(l=b.call(h),r=new v;!(i=l.next()).done;g++)a(r,g,y?u(l,d,[i.value,g],!0):i.value);return r.length=g,r}})},{108:108,109:109,118:118,24:24,25:25,32:32,46:46,51:51,54:54}],128:[function(t,n,r){"use strict";var e=t(32),i=t(11)(!1),o=[].indexOf,u=!!o&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!t(96)(o)),"Array",{indexOf:function indexOf(t){return u?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},{11:11,32:32,96:96}],129:[function(t,n,r){var e=t(32);e(e.S,"Array",{isArray:t(47)})},{32:32,47:47}],130:[function(t,n,r){"use strict";var e=t(5),i=t(55),o=t(56),u=t(107);n.exports=t(53)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,i(1)):"keys"==n?i(0,r):"values"==n?i(0,t[r]):i(0,[r,t[r]])},"values"),o.Arguments=o.Array,e("keys"),e("values"),e("entries")},{107:107,5:5,53:53,55:55,56:56}],131:[function(t,n,r){"use strict";var e=t(32),i=t(107),o=[].join;e(e.P+e.F*(t(45)!=Object||!t(96)(o)),"Array",{join:function join(t){return o.call(i(this),void 0===t?",":t)}})},{107:107,32:32,45:45,96:96}],132:[function(t,n,r){"use strict";var e=t(32),i=t(107),o=t(106),u=t(108),c=[].lastIndexOf,f=!!c&&1/[1].lastIndexOf(1,-0)<0;e(e.P+e.F*(f||!t(96)(c)),"Array",{lastIndexOf:function lastIndexOf(t){if(f)return c.apply(this,arguments)||0;var n=i(this),r=u(n.length),e=r-1;for(arguments.length>1&&(e=Math.min(e,o(arguments[1]))),e<0&&(e=r+e);e>=0;e--)if(e in n&&n[e]===t)return e||0;return-1}})},{106:106,107:107,108:108,32:32,96:96}],133:[function(t,n,r){"use strict";var e=t(32),i=t(12)(1);e(e.P+e.F*!t(96)([].map,!0),"Array",{map:function map(t){return i(this,t,arguments[1])}})},{12:12,32:32,96:96}],134:[function(t,n,r){"use strict";var e=t(32),i=t(24);e(e.S+e.F*t(34)(function(){function F(){}return!(Array.of.call(F)instanceof F)}),"Array",{of:function of(){for(var t=0,n=arguments.length,r=new("function"==typeof this?this:Array)(n);n>t;)i(r,t,arguments[t++]);return r.length=n,r}})},{24:24,32:32,34:34}],135:[function(t,n,r){"use strict";var e=t(32),i=t(13);e(e.P+e.F*!t(96)([].reduceRight,!0),"Array",{reduceRight:function reduceRight(t){return i(this,t,arguments.length,arguments[1],!0)}})},{13:13,32:32,96:96}],136:[function(t,n,r){"use strict";var e=t(32),i=t(13);e(e.P+e.F*!t(96)([].reduce,!0),"Array",{reduce:function reduce(t){return i(this,t,arguments.length,arguments[1],!1)}})},{13:13,32:32,96:96}],137:[function(t,n,r){"use strict";var e=t(32),i=t(41),o=t(18),u=t(105),c=t(108),f=[].slice;e(e.P+e.F*t(34)(function(){i&&f.call(i)}),"Array",{slice:function slice(t,n){var r=c(this.length),e=o(this);if(n=void 0===n?r:n,"Array"==e)return f.call(this,t,n);for(var i=u(t,r),a=u(n,r),s=c(a-i),l=Array(s),h=0;h<s;h++)l[h]="String"==e?this.charAt(i+h):this[i+h];return l}})},{105:105,108:108,18:18,32:32,34:34,41:41}],138:[function(t,n,r){"use strict";var e=t(32),i=t(12)(3);e(e.P+e.F*!t(96)([].some,!0),"Array",{some:function some(t){return i(this,t,arguments[1])}})},{12:12,32:32,96:96}],139:[function(t,n,r){"use strict";var e=t(32),i=t(3),o=t(109),u=t(34),c=[].sort,f=[1,2,3];e(e.P+e.F*(u(function(){f.sort(void 0)})||!u(function(){f.sort(null)})||!t(96)(c)),"Array",{sort:function sort(t){return void 0===t?c.call(o(this)):c.call(o(this),i(t))}})},{109:109,3:3,32:32,34:34,96:96}],140:[function(t,n,r){t(91)("Array")},{91:91}],141:[function(t,n,r){var e=t(32);e(e.S,"Date",{now:function(){return(new Date).getTime()}})},{32:32}],142:[function(t,n,r){"use strict";var e=t(32),i=t(34),o=Date.prototype.getTime,u=function(t){return t>9?t:"0"+t};e(e.P+e.F*(i(function(){return"0385-07-25T07:06:39.999Z"!=new Date(-5e13-1).toISOString()})||!i(function(){new Date(NaN).toISOString()})),"Date",{toISOString:function toISOString(){if(!isFinite(o.call(this)))throw RangeError("Invalid time value");var t=this,n=t.getUTCFullYear(),r=t.getUTCMilliseconds(),e=n<0?"-":n>9999?"+":"";return e+("00000"+Math.abs(n)).slice(e?-6:-4)+"-"+u(t.getUTCMonth()+1)+"-"+u(t.getUTCDate())+"T"+u(t.getUTCHours())+":"+u(t.getUTCMinutes())+":"+u(t.getUTCSeconds())+"."+(r>99?r:"0"+u(r))+"Z"}})},{32:32,34:34}],143:[function(t,n,r){"use strict";var e=t(32),i=t(109),o=t(110);e(e.P+e.F*t(34)(function(){return null!==new Date(NaN).toJSON()||1!==Date.prototype.toJSON.call({toISOString:function(){return 1}})}),"Date",{toJSON:function toJSON(t){var n=i(this),r=o(n);return"number"!=typeof r||isFinite(r)?n.toISOString():null}})},{109:109,110:110,32:32,34:34}],144:[function(t,n,r){var e=t(117)("toPrimitive"),i=Date.prototype;e in i||t(40)(i,e,t(26))},{117:117,26:26,40:40}],145:[function(t,n,r){var e=Date.prototype,i="Invalid Date",o="toString",u=e[o],c=e.getTime;new Date(NaN)+""!=i&&t(87)(e,o,function toString(){var t=c.call(this);return t===t?u.call(this):i})},{87:87}],146:[function(t,n,r){var e=t(32);e(e.P,"Function",{bind:t(16)})},{16:16,32:32}],147:[function(t,n,r){"use strict";var e=t(49),i=t(74),o=t(117)("hasInstance"),u=Function.prototype;o in u||t(67).f(u,o,{value:function(t){if("function"!=typeof this||!e(t))return!1;if(!e(this.prototype))return t instanceof this;for(;t=i(t);)if(this.prototype===t)return!0;return!1}})},{117:117,49:49,67:67,74:74}],148:[function(t,n,r){var e=t(67).f,i=t(85),o=t(39),u=Function.prototype,c=/^\s*function ([^ (]*)/,f="name",a=Object.isExtensible||function(){return!0};f in u||t(28)&&e(u,f,{configurable:!0,get:function(){try{var t=this,n=(""+t).match(c)[1];return o(t,f)||!a(t)||e(t,f,i(5,n)),n}catch(t){return""}}})},{28:28,39:39,67:67,85:85}],149:[function(t,n,r){"use strict";var e=t(19);n.exports=t(22)("Map",function(t){return function Map(){return t(this,arguments.length>0?arguments[0]:void 0)}},{get:function get(t){var n=e.getEntry(this,t);return n&&n.v},set:function set(t,n){return e.def(this,0===t?0:t,n)}},e,!0)},{19:19,22:22}],150:[function(t,n,r){var e=t(32),i=t(60),o=Math.sqrt,u=Math.acosh;e(e.S+e.F*!(u&&710==Math.floor(u(Number.MAX_VALUE))&&u(1/0)==1/0),"Math",{acosh:function acosh(t){return(t=+t)<1?NaN:t>94906265.62425156?Math.log(t)+Math.LN2:i(t-1+o(t-1)*o(t+1))}})},{32:32,60:60}],151:[function(t,n,r){function asinh(t){return isFinite(t=+t)&&0!=t?t<0?-asinh(-t):Math.log(t+Math.sqrt(t*t+1)):t}var e=t(32),i=Math.asinh;e(e.S+e.F*!(i&&1/i(0)>0),"Math",{asinh:asinh})},{32:32}],152:[function(t,n,r){var e=t(32),i=Math.atanh;e(e.S+e.F*!(i&&1/i(-0)<0),"Math",{atanh:function atanh(t){return 0==(t=+t)?t:Math.log((1+t)/(1-t))/2}})},{32:32}],153:[function(t,n,r){var e=t(32),i=t(61);e(e.S,"Math",{cbrt:function cbrt(t){return i(t=+t)*Math.pow(Math.abs(t),1/3)}})},{32:32,61:61}],154:[function(t,n,r){var e=t(32);e(e.S,"Math",{clz32:function clz32(t){return(t>>>=0)?31-Math.floor(Math.log(t+.5)*Math.LOG2E):32}})},{32:32}],155:[function(t,n,r){var e=t(32),i=Math.exp;e(e.S,"Math",{cosh:function cosh(t){return(i(t=+t)+i(-t))/2}})},{32:32}],156:[function(t,n,r){var e=t(32),i=t(59);e(e.S+e.F*(i!=Math.expm1),"Math",{expm1:i})},{32:32,59:59}],157:[function(t,n,r){var e=t(32),i=t(61),o=Math.pow,u=o(2,-52),c=o(2,-23),f=o(2,127)*(2-c),a=o(2,-126),s=function(t){return t+1/u-1/u};e(e.S,"Math",{fround:function fround(t){var n,r,e=Math.abs(t),o=i(t);return e<a?o*s(e/a/c)*a*c:(n=(1+c/u)*e,r=n-(n-e),r>f||r!=r?o*(1/0):o*r)}})},{32:32,61:61}],158:[function(t,n,r){var e=t(32),i=Math.abs;e(e.S,"Math",{hypot:function hypot(t,n){for(var r,e,o=0,u=0,c=arguments.length,f=0;u<c;)r=i(arguments[u++]),f<r?(e=f/r,o=o*e*e+1,f=r):r>0?(e=r/f,o+=e*e):o+=r;return f===1/0?1/0:f*Math.sqrt(o)}})},{32:32}],159:[function(t,n,r){var e=t(32),i=Math.imul;e(e.S+e.F*t(34)(function(){return i(4294967295,5)!=-5||2!=i.length}),"Math",{imul:function imul(t,n){var r=65535,e=+t,i=+n,o=r&e,u=r&i;return 0|o*u+((r&e>>>16)*u+o*(r&i>>>16)<<16>>>0)}})},{32:32,34:34}],160:[function(t,n,r){var e=t(32);e(e.S,"Math",{log10:function log10(t){return Math.log(t)/Math.LN10}})},{32:32}],161:[function(t,n,r){var e=t(32);e(e.S,"Math",{log1p:t(60)})},{32:32,60:60}],162:[function(t,n,r){var e=t(32);e(e.S,"Math",{log2:function log2(t){return Math.log(t)/Math.LN2}})},{32:32}],163:[function(t,n,r){var e=t(32);e(e.S,"Math",{sign:t(61)})},{32:32,61:61}],164:[function(t,n,r){var e=t(32),i=t(59),o=Math.exp;e(e.S+e.F*t(34)(function(){return!Math.sinh(-2e-17)!=-2e-17}),"Math",{sinh:function sinh(t){return Math.abs(t=+t)<1?(i(t)-i(-t))/2:(o(t-1)-o(-t-1))*(Math.E/2)}})},{32:32,34:34,59:59}],165:[function(t,n,r){var e=t(32),i=t(59),o=Math.exp;e(e.S,"Math",{tanh:function tanh(t){var n=i(t=+t),r=i(-t);return n==1/0?1:r==1/0?-1:(n-r)/(o(t)+o(-t))}})},{32:32,59:59}],166:[function(t,n,r){var e=t(32);e(e.S,"Math",{trunc:function trunc(t){return(t>0?Math.floor:Math.ceil)(t)}})},{32:32}],167:[function(t,n,r){"use strict";var e=t(38),i=t(39),o=t(18),u=t(43),c=t(110),f=t(34),a=t(72).f,s=t(70).f,l=t(67).f,h=t(102).trim,v="Number",p=e[v],d=p,y=p.prototype,g=o(t(66)(y))==v,b="trim"in String.prototype,x=function(t){var n=c(t,!1);if("string"==typeof n&&n.length>2){n=b?n.trim():h(n,3);var r,e,i,o=n.charCodeAt(0);if(43===o||45===o){if(r=n.charCodeAt(2),88===r||120===r)return NaN}else if(48===o){switch(n.charCodeAt(1)){case 66:case 98:e=2,i=49;break;case 79:case 111:e=8,i=55;break;default:return+n}for(var u,f=n.slice(2),a=0,s=f.length;a<s;a++)if(u=f.charCodeAt(a),u<48||u>i)return NaN;return parseInt(f,e)}}return+n};if(!p(" 0o1")||!p("0b1")||p("+0x1")){p=function Number(t){var n=arguments.length<1?0:t,r=this;return r instanceof p&&(g?f(function(){y.valueOf.call(r)}):o(r)!=v)?u(new d(x(n)),r,p):x(n)};for(var m,w=t(28)?a(d):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger".split(","),S=0;w.length>S;S++)i(d,m=w[S])&&!i(p,m)&&l(p,m,s(d,m));p.prototype=y,y.constructor=p,t(87)(e,v,p)}},{102:102,110:110,18:18,28:28,34:34,38:38,39:39,43:43,66:66,67:67,70:70,72:72,87:87}],168:[function(t,n,r){var e=t(32);e(e.S,"Number",{EPSILON:Math.pow(2,-52)})},{32:32}],169:[function(t,n,r){var e=t(32),i=t(38).isFinite;e(e.S,"Number",{isFinite:function isFinite(t){return"number"==typeof t&&i(t)}})},{32:32,38:38}],170:[function(t,n,r){var e=t(32);e(e.S,"Number",{isInteger:t(48)})},{32:32,48:48}],171:[function(t,n,r){var e=t(32);e(e.S,"Number",{isNaN:function isNaN(t){return t!=t}})},{32:32}],172:[function(t,n,r){var e=t(32),i=t(48),o=Math.abs;e(e.S,"Number",{isSafeInteger:function isSafeInteger(t){return i(t)&&o(t)<=9007199254740991}})},{32:32,48:48}],173:[function(t,n,r){var e=t(32);e(e.S,"Number",{MAX_SAFE_INTEGER:9007199254740991})},{32:32}],174:[function(t,n,r){var e=t(32);e(e.S,"Number",{MIN_SAFE_INTEGER:-9007199254740991})},{32:32}],175:[function(t,n,r){var e=t(32),i=t(81);e(e.S+e.F*(Number.parseFloat!=i),"Number",{parseFloat:i})},{32:32,81:81}],176:[function(t,n,r){var e=t(32),i=t(82);e(e.S+e.F*(Number.parseInt!=i),"Number",{parseInt:i})},{32:32,82:82}],177:[function(t,n,r){"use strict";var e=t(32),i=t(106),o=t(4),u=t(101),c=1..toFixed,f=Math.floor,a=[0,0,0,0,0,0],s="Number.toFixed: incorrect invocation!",l="0",h=function(t,n){for(var r=-1,e=n;++r<6;)e+=t*a[r],a[r]=e%1e7,e=f(e/1e7)},v=function(t){for(var n=6,r=0;--n>=0;)r+=a[n],a[n]=f(r/t),r=r%t*1e7},p=function(){for(var t=6,n="";--t>=0;)if(""!==n||0===t||0!==a[t]){var r=String(a[t]);n=""===n?r:n+u.call(l,7-r.length)+r}return n},d=function(t,n,r){return 0===n?r:n%2===1?d(t,n-1,r*t):d(t*t,n/2,r)},y=function(t){for(var n=0,r=t;r>=4096;)n+=12,r/=4096;for(;r>=2;)n+=1,r/=2;return n};e(e.P+e.F*(!!c&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==(0xde0b6b3a7640080).toFixed(0))||!t(34)(function(){c.call({})})),"Number",{toFixed:function toFixed(t){var n,r,e,c,f=o(this,s),a=i(t),g="",b=l;if(a<0||a>20)throw RangeError(s);if(f!=f)return"NaN";if(f<=-1e21||f>=1e21)return String(f);if(f<0&&(g="-",f=-f),f>1e-21)if(n=y(f*d(2,69,1))-69,r=n<0?f*d(2,-n,1):f/d(2,n,1),r*=4503599627370496,n=52-n,n>0){for(h(0,r),e=a;e>=7;)h(1e7,0),e-=7;for(h(d(10,e,1),0),e=n-1;e>=23;)v(1<<23),e-=23;v(1<<e),h(1,1),v(2),b=p()}else h(0,r),h(1<<-n,0),b=p()+u.call(l,a);return a>0?(c=b.length,b=g+(c<=a?"0."+u.call(l,a-c)+b:b.slice(0,c-a)+"."+b.slice(c-a))):b=g+b,b}})},{101:101,106:106,32:32,34:34,4:4}],178:[function(t,n,r){"use strict";var e=t(32),i=t(34),o=t(4),u=1..toPrecision;e(e.P+e.F*(i(function(){return"1"!==u.call(1,void 0)})||!i(function(){u.call({})})),"Number",{toPrecision:function toPrecision(t){var n=o(this,"Number#toPrecision: incorrect invocation!");return void 0===t?u.call(n):u.call(n,t)}})},{32:32,34:34,4:4}],179:[function(t,n,r){var e=t(32);e(e.S+e.F,"Object",{assign:t(65)})},{32:32,65:65}],180:[function(t,n,r){var e=t(32);e(e.S,"Object",{create:t(66)})},{32:32,66:66}],181:[function(t,n,r){var e=t(32);e(e.S+e.F*!t(28),"Object",{defineProperties:t(68)})},{28:28,32:32,68:68}],182:[function(t,n,r){var e=t(32);e(e.S+e.F*!t(28),"Object",{defineProperty:t(67).f})},{28:28,32:32,67:67}],183:[function(t,n,r){var e=t(49),i=t(62).onFreeze;t(78)("freeze",function(t){return function freeze(n){return t&&e(n)?t(i(n)):n}})},{49:49,62:62,78:78}],184:[function(t,n,r){var e=t(107),i=t(70).f;t(78)("getOwnPropertyDescriptor",function(){return function getOwnPropertyDescriptor(t,n){return i(e(t),n)}})},{107:107,70:70,78:78}],185:[function(t,n,r){t(78)("getOwnPropertyNames",function(){return t(71).f})},{71:71,78:78}],186:[function(t,n,r){var e=t(109),i=t(74);t(78)("getPrototypeOf",function(){return function getPrototypeOf(t){return i(e(t))}})},{109:109,74:74,78:78}],187:[function(t,n,r){var e=t(49);t(78)("isExtensible",function(t){return function isExtensible(n){return!!e(n)&&(!t||t(n))}})},{49:49,78:78}],188:[function(t,n,r){var e=t(49);t(78)("isFrozen",function(t){return function isFrozen(n){return!e(n)||!!t&&t(n)}})},{49:49,78:78}],189:[function(t,n,r){var e=t(49);t(78)("isSealed",function(t){return function isSealed(n){return!e(n)||!!t&&t(n)}})},{49:49,78:78}],190:[function(t,n,r){var e=t(32);e(e.S,"Object",{is:t(89)})},{32:32,89:89}],191:[function(t,n,r){var e=t(109),i=t(76);t(78)("keys",function(){return function keys(t){return i(e(t))}})},{109:109,76:76,78:78}],192:[function(t,n,r){var e=t(49),i=t(62).onFreeze;t(78)("preventExtensions",function(t){return function preventExtensions(n){return t&&e(n)?t(i(n)):n}})},{49:49,62:62,78:78}],193:[function(t,n,r){var e=t(49),i=t(62).onFreeze;t(78)("seal",function(t){return function seal(n){return t&&e(n)?t(i(n)):n}})},{49:49,62:62,78:78}],194:[function(t,n,r){var e=t(32);e(e.S,"Object",{setPrototypeOf:t(90).set})},{32:32,90:90}],195:[function(t,n,r){"use strict";var e=t(17),i={};i[t(117)("toStringTag")]="z",i+""!="[object z]"&&t(87)(Object.prototype,"toString",function toString(){return"[object "+e(this)+"]"},!0)},{117:117,17:17,87:87}],196:[function(t,n,r){var e=t(32),i=t(81);e(e.G+e.F*(parseFloat!=i),{parseFloat:i})},{32:32,81:81}],197:[function(t,n,r){var e=t(32),i=t(82);e(e.G+e.F*(parseInt!=i),{parseInt:i})},{32:32,82:82}],198:[function(t,n,r){"use strict";var e,i,o,u=t(58),c=t(38),f=t(25),a=t(17),s=t(32),l=t(49),h=t(3),v=t(6),p=t(37),d=t(95),y=t(104).set,g=t(64)(),b="Promise",x=c.TypeError,m=c.process,w=c[b],m=c.process,S="process"==a(m),_=function(){},E=!!function(){try{var n=w.resolve(1),r=(n.constructor={})[t(117)("species")]=function(t){t(_,_)};return(S||"function"==typeof PromiseRejectionEvent)&&n.then(_)instanceof r}catch(t){}}(),O=function(t,n){return t===n||t===w&&n===o},F=function(t){var n;return!(!l(t)||"function"!=typeof(n=t.then))&&n},P=function(t){return O(w,t)?new A(t):new i(t)},A=i=function(t){var n,r;this.promise=new t(function(t,e){if(void 0!==n||void 0!==r)throw x("Bad Promise constructor");n=t,r=e}),this.resolve=h(n),this.reject=h(r)},M=function(t){try{t()}catch(t){return{error:t}}},I=function(t,n){if(!t._n){t._n=!0;var r=t._c;g(function(){for(var e=t._v,i=1==t._s,o=0,u=function(n){var r,o,u=i?n.ok:n.fail,c=n.resolve,f=n.reject,a=n.domain;try{u?(i||(2==t._h&&k(t),t._h=1),u===!0?r=e:(a&&a.enter(),r=u(e),a&&a.exit()),r===n.promise?f(x("Promise-chain cycle")):(o=F(r))?o.call(r,c,f):c(r)):f(e)}catch(t){f(t)}};r.length>o;)u(r[o++]);t._c=[],t._n=!1,n&&!t._h&&j(t)})}},j=function(t){y.call(c,function(){var n,r,e,i=t._v;if(N(t)&&(n=M(function(){S?m.emit("unhandledRejection",i,t):(r=c.onunhandledrejection)?r({promise:t,reason:i}):(e=c.console)&&e.error&&e.error("Unhandled promise rejection",i)}),t._h=S||N(t)?2:1),t._a=void 0,n)throw n.error})},N=function(t){if(1==t._h)return!1;for(var n,r=t._a||t._c,e=0;r.length>e;)if(n=r[e++],n.fail||!N(n.promise))return!1;return!0},k=function(t){y.call(c,function(){var n;S?m.emit("rejectionHandled",t):(n=c.onrejectionhandled)&&n({promise:t,reason:t._v})})},R=function(t){var n=this;n._d||(n._d=!0,n=n._w||n,n._v=t,n._s=2,n._a||(n._a=n._c.slice()),I(n,!0))},T=function(t){var n,r=this;if(!r._d){r._d=!0,r=r._w||r;try{if(r===t)throw x("Promise can't be resolved itself");(n=F(t))?g(function(){var e={_w:r,_d:!1};try{n.call(t,f(T,e,1),f(R,e,1))}catch(t){R.call(e,t)}}):(r._v=t,r._s=1,I(r,!1))}catch(t){R.call({_w:r,_d:!1},t)}}};E||(w=function Promise(t){v(this,w,b,"_h"),h(t),e.call(this);try{t(f(T,this,1),f(R,this,1))}catch(t){R.call(this,t)}},e=function Promise(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},e.prototype=t(86)(w.prototype,{then:function then(t,n){var r=P(d(this,w));return r.ok="function"!=typeof t||t,r.fail="function"==typeof n&&n,r.domain=S?m.domain:void 0,this._c.push(r),this._a&&this._a.push(r),this._s&&I(this,!1),r.promise},catch:function(t){return this.then(void 0,t)}}),A=function(){var t=new e;this.promise=t,this.resolve=f(T,t,1),this.reject=f(R,t,1)}),s(s.G+s.W+s.F*!E,{Promise:w}),t(92)(w,b),t(91)(b),o=t(23)[b],s(s.S+s.F*!E,b,{reject:function reject(t){var n=P(this),r=n.reject;return r(t),n.promise}}),s(s.S+s.F*(u||!E),b,{resolve:function resolve(t){if(t instanceof w&&O(t.constructor,this))return t;var n=P(this),r=n.resolve;return r(t),n.promise}}),s(s.S+s.F*!(E&&t(54)(function(t){w.all(t).catch(_)})),b,{all:function all(t){var n=this,r=P(n),e=r.resolve,i=r.reject,o=M(function(){var r=[],o=0,u=1;p(t,!1,function(t){var c=o++,f=!1;r.push(void 0),u++,n.resolve(t).then(function(t){f||(f=!0,r[c]=t,--u||e(r))},i)}),--u||e(r)});return o&&i(o.error),r.promise},race:function race(t){var n=this,r=P(n),e=r.reject,i=M(function(){p(t,!1,function(t){n.resolve(t).then(r.resolve,e)})});return i&&e(i.error),r.promise}})},{104:104,117:117,17:17,23:23,25:25,3:3,32:32,37:37,38:38,49:49,54:54,58:58,6:6,64:64,86:86,91:91,92:92,95:95}],199:[function(t,n,r){var e=t(32),i=t(3),o=t(7),u=(t(38).Reflect||{}).apply,c=Function.apply;e(e.S+e.F*!t(34)(function(){u(function(){})}),"Reflect",{apply:function apply(t,n,r){var e=i(t),f=o(r);return u?u(e,n,f):c.call(e,n,f)}})},{3:3,32:32,34:34,38:38,7:7}],200:[function(t,n,r){var e=t(32),i=t(66),o=t(3),u=t(7),c=t(49),f=t(34),a=t(16),s=(t(38).Reflect||{}).construct,l=f(function(){function F(){}return!(s(function(){},[],F)instanceof F)}),h=!f(function(){s(function(){})});e(e.S+e.F*(l||h),"Reflect",{construct:function construct(t,n){o(t),u(n);var r=arguments.length<3?t:o(arguments[2]);if(h&&!l)return s(t,n,r);if(t==r){switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3])}var e=[null];return e.push.apply(e,n),new(a.apply(t,e))}var f=r.prototype,v=i(c(f)?f:Object.prototype),p=Function.apply.call(t,v,n);return c(p)?p:v}})},{16:16,3:3,32:32,34:34,38:38,49:49,66:66,7:7}],201:[function(t,n,r){var e=t(67),i=t(32),o=t(7),u=t(110);i(i.S+i.F*t(34)(function(){Reflect.defineProperty(e.f({},1,{value:1}),1,{value:2})}),"Reflect",{defineProperty:function defineProperty(t,n,r){o(t),n=u(n,!0),o(r);try{return e.f(t,n,r),!0}catch(t){return!1}}})},{110:110,32:32,34:34,67:67,7:7}],202:[function(t,n,r){var e=t(32),i=t(70).f,o=t(7);e(e.S,"Reflect",{deleteProperty:function deleteProperty(t,n){var r=i(o(t),n);return!(r&&!r.configurable)&&delete t[n]}})},{32:32,7:7,70:70}],203:[function(t,n,r){"use strict";var e=t(32),i=t(7),o=function(t){this._t=i(t),this._i=0;var n,r=this._k=[];for(n in t)r.push(n)};t(52)(o,"Object",function(){var t,n=this,r=n._k;do if(n._i>=r.length)return{value:void 0,done:!0};while(!((t=r[n._i++])in n._t));return{value:t,done:!1}}),e(e.S,"Reflect",{enumerate:function enumerate(t){return new o(t)}})},{32:32,52:52,7:7}],204:[function(t,n,r){var e=t(70),i=t(32),o=t(7);i(i.S,"Reflect",{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,n){return e.f(o(t),n)}})},{32:32,7:7,70:70}],205:[function(t,n,r){var e=t(32),i=t(74),o=t(7);e(e.S,"Reflect",{getPrototypeOf:function getPrototypeOf(t){return i(o(t))}})},{32:32,7:7,74:74}],206:[function(t,n,r){function get(t,n){var r,u,a=arguments.length<3?t:arguments[2];return f(t)===a?t[n]:(r=e.f(t,n))?o(r,"value")?r.value:void 0!==r.get?r.get.call(a):void 0:c(u=i(t))?get(u,n,a):void 0}var e=t(70),i=t(74),o=t(39),u=t(32),c=t(49),f=t(7);u(u.S,"Reflect",{get:get})},{32:32,39:39,49:49,7:7,70:70,74:74}],207:[function(t,n,r){var e=t(32);e(e.S,"Reflect",{has:function has(t,n){return n in t;
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/babel-polyfill/babel-polyfill.min.js:3:}})},{32:32}],208:[function(t,n,r){var e=t(32),i=t(7),o=Object.isExtensible;e(e.S,"Reflect",{isExtensible:function isExtensible(t){return i(t),!o||o(t)}})},{32:32,7:7}],209:[function(t,n,r){var e=t(32);e(e.S,"Reflect",{ownKeys:t(80)})},{32:32,80:80}],210:[function(t,n,r){var e=t(32),i=t(7),o=Object.preventExtensions;e(e.S,"Reflect",{preventExtensions:function preventExtensions(t){i(t);try{return o&&o(t),!0}catch(t){return!1}}})},{32:32,7:7}],211:[function(t,n,r){var e=t(32),i=t(90);i&&e(e.S,"Reflect",{setPrototypeOf:function setPrototypeOf(t,n){i.check(t,n);try{return i.set(t,n),!0}catch(t){return!1}}})},{32:32,90:90}],212:[function(t,n,r){function set(t,n,r){var c,l,h=arguments.length<4?t:arguments[3],v=i.f(a(t),n);if(!v){if(s(l=o(t)))return set(l,n,r,h);v=f(0)}return u(v,"value")?!(v.writable===!1||!s(h))&&(c=i.f(h,n)||f(0),c.value=r,e.f(h,n,c),!0):void 0!==v.set&&(v.set.call(h,r),!0)}var e=t(67),i=t(70),o=t(74),u=t(39),c=t(32),f=t(85),a=t(7),s=t(49);c(c.S,"Reflect",{set:set})},{32:32,39:39,49:49,67:67,7:7,70:70,74:74,85:85}],213:[function(t,n,r){var e=t(38),i=t(43),o=t(67).f,u=t(72).f,c=t(50),f=t(36),a=e.RegExp,s=a,l=a.prototype,h=/a/g,v=/a/g,p=new a(h)!==h;if(t(28)&&(!p||t(34)(function(){return v[t(117)("match")]=!1,a(h)!=h||a(v)==v||"/a/i"!=a(h,"i")}))){a=function RegExp(t,n){var r=this instanceof a,e=c(t),o=void 0===n;return!r&&e&&t.constructor===a&&o?t:i(p?new s(e&&!o?t.source:t,n):s((e=t instanceof a)?t.source:t,e&&o?f.call(t):n),r?this:l,a)};for(var d=(function(t){t in a||o(a,t,{configurable:!0,get:function(){return s[t]},set:function(n){s[t]=n}})}),y=u(s),g=0;y.length>g;)d(y[g++]);l.constructor=a,a.prototype=l,t(87)(e,"RegExp",a)}t(91)("RegExp")},{117:117,28:28,34:34,36:36,38:38,43:43,50:50,67:67,72:72,87:87,91:91}],214:[function(t,n,r){t(28)&&"g"!=/./g.flags&&t(67).f(RegExp.prototype,"flags",{configurable:!0,get:t(36)})},{28:28,36:36,67:67}],215:[function(t,n,r){t(35)("match",1,function(t,n,r){return[function match(r){"use strict";var e=t(this),i=void 0==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},r]})},{35:35}],216:[function(t,n,r){t(35)("replace",2,function(t,n,r){return[function replace(e,i){"use strict";var o=t(this),u=void 0==e?void 0:e[n];return void 0!==u?u.call(e,o,i):r.call(String(o),e,i)},r]})},{35:35}],217:[function(t,n,r){t(35)("search",1,function(t,n,r){return[function search(r){"use strict";var e=t(this),i=void 0==r?void 0:r[n];return void 0!==i?i.call(r,e):new RegExp(r)[n](String(e))},r]})},{35:35}],218:[function(t,n,r){t(35)("split",2,function(n,r,e){"use strict";var i=t(50),o=e,u=[].push,c="split",f="length",a="lastIndex";if("c"=="abbc"[c](/(b)*/)[1]||4!="test"[c](/(?:)/,-1)[f]||2!="ab"[c](/(?:ab)*/)[f]||4!="."[c](/(.?)(.?)/)[f]||"."[c](/()()/)[f]>1||""[c](/.?/)[f]){var s=void 0===/()??/.exec("")[1];e=function(t,n){var r=String(this);if(void 0===t&&0===n)return[];if(!i(t))return o.call(r,t,n);var e,c,l,h,v,p=[],d=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),y=0,g=void 0===n?4294967295:n>>>0,b=new RegExp(t.source,d+"g");for(s||(e=new RegExp("^"+b.source+"$(?!\\s)",d));(c=b.exec(r))&&(l=c.index+c[0][f],!(l>y&&(p.push(r.slice(y,c.index)),!s&&c[f]>1&&c[0].replace(e,function(){for(v=1;v<arguments[f]-2;v++)void 0===arguments[v]&&(c[v]=void 0)}),c[f]>1&&c.index<r[f]&&u.apply(p,c.slice(1)),h=c[0][f],y=l,p[f]>=g)));)b[a]===c.index&&b[a]++;return y===r[f]?!h&&b.test("")||p.push(""):p.push(r.slice(y)),p[f]>g?p.slice(0,g):p}}else"0"[c](void 0,0)[f]&&(e=function(t,n){return void 0===t&&0===n?[]:o.call(this,t,n)});return[function split(t,i){var o=n(this),u=void 0==t?void 0:t[r];return void 0!==u?u.call(t,o,i):e.call(String(o),t,i)},e]})},{35:35,50:50}],219:[function(t,n,r){"use strict";t(214);var e=t(7),i=t(36),o=t(28),u="toString",c=/./[u],f=function(n){t(87)(RegExp.prototype,u,n,!0)};t(34)(function(){return"/a/b"!=c.call({source:"a",flags:"b"})})?f(function toString(){var t=e(this);return"/".concat(t.source,"/","flags"in t?t.flags:!o&&t instanceof RegExp?i.call(t):void 0)}):c.name!=u&&f(function toString(){return c.call(this)})},{214:214,28:28,34:34,36:36,7:7,87:87}],220:[function(t,n,r){"use strict";var e=t(19);n.exports=t(22)("Set",function(t){return function Set(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function add(t){return e.def(this,t=0===t?0:t,t)}},e)},{19:19,22:22}],221:[function(t,n,r){"use strict";t(99)("anchor",function(t){return function anchor(n){return t(this,"a","name",n)}})},{99:99}],222:[function(t,n,r){"use strict";t(99)("big",function(t){return function big(){return t(this,"big","","")}})},{99:99}],223:[function(t,n,r){"use strict";t(99)("blink",function(t){return function blink(){return t(this,"blink","","")}})},{99:99}],224:[function(t,n,r){"use strict";t(99)("bold",function(t){return function bold(){return t(this,"b","","")}})},{99:99}],225:[function(t,n,r){"use strict";var e=t(32),i=t(97)(!1);e(e.P,"String",{codePointAt:function codePointAt(t){return i(this,t)}})},{32:32,97:97}],226:[function(t,n,r){"use strict";var e=t(32),i=t(108),o=t(98),u="endsWith",c=""[u];e(e.P+e.F*t(33)(u),"String",{endsWith:function endsWith(t){var n=o(this,t,u),r=arguments.length>1?arguments[1]:void 0,e=i(n.length),f=void 0===r?e:Math.min(i(r),e),a=String(t);return c?c.call(n,a,f):n.slice(f-a.length,f)===a}})},{108:108,32:32,33:33,98:98}],227:[function(t,n,r){"use strict";t(99)("fixed",function(t){return function fixed(){return t(this,"tt","","")}})},{99:99}],228:[function(t,n,r){"use strict";t(99)("fontcolor",function(t){return function fontcolor(n){return t(this,"font","color",n)}})},{99:99}],229:[function(t,n,r){"use strict";t(99)("fontsize",function(t){return function fontsize(n){return t(this,"font","size",n)}})},{99:99}],230:[function(t,n,r){var e=t(32),i=t(105),o=String.fromCharCode,u=String.fromCodePoint;e(e.S+e.F*(!!u&&1!=u.length),"String",{fromCodePoint:function fromCodePoint(t){for(var n,r=[],e=arguments.length,u=0;e>u;){if(n=+arguments[u++],i(n,1114111)!==n)throw RangeError(n+" is not a valid code point");r.push(n<65536?o(n):o(((n-=65536)>>10)+55296,n%1024+56320))}return r.join("")}})},{105:105,32:32}],231:[function(t,n,r){"use strict";var e=t(32),i=t(98),o="includes";e(e.P+e.F*t(33)(o),"String",{includes:function includes(t){return!!~i(this,t,o).indexOf(t,arguments.length>1?arguments[1]:void 0)}})},{32:32,33:33,98:98}],232:[function(t,n,r){"use strict";t(99)("italics",function(t){return function italics(){return t(this,"i","","")}})},{99:99}],233:[function(t,n,r){"use strict";var e=t(97)(!0);t(53)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},{53:53,97:97}],234:[function(t,n,r){"use strict";t(99)("link",function(t){return function link(n){return t(this,"a","href",n)}})},{99:99}],235:[function(t,n,r){var e=t(32),i=t(107),o=t(108);e(e.S,"String",{raw:function raw(t){for(var n=i(t.raw),r=o(n.length),e=arguments.length,u=[],c=0;r>c;)u.push(String(n[c++])),c<e&&u.push(String(arguments[c]));return u.join("")}})},{107:107,108:108,32:32}],236:[function(t,n,r){var e=t(32);e(e.P,"String",{repeat:t(101)})},{101:101,32:32}],237:[function(t,n,r){"use strict";t(99)("small",function(t){return function small(){return t(this,"small","","")}})},{99:99}],238:[function(t,n,r){"use strict";var e=t(32),i=t(108),o=t(98),u="startsWith",c=""[u];e(e.P+e.F*t(33)(u),"String",{startsWith:function startsWith(t){var n=o(this,t,u),r=i(Math.min(arguments.length>1?arguments[1]:void 0,n.length)),e=String(t);return c?c.call(n,e,r):n.slice(r,r+e.length)===e}})},{108:108,32:32,33:33,98:98}],239:[function(t,n,r){"use strict";t(99)("strike",function(t){return function strike(){return t(this,"strike","","")}})},{99:99}],240:[function(t,n,r){"use strict";t(99)("sub",function(t){return function sub(){return t(this,"sub","","")}})},{99:99}],241:[function(t,n,r){"use strict";t(99)("sup",function(t){return function sup(){return t(this,"sup","","")}})},{99:99}],242:[function(t,n,r){"use strict";t(102)("trim",function(t){return function trim(){return t(this,3)}})},{102:102}],243:[function(t,n,r){"use strict";var e=t(38),i=t(39),o=t(28),u=t(32),c=t(87),f=t(62).KEY,a=t(34),s=t(94),l=t(92),h=t(114),v=t(117),p=t(116),d=t(115),y=t(57),g=t(31),b=t(47),x=t(7),m=t(107),w=t(110),S=t(85),_=t(66),E=t(71),O=t(70),F=t(67),P=t(76),A=O.f,M=F.f,I=E.f,j=e.Symbol,N=e.JSON,k=N&&N.stringify,R="prototype",T=v("_hidden"),L=v("toPrimitive"),C={}.propertyIsEnumerable,U=s("symbol-registry"),G=s("symbols"),D=s("op-symbols"),W=Object[R],B="function"==typeof j,V=e.QObject,z=!V||!V[R]||!V[R].findChild,K=o&&a(function(){return 7!=_(M({},"a",{get:function(){return M(this,"a",{value:7}).a}})).a})?function(t,n,r){var e=A(W,n);e&&delete W[n],M(t,n,r),e&&t!==W&&M(W,n,e)}:M,J=function(t){var n=G[t]=_(j[R]);return n._k=t,n},Y=B&&"symbol"==typeof j.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof j},q=function defineProperty(t,n,r){return t===W&&q(D,n,r),x(t),n=w(n,!0),x(r),i(G,n)?(r.enumerable?(i(t,T)&&t[T][n]&&(t[T][n]=!1),r=_(r,{enumerable:S(0,!1)})):(i(t,T)||M(t,T,S(1,{})),t[T][n]=!0),K(t,n,r)):M(t,n,r)},X=function defineProperties(t,n){x(t);for(var r,e=g(n=m(n)),i=0,o=e.length;o>i;)q(t,r=e[i++],n[r]);return t},$=function create(t,n){return void 0===n?_(t):X(_(t),n)},H=function propertyIsEnumerable(t){var n=C.call(this,t=w(t,!0));return!(this===W&&i(G,t)&&!i(D,t))&&(!(n||!i(this,t)||!i(G,t)||i(this,T)&&this[T][t])||n)},Z=function getOwnPropertyDescriptor(t,n){if(t=m(t),n=w(n,!0),t!==W||!i(G,n)||i(D,n)){var r=A(t,n);return!r||!i(G,n)||i(t,T)&&t[T][n]||(r.enumerable=!0),r}},Q=function getOwnPropertyNames(t){for(var n,r=I(m(t)),e=[],o=0;r.length>o;)i(G,n=r[o++])||n==T||n==f||e.push(n);return e},tt=function getOwnPropertySymbols(t){for(var n,r=t===W,e=I(r?D:m(t)),o=[],u=0;e.length>u;)!i(G,n=e[u++])||r&&!i(W,n)||o.push(G[n]);return o};B||(j=function Symbol(){if(this instanceof j)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),n=function(r){this===W&&n.call(D,r),i(this,T)&&i(this[T],t)&&(this[T][t]=!1),K(this,t,S(1,r))};return o&&z&&K(W,t,{configurable:!0,set:n}),J(t)},c(j[R],"toString",function toString(){return this._k}),O.f=Z,F.f=q,t(72).f=E.f=Q,t(77).f=H,t(73).f=tt,o&&!t(58)&&c(W,"propertyIsEnumerable",H,!0),p.f=function(t){return J(v(t))}),u(u.G+u.W+u.F*!B,{Symbol:j});for(var nt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),rt=0;nt.length>rt;)v(nt[rt++]);for(var nt=P(v.store),rt=0;nt.length>rt;)d(nt[rt++]);u(u.S+u.F*!B,"Symbol",{for:function(t){return i(U,t+="")?U[t]:U[t]=j(t)},keyFor:function keyFor(t){if(Y(t))return y(U,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){z=!0},useSimple:function(){z=!1}}),u(u.S+u.F*!B,"Object",{create:$,defineProperty:q,defineProperties:X,getOwnPropertyDescriptor:Z,getOwnPropertyNames:Q,getOwnPropertySymbols:tt}),N&&u(u.S+u.F*(!B||a(function(){var t=j();return"[null]"!=k([t])||"{}"!=k({a:t})||"{}"!=k(Object(t))})),"JSON",{stringify:function stringify(t){if(void 0!==t&&!Y(t)){for(var n,r,e=[t],i=1;arguments.length>i;)e.push(arguments[i++]);return n=e[1],"function"==typeof n&&(r=n),!r&&b(n)||(n=function(t,n){if(r&&(n=r.call(this,t,n)),!Y(n))return n}),e[1]=n,k.apply(N,e)}}}),j[R][L]||t(40)(j[R],L,j[R].valueOf),l(j,"Symbol"),l(Math,"Math",!0),l(e.JSON,"JSON",!0)},{107:107,110:110,114:114,115:115,116:116,117:117,28:28,31:31,32:32,34:34,38:38,39:39,40:40,47:47,57:57,58:58,62:62,66:66,67:67,7:7,70:70,71:71,72:72,73:73,76:76,77:77,85:85,87:87,92:92,94:94}],244:[function(t,n,r){"use strict";var e=t(32),i=t(113),o=t(112),u=t(7),c=t(105),f=t(108),a=t(49),s=t(38).ArrayBuffer,l=t(95),h=o.ArrayBuffer,v=o.DataView,p=i.ABV&&s.isView,d=h.prototype.slice,y=i.VIEW,g="ArrayBuffer";e(e.G+e.W+e.F*(s!==h),{ArrayBuffer:h}),e(e.S+e.F*!i.CONSTR,g,{isView:function isView(t){return p&&p(t)||a(t)&&y in t}}),e(e.P+e.U+e.F*t(34)(function(){return!new h(2).slice(1,void 0).byteLength}),g,{slice:function slice(t,n){if(void 0!==d&&void 0===n)return d.call(u(this),t);for(var r=u(this).byteLength,e=c(t,r),i=c(void 0===n?r:n,r),o=new(l(this,h))(f(i-e)),a=new v(this),s=new v(o),p=0;e<i;)s.setUint8(p++,a.getUint8(e++));return o}}),t(91)(g)},{105:105,108:108,112:112,113:113,32:32,34:34,38:38,49:49,7:7,91:91,95:95}],245:[function(t,n,r){var e=t(32);e(e.G+e.W+e.F*!t(113).ABV,{DataView:t(112).DataView})},{112:112,113:113,32:32}],246:[function(t,n,r){t(111)("Float32",4,function(t){return function Float32Array(n,r,e){return t(this,n,r,e)}})},{111:111}],247:[function(t,n,r){t(111)("Float64",8,function(t){return function Float64Array(n,r,e){return t(this,n,r,e)}})},{111:111}],248:[function(t,n,r){t(111)("Int16",2,function(t){return function Int16Array(n,r,e){return t(this,n,r,e)}})},{111:111}],249:[function(t,n,r){t(111)("Int32",4,function(t){return function Int32Array(n,r,e){return t(this,n,r,e)}})},{111:111}],250:[function(t,n,r){t(111)("Int8",1,function(t){return function Int8Array(n,r,e){return t(this,n,r,e)}})},{111:111}],251:[function(t,n,r){t(111)("Uint16",2,function(t){return function Uint16Array(n,r,e){return t(this,n,r,e)}})},{111:111}],252:[function(t,n,r){t(111)("Uint32",4,function(t){return function Uint32Array(n,r,e){return t(this,n,r,e)}})},{111:111}],253:[function(t,n,r){t(111)("Uint8",1,function(t){return function Uint8Array(n,r,e){return t(this,n,r,e)}})},{111:111}],254:[function(t,n,r){t(111)("Uint8",1,function(t){return function Uint8ClampedArray(n,r,e){return t(this,n,r,e)}},!0)},{111:111}],255:[function(t,n,r){"use strict";var e,i=t(12)(0),o=t(87),u=t(62),c=t(65),f=t(21),a=t(49),s=u.getWeak,l=Object.isExtensible,h=f.ufstore,v={},p=function(t){return function WeakMap(){return t(this,arguments.length>0?arguments[0]:void 0)}},d={get:function get(t){if(a(t)){var n=s(t);return n===!0?h(this).get(t):n?n[this._i]:void 0}},set:function set(t,n){return f.def(this,t,n)}},y=n.exports=t(22)("WeakMap",p,d,f,!0,!0);7!=(new y).set((Object.freeze||Object)(v),7).get(v)&&(e=f.getConstructor(p),c(e.prototype,d),u.NEED=!0,i(["delete","has","get","set"],function(t){var n=y.prototype,r=n[t];o(n,t,function(n,i){if(a(n)&&!l(n)){this._f||(this._f=new e);var o=this._f[t](n,i);return"set"==t?this:o}return r.call(this,n,i)})}))},{12:12,21:21,22:22,49:49,62:62,65:65,87:87}],256:[function(t,n,r){"use strict";var e=t(21);t(22)("WeakSet",function(t){return function WeakSet(){return t(this,arguments.length>0?arguments[0]:void 0)}},{add:function add(t){return e.def(this,t,!0)}},e,!1,!0)},{21:21,22:22}],257:[function(t,n,r){"use strict";var e=t(32),i=t(11)(!0);e(e.P,"Array",{includes:function includes(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),t(5)("includes")},{11:11,32:32,5:5}],258:[function(t,n,r){var e=t(32),i=t(64)(),o=t(38).process,u="process"==t(18)(o);e(e.G,{asap:function asap(t){var n=u&&o.domain;i(n?n.bind(t):t)}})},{18:18,32:32,38:38,64:64}],259:[function(t,n,r){var e=t(32),i=t(18);e(e.S,"Error",{isError:function isError(t){return"Error"===i(t)}})},{18:18,32:32}],260:[function(t,n,r){var e=t(32);e(e.P+e.R,"Map",{toJSON:t(20)("Map")})},{20:20,32:32}],261:[function(t,n,r){var e=t(32);e(e.S,"Math",{iaddh:function iaddh(t,n,r,e){var i=t>>>0,o=n>>>0,u=r>>>0;return o+(e>>>0)+((i&u|(i|u)&~(i+u>>>0))>>>31)|0}})},{32:32}],262:[function(t,n,r){var e=t(32);e(e.S,"Math",{imulh:function imulh(t,n){var r=65535,e=+t,i=+n,o=e&r,u=i&r,c=e>>16,f=i>>16,a=(c*u>>>0)+(o*u>>>16);return c*f+(a>>16)+((o*f>>>0)+(a&r)>>16)}})},{32:32}],263:[function(t,n,r){var e=t(32);e(e.S,"Math",{isubh:function isubh(t,n,r,e){var i=t>>>0,o=n>>>0,u=r>>>0;return o-(e>>>0)-((~i&u|~(i^u)&i-u>>>0)>>>31)|0}})},{32:32}],264:[function(t,n,r){var e=t(32);e(e.S,"Math",{umulh:function umulh(t,n){var r=65535,e=+t,i=+n,o=e&r,u=i&r,c=e>>>16,f=i>>>16,a=(c*u>>>0)+(o*u>>>16);return c*f+(a>>>16)+((o*f>>>0)+(a&r)>>>16)}})},{32:32}],265:[function(t,n,r){"use strict";var e=t(32),i=t(109),o=t(3),u=t(67);t(28)&&e(e.P+t(69),"Object",{__defineGetter__:function __defineGetter__(t,n){u.f(i(this),t,{get:o(n),enumerable:!0,configurable:!0})}})},{109:109,28:28,3:3,32:32,67:67,69:69}],266:[function(t,n,r){"use strict";var e=t(32),i=t(109),o=t(3),u=t(67);t(28)&&e(e.P+t(69),"Object",{__defineSetter__:function __defineSetter__(t,n){u.f(i(this),t,{set:o(n),enumerable:!0,configurable:!0})}})},{109:109,28:28,3:3,32:32,67:67,69:69}],267:[function(t,n,r){var e=t(32),i=t(79)(!0);e(e.S,"Object",{entries:function entries(t){return i(t)}})},{32:32,79:79}],268:[function(t,n,r){var e=t(32),i=t(80),o=t(107),u=t(70),c=t(24);e(e.S,"Object",{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(t){for(var n,r=o(t),e=u.f,f=i(r),a={},s=0;f.length>s;)c(a,n=f[s++],e(r,n));return a}})},{107:107,24:24,32:32,70:70,80:80}],269:[function(t,n,r){"use strict";var e=t(32),i=t(109),o=t(110),u=t(74),c=t(70).f;t(28)&&e(e.P+t(69),"Object",{__lookupGetter__:function __lookupGetter__(t){var n,r=i(this),e=o(t,!0);do if(n=c(r,e))return n.get;while(r=u(r))}})},{109:109,110:110,28:28,32:32,69:69,70:70,74:74}],270:[function(t,n,r){"use strict";var e=t(32),i=t(109),o=t(110),u=t(74),c=t(70).f;t(28)&&e(e.P+t(69),"Object",{__lookupSetter__:function __lookupSetter__(t){var n,r=i(this),e=o(t,!0);do if(n=c(r,e))return n.set;while(r=u(r))}})},{109:109,110:110,28:28,32:32,69:69,70:70,74:74}],271:[function(t,n,r){var e=t(32),i=t(79)(!1);e(e.S,"Object",{values:function values(t){return i(t)}})},{32:32,79:79}],272:[function(t,n,r){"use strict";var e=t(32),i=t(38),o=t(23),u=t(64)(),c=t(117)("observable"),f=t(3),a=t(7),s=t(6),l=t(86),h=t(40),v=t(37),p=v.RETURN,d=function(t){return null==t?void 0:f(t)},y=function(t){var n=t._c;n&&(t._c=void 0,n())},g=function(t){return void 0===t._o},b=function(t){g(t)||(t._o=void 0,y(t))},x=function(t,n){a(t),this._c=void 0,this._o=t,t=new m(this);try{var r=n(t),e=r;null!=r&&("function"==typeof r.unsubscribe?r=function(){e.unsubscribe()}:f(r),this._c=r)}catch(n){return void t.error(n)}g(this)&&y(this)};x.prototype=l({},{unsubscribe:function unsubscribe(){b(this)}});var m=function(t){this._s=t};m.prototype=l({},{next:function next(t){var n=this._s;if(!g(n)){var r=n._o;try{var e=d(r.next);if(e)return e.call(r,t)}catch(t){try{b(n)}finally{throw t}}}},error:function error(t){var n=this._s;if(g(n))throw t;var r=n._o;n._o=void 0;try{var e=d(r.error);if(!e)throw t;t=e.call(r,t)}catch(t){try{y(n)}finally{throw t}}return y(n),t},complete:function complete(t){var n=this._s;if(!g(n)){var r=n._o;n._o=void 0;try{var e=d(r.complete);t=e?e.call(r,t):void 0}catch(t){try{y(n)}finally{throw t}}return y(n),t}}});var w=function Observable(t){s(this,w,"Observable","_f")._f=f(t)};l(w.prototype,{subscribe:function subscribe(t){return new x(t,this._f)},forEach:function forEach(t){var n=this;return new(o.Promise||i.Promise)(function(r,e){f(t);var i=n.subscribe({next:function(n){try{return t(n)}catch(t){e(t),i.unsubscribe()}},error:e,complete:r})})}}),l(w,{from:function from(t){var n="function"==typeof this?this:w,r=d(a(t)[c]);if(r){var e=a(r.call(t));return e.constructor===n?e:new n(function(t){return e.subscribe(t)})}return new n(function(n){var r=!1;return u(function(){if(!r){try{if(v(t,!1,function(t){if(n.next(t),r)return p})===p)return}catch(t){if(r)throw t;return void n.error(t)}n.complete()}}),function(){r=!0}})},of:function of(){for(var t=0,n=arguments.length,r=Array(n);t<n;)r[t]=arguments[t++];return new("function"==typeof this?this:w)(function(t){var n=!1;return u(function(){if(!n){for(var e=0;e<r.length;++e)if(t.next(r[e]),n)return;t.complete()}}),function(){n=!0}})}}),h(w.prototype,c,function(){return this}),e(e.G,{Observable:w}),t(91)("Observable")},{117:117,23:23,3:3,32:32,37:37,38:38,40:40,6:6,64:64,7:7,86:86,91:91}],273:[function(t,n,r){var e=t(63),i=t(7),o=e.key,u=e.set;e.exp({defineMetadata:function defineMetadata(t,n,r,e){u(t,n,i(r),o(e))}})},{63:63,7:7}],274:[function(t,n,r){var e=t(63),i=t(7),o=e.key,u=e.map,c=e.store;e.exp({deleteMetadata:function deleteMetadata(t,n){var r=arguments.length<3?void 0:o(arguments[2]),e=u(i(n),r,!1);if(void 0===e||!e.delete(t))return!1;if(e.size)return!0;var f=c.get(n);return f.delete(r),!!f.size||c.delete(n)}})},{63:63,7:7}],275:[function(t,n,r){var e=t(220),i=t(10),o=t(63),u=t(7),c=t(74),f=o.keys,a=o.key,s=function(t,n){var r=f(t,n),o=c(t);if(null===o)return r;var u=s(o,n);return u.length?r.length?i(new e(r.concat(u))):u:r};o.exp({getMetadataKeys:function getMetadataKeys(t){return s(u(t),arguments.length<2?void 0:a(arguments[1]))}})},{10:10,220:220,63:63,7:7,74:74}],276:[function(t,n,r){var e=t(63),i=t(7),o=t(74),u=e.has,c=e.get,f=e.key,a=function(t,n,r){var e=u(t,n,r);if(e)return c(t,n,r);var i=o(n);return null!==i?a(t,i,r):void 0};e.exp({getMetadata:function getMetadata(t,n){return a(t,i(n),arguments.length<3?void 0:f(arguments[2]))}})},{63:63,7:7,74:74}],277:[function(t,n,r){var e=t(63),i=t(7),o=e.keys,u=e.key;e.exp({getOwnMetadataKeys:function getOwnMetadataKeys(t){return o(i(t),arguments.length<2?void 0:u(arguments[1]))}})},{63:63,7:7}],278:[function(t,n,r){var e=t(63),i=t(7),o=e.get,u=e.key;e.exp({getOwnMetadata:function getOwnMetadata(t,n){return o(t,i(n),arguments.length<3?void 0:u(arguments[2]))}})},{63:63,7:7}],279:[function(t,n,r){var e=t(63),i=t(7),o=t(74),u=e.has,c=e.key,f=function(t,n,r){var e=u(t,n,r);if(e)return!0;var i=o(n);return null!==i&&f(t,i,r)};e.exp({hasMetadata:function hasMetadata(t,n){return f(t,i(n),arguments.length<3?void 0:c(arguments[2]))}})},{63:63,7:7,74:74}],280:[function(t,n,r){var e=t(63),i=t(7),o=e.has,u=e.key;e.exp({hasOwnMetadata:function hasOwnMetadata(t,n){return o(t,i(n),arguments.length<3?void 0:u(arguments[2]))}})},{63:63,7:7}],281:[function(t,n,r){var e=t(63),i=t(7),o=t(3),u=e.key,c=e.set;e.exp({metadata:function metadata(t,n){return function decorator(r,e){c(t,n,(void 0!==e?i:o)(r),u(e))}}})},{3:3,63:63,7:7}],282:[function(t,n,r){var e=t(32);e(e.P+e.R,"Set",{toJSON:t(20)("Set")})},{20:20,32:32}],283:[function(t,n,r){"use strict";var e=t(32),i=t(97)(!0);e(e.P,"String",{at:function at(t){return i(this,t)}})},{32:32,97:97}],284:[function(t,n,r){"use strict";var e=t(32),i=t(27),o=t(108),u=t(50),c=t(36),f=RegExp.prototype,a=function(t,n){this._r=t,this._s=n};t(52)(a,"RegExp String",function next(){var t=this._r.exec(this._s);return{value:t,done:null===t}}),e(e.P,"String",{matchAll:function matchAll(t){if(i(this),!u(t))throw TypeError(t+" is not a regexp!");var n=String(this),r="flags"in f?String(t.flags):c.call(t),e=new RegExp(t.source,~r.indexOf("g")?r:"g"+r);return e.lastIndex=o(t.lastIndex),new a(e,n)}})},{108:108,27:27,32:32,36:36,50:50,52:52}],285:[function(t,n,r){"use strict";var e=t(32),i=t(100);e(e.P,"String",{padEnd:function padEnd(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!1)}})},{100:100,32:32}],286:[function(t,n,r){"use strict";var e=t(32),i=t(100);e(e.P,"String",{padStart:function padStart(t){return i(this,t,arguments.length>1?arguments[1]:void 0,!0)}})},{100:100,32:32}],287:[function(t,n,r){"use strict";t(102)("trimLeft",function(t){return function trimLeft(){return t(this,1)}},"trimStart")},{102:102}],288:[function(t,n,r){"use strict";t(102)("trimRight",function(t){return function trimRight(){return t(this,2)}},"trimEnd")},{102:102}],289:[function(t,n,r){t(115)("asyncIterator")},{115:115}],290:[function(t,n,r){t(115)("observable")},{115:115}],291:[function(t,n,r){var e=t(32);e(e.S,"System",{global:t(38)})},{32:32,38:38}],292:[function(t,n,r){for(var e=t(130),i=t(87),o=t(38),u=t(40),c=t(56),f=t(117),a=f("iterator"),s=f("toStringTag"),l=c.Array,h=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],v=0;v<5;v++){var p,d=h[v],y=o[d],g=y&&y.prototype;if(g){g[a]||u(g,a,l),g[s]||u(g,s,d),c[d]=l;for(p in e)g[p]||i(g,p,e[p],!0)}}},{117:117,130:130,38:38,40:40,56:56,87:87}],293:[function(t,n,r){var e=t(32),i=t(104);e(e.G+e.B,{setImmediate:i.set,clearImmediate:i.clear})},{104:104,32:32}],294:[function(t,n,r){var e=t(38),i=t(32),o=t(44),u=t(83),c=e.navigator,f=!!c&&/MSIE .\./.test(c.userAgent),a=function(t){return f?function(n,r){return t(o(u,[].slice.call(arguments,2),"function"==typeof n?n:Function(n)),r)}:t};i(i.G+i.B+i.F*f,{setTimeout:a(e.setTimeout),setInterval:a(e.setInterval)})},{32:32,38:38,44:44,83:83}],295:[function(t,n,r){t(243),t(180),t(182),t(181),t(184),t(186),t(191),t(185),t(183),t(193),t(192),t(188),t(189),t(187),t(179),t(190),t(194),t(195),t(146),t(148),t(147),t(197),t(196),t(167),t(177),t(178),t(168),t(169),t(170),t(171),t(172),t(173),t(174),t(175),t(176),t(150),t(151),t(152),t(153),t(154),t(155),t(156),t(157),t(158),t(159),t(160),t(161),t(162),t(163),t(164),t(165),t(166),t(230),t(235),t(242),t(233),t(225),t(226),t(231),t(236),t(238),t(221),t(222),t(223),t(224),t(227),t(228),t(229),t(232),t(234),t(237),t(239),t(240),t(241),t(141),t(143),t(142),t(145),t(144),t(129),t(127),t(134),t(131),t(137),t(139),t(126),t(133),t(123),t(138),t(121),t(136),t(135),t(128),t(132),t(120),t(122),t(125),t(124),t(140),t(130),t(213),t(219),t(214),t(215),t(216),t(217),t(218),t(198),t(149),t(220),t(255),t(256),t(244),t(245),t(250),t(253),t(254),t(248),t(251),t(249),t(252),t(246),t(247),t(199),t(200),t(201),t(202),t(203),t(206),t(204),t(205),t(207),t(208),t(209),t(210),t(212),t(211),t(257),t(283),t(286),t(285),t(287),t(288),t(284),t(289),t(290),t(268),t(271),t(267),t(265),t(266),t(269),t(270),t(260),t(282),t(291),t(259),t(261),t(263),t(262),t(264),t(273),t(274),t(276),t(275),t(278),t(277),t(279),t(280),t(281),t(258),t(272),t(294),t(293),t(292),n.exports=t(23)},{120:120,121:121,122:122,123:123,124:124,125:125,126:126,127:127,128:128,129:129,130:130,131:131,132:132,133:133,134:134,135:135,136:136,137:137,138:138,139:139,140:140,141:141,142:142,143:143,144:144,145:145,146:146,147:147,148:148,149:149,150:150,151:151,152:152,153:153,154:154,155:155,156:156,157:157,158:158,159:159,160:160,161:161,162:162,163:163,164:164,165:165,166:166,167:167,168:168,169:169,170:170,171:171,172:172,173:173,174:174,175:175,176:176,177:177,178:178,179:179,180:180,181:181,182:182,183:183,184:184,185:185,186:186,187:187,188:188,189:189,190:190,191:191,192:192,193:193,194:194,195:195,196:196,197:197,198:198,199:199,200:200,201:201,202:202,203:203,204:204,205:205,206:206,207:207,208:208,209:209,210:210,211:211,212:212,213:213,214:214,215:215,216:216,217:217,218:218,219:219,220:220,221:221,222:222,223:223,224:224,225:225,226:226,227:227,228:228,229:229,23:23,230:230,231:231,232:232,233:233,234:234,235:235,236:236,237:237,238:238,239:239,240:240,241:241,242:242,243:243,244:244,245:245,246:246,247:247,248:248,249:249,250:250,251:251,252:252,253:253,254:254,255:255,256:256,257:257,258:258,259:259,260:260,261:261,262:262,263:263,264:264,265:265,266:266,267:267,268:268,269:269,270:270,271:271,272:272,273:273,274:274,275:275,276:276,277:277,278:278,279:279,280:280,281:281,282:282,283:283,284:284,285:285,286:286,287:287,288:288,289:289,290:290,291:291,292:292,293:293,294:294}],296:[function(t,n,r){(function(t){!function(t){"use strict";function wrap(t,n,r,e){var i=Object.create((n||Generator).prototype),o=new Context(e||[]);return i._invoke=makeInvokeMethod(t,r,o),i}function tryCatch(t,n,r){try{return{type:"normal",arg:t.call(n,r)}}catch(t){return{type:"throw",arg:t}}}function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}function defineIteratorMethods(t){["next","throw","return"].forEach(function(n){t[n]=function(t){return this._invoke(n,t)}})}function AwaitArgument(t){this.arg=t}function AsyncIterator(t){function invoke(n,r,e,i){var o=tryCatch(t[n],t,r);if("throw"!==o.type){var u=o.arg,c=u.value;return c instanceof AwaitArgument?Promise.resolve(c.arg).then(function(t){invoke("next",t,e,i)},function(t){invoke("throw",t,e,i)}):Promise.resolve(c).then(function(t){u.value=t,e(u)},i)}i(o.arg)}function enqueue(t,r){function callInvokeWithMethodAndArg(){return new Promise(function(n,e){invoke(t,r,n,e)})}return n=n?n.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}"object"==typeof process&&process.domain&&(invoke=process.domain.bind(invoke));var n;this._invoke=enqueue}function makeInvokeMethod(t,n,e){var i=a;return function invoke(o,u){if(i===l)throw new Error("Generator is already running");if(i===h){if("throw"===o)throw u;return doneResult()}for(;;){var c=e.delegate;if(c){if("return"===o||"throw"===o&&c.iterator[o]===r){e.delegate=null;var f=c.iterator.return;if(f){var p=tryCatch(f,c.iterator,u);if("throw"===p.type){o="throw",u=p.arg;continue}}if("return"===o)continue}var p=tryCatch(c.iterator[o],c.iterator,u);if("throw"===p.type){e.delegate=null,o="throw",u=p.arg;continue}o="next",u=r;var d=p.arg;if(!d.done)return i=s,d;e[c.resultName]=d.value,e.next=c.nextLoc,e.delegate=null}if("next"===o)e.sent=e._sent=u;else if("throw"===o){if(i===a)throw i=h,u;e.dispatchException(u)&&(o="next",u=r)}else"return"===o&&e.abrupt("return",u);i=l;var p=tryCatch(t,n,e);if("normal"===p.type){i=e.done?h:s;var d={value:p.arg,done:e.done};if(p.arg!==v)return d;e.delegate&&"next"===o&&(u=r)}else"throw"===p.type&&(i=h,o="throw",u=p.arg)}}}function pushTryEntry(t){var n={tryLoc:t[0]};1 in t&&(n.catchLoc=t[1]),2 in t&&(n.finallyLoc=t[2],n.afterLoc=t[3]),this.tryEntries.push(n)}function resetTryEntry(t){var n=t.completion||{};n.type="normal",delete n.arg,t.completion=n}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(t){if(t){var n=t[o];if(n)return n.call(t);if("function"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,u=function next(){for(;++i<t.length;)if(e.call(t,i))return next.value=t[i],next.done=!1,next;return next.value=r,next.done=!0,next};return u.next=u}}return{next:doneResult}}function doneResult(){return{value:r,done:!0}}var r,e=Object.prototype.hasOwnProperty,i="function"==typeof Symbol?Symbol:{},o=i.iterator||"@@iterator",u=i.toStringTag||"@@toStringTag",c="object"==typeof n,f=t.regeneratorRuntime;if(f)return void(c&&(n.exports=f));f=t.regeneratorRuntime=c?n.exports:{},f.wrap=wrap;var a="suspendedStart",s="suspendedYield",l="executing",h="completed",v={},p=GeneratorFunctionPrototype.prototype=Generator.prototype;GeneratorFunction.prototype=p.constructor=GeneratorFunctionPrototype,GeneratorFunctionPrototype.constructor=GeneratorFunction,GeneratorFunctionPrototype[u]=GeneratorFunction.displayName="GeneratorFunction",f.isGeneratorFunction=function(t){var n="function"==typeof t&&t.constructor;return!!n&&(n===GeneratorFunction||"GeneratorFunction"===(n.displayName||n.name))},f.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,u in t||(t[u]="GeneratorFunction")),t.prototype=Object.create(p),t},f.awrap=function(t){return new AwaitArgument(t)},defineIteratorMethods(AsyncIterator.prototype),f.async=function(t,n,r,e){var i=new AsyncIterator(wrap(t,n,r,e));return f.isGeneratorFunction(n)?i:i.next().then(function(t){return t.done?t.value:i.next()})},defineIteratorMethods(p),p[o]=function(){return this},p[u]="Generator",p.toString=function(){return"[object Generator]"},f.keys=function(t){var n=[];for(var r in t)n.push(r);return n.reverse(),function next(){for(;n.length;){var r=n.pop();if(r in t)return next.value=r,next.done=!1,next}return next.done=!0,next}},f.values=values,Context.prototype={constructor:Context,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.tryEntries.forEach(resetTryEntry),!t)for(var n in this)"t"===n.charAt(0)&&e.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0],n=t.completion;if("throw"===n.type)throw n.arg;return this.rval},dispatchException:function(t){function handle(r,e){return o.type="throw",o.arg=t,n.next=r,!!e}if(this.done)throw t;for(var n=this,r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var u=e.call(i,"catchLoc"),c=e.call(i,"finallyLoc");
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/babel-polyfill/babel-polyfill.min.js-4-if(u&&c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!c)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,n){for(var r=this.tryEntries.length-1;r>=0;--r){var i=this.tryEntries[r];if(i.tryLoc<=this.prev&&e.call(i,"finallyLoc")&&this.prev<i.finallyLoc){var o=i;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=n&&n<=o.finallyLoc&&(o=null);var u=o?o.completion:{};return u.type=t,u.arg=n,o?this.next=o.finallyLoc:this.complete(u),v},complete:function(t,n){if("throw"===t.type)throw t.arg;"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=t.arg,this.next="end"):"normal"===t.type&&n&&(this.next=n)},finish:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),v}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc===t){var e=r.completion;if("throw"===e.type){var i=e.arg;resetTryEntry(r)}return i}}throw new Error("illegal catch attempt")},delegateYield:function(t,n,r){return this.delegate={iterator:values(t),resultName:n,nextLoc:r},v}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[1]);
##############################################
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.js-1-/*! selectize.js - v0.12.1 | https://github.com/brianreavis/selectize.js | Apache License (v2) */
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.js:2:!function(a,b){"function"==typeof define&&define.amd?define(["jquery","sifter","microplugin"],b):"object"==typeof exports?module.exports=b(require("jquery"),require("sifter"),require("microplugin")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){"use strict";var d=function(a,b){if("string"!=typeof b||b.length){var c="string"==typeof b?new RegExp(b,"i"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName))for(var j=0;j<a.childNodes.length;++j)j+=d(a.childNodes[j]);return b};return a.each(function(){d(this)})}},e=function(){};e.prototype={on:function(a,b){this._events=this._events||{},this._events[a]=this._events[a]||[],this._events[a].push(b)},off:function(a,b){var c=arguments.length;return 0===c?delete this._events:1===c?delete this._events[a]:(this._events=this._events||{},void(a in this._events!=!1&&this._events[a].splice(this._events[a].indexOf(b),1)))},trigger:function(a){if(this._events=this._events||{},a in this._events!=!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,1))}},e.mixin=function(a){for(var b=["on","off","trigger"],c=0;c<b.length;c++)a.prototype[b[c]]=e.prototype[b[c]]};var f=/Mac/.test(navigator.userAgent),g=65,h=13,i=27,j=37,k=38,l=80,m=39,n=40,o=78,p=8,q=46,r=16,s=f?91:17,t=f?18:17,u=9,v=1,w=2,x=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("form").validity,y=function(a){return"undefined"!=typeof a},z=function(a){return"undefined"==typeof a||null===a?null:"boolean"==typeof a?a?"1":"0":a+""},A=function(a){return(a+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},B=function(a){return(a+"").replace(/\$/g,"$$$$")},C={};C.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},C.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var D=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},E=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},F=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];return-1===b.indexOf(c)?e.apply(a,arguments):void(f[c]=arguments)},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},G=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},H=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},I=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;e>d;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},J=function(b,c){if(!b)return 0;var d=a("<test>").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(b).appendTo("body");I(c,d,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]);var e=d.width();return d.remove(),e},K=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||a.data("grow")!==!1)&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=97&&122>=f||f>=65&&90>=f||f>=48&&57>=f||32===f,f===q||f===p?(l=H(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):f===p&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):f===q&&"undefined"!=typeof l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),i=J(e,a)+4,i!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},L=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?v:w,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++L.count,highlightedValue:null,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:E(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;f>e;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;f>e;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?"single":"multi"),"boolean"!=typeof i.settings.hideSelected&&(i.settings.hideSelected="multi"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(L),c.mixin(L),a.extend(L.prototype,{setup:function(){var b,c,d,e,g,h,i,j,k,l=this,m=l.settings,n=l.eventNS,o=a(window),p=a(document),q=l.$input;if(i=l.settings.mode,j=q.attr("class")||"",b=a("<div>").addClass(m.wrapperClass).addClass(j).addClass(i),c=a("<div>").addClass(m.inputClass).addClass("items").appendTo(b),d=a('<input type="text" autocomplete="off" />').appendTo(c).attr("tabindex",q.is(":disabled")?"-1":l.tabIndex),h=a(m.dropdownParent||b),e=a("<div>").addClass(m.dropdownClass).addClass(i).hide().appendTo(h),g=a("<div>").addClass(m.dropdownContentClass).appendTo(e),l.settings.copyClassesToDropdown&&e.addClass(j),b.css({width:q[0].style.width}),l.plugins.names.length&&(k="plugin-"+l.plugins.names.join(" plugin-"),b.addClass(k),e.addClass(k)),(null===m.maxItems||m.maxItems>1)&&l.tagType===v&&q.attr("multiple","multiple"),l.settings.placeholder&&d.attr("placeholder",m.placeholder),!l.settings.splitOn&&l.settings.delimiter){var u=l.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");l.settings.splitOn=new RegExp("\\s*"+u+"+\\s*")}q.attr("autocorrect")&&d.attr("autocorrect",q.attr("autocorrect")),q.attr("autocapitalize")&&d.attr("autocapitalize",q.attr("autocapitalize")),l.$wrapper=b,l.$control=c,l.$control_input=d,l.$dropdown=e,l.$dropdown_content=g,e.on("mouseenter","[data-selectable]",function(){return l.onOptionHover.apply(l,arguments)}),e.on("mousedown click","[data-selectable]",function(){return l.onOptionSelect.apply(l,arguments)}),G(c,"mousedown","*:not(input)",function(){return l.onItemSelect.apply(l,arguments)}),K(d),c.on({mousedown:function(){return l.onMouseDown.apply(l,arguments)},click:function(){return l.onClick.apply(l,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return l.onKeyDown.apply(l,arguments)},keyup:function(){return l.onKeyUp.apply(l,arguments)},keypress:function(){return l.onKeyPress.apply(l,arguments)},resize:function(){l.positionDropdown.apply(l,[])},blur:function(){return l.onBlur.apply(l,arguments)},focus:function(){return l.ignoreBlur=!1,l.onFocus.apply(l,arguments)},paste:function(){return l.onPaste.apply(l,arguments)}}),p.on("keydown"+n,function(a){l.isCmdDown=a[f?"metaKey":"ctrlKey"],l.isCtrlDown=a[f?"altKey":"ctrlKey"],l.isShiftDown=a.shiftKey}),p.on("keyup"+n,function(a){a.keyCode===t&&(l.isCtrlDown=!1),a.keyCode===r&&(l.isShiftDown=!1),a.keyCode===s&&(l.isCmdDown=!1)}),p.on("mousedown"+n,function(a){if(l.isFocused){if(a.target===l.$dropdown[0]||a.target.parentNode===l.$dropdown[0])return!1;l.$control.has(a.target).length||a.target===l.$control[0]||l.blur(a.target)}}),o.on(["scroll"+n,"resize"+n].join(" "),function(){l.isOpen&&l.positionDropdown.apply(l,arguments)}),o.on("mousemove"+n,function(){l.ignoreHover=!1}),this.revertSettings={$children:q.children().detach(),tabindex:q.attr("tabindex")},q.attr("tabindex",-1).hide().after(l.$wrapper),a.isArray(m.items)&&(l.setValue(m.items),delete m.items),x&&q.on("invalid"+n,function(a){a.preventDefault(),l.isInvalid=!0,l.refreshState()}),l.updateOriginalInput(),l.refreshItems(),l.refreshState(),l.updatePlaceholder(),l.isSetup=!0,q.is(":disabled")&&l.disable(),l.on("change",this.onChange),q.data("selectize",l),q.addClass("selectized"),l.trigger("initialize"),m.preload===!0&&l.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'<div class="optgroup">'+a.html+"</div>"},optgroup_header:function(a,b){return'<div class="optgroup-header">'+b(a[d])+"</div>"},option:function(a,b){return'<div class="option">'+b(a[c])+"</div>"},item:function(a,b){return'<div class="item">'+b(a[c])+"</div>"},option_create:function(a,b){return'<div class="create">Add <strong>'+b(a.input)+"</strong>&hellip;</div>"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]],b&&this.on(a,b))},onClick:function(a){var b=this;b.isFocused||(b.focus(),a.preventDefault())},onMouseDown:function(b){{var c=this,d=b.isDefaultPrevented();a(b.target)}if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;c.isFull()||c.isInputHidden||c.isLocked?b.preventDefault():c.settings.splitOn&&setTimeout(function(){for(var b=a.trim(c.$control_input.val()||"").split(c.settings.splitOn),d=0,e=b.length;e>d;d++)c.createItem(b[d])},0)},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&"multi"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target===this.$control_input[0],this);if(b.isLocked)return void(a.keyCode!==u&&a.preventDefault());switch(a.keyCode){case g:if(b.isCmdDown)return void b.selectAll();break;case i:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case o:if(!a.ctrlKey||a.altKey)break;case n:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case l:if(!a.ctrlKey||a.altKey)break;case k:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case h:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case j:return void b.advanceSelection(-1,a);case m:return void b.advanceSelection(1,a);case u:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case p:case q:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||"";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger("type",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;return b.isDisabled?(b.blur(),a&&a.preventDefault(),!1):void(b.ignoreFocus||(b.isFocused=!0,"focus"===b.settings.preload&&b.onSearchChange(""),c||b.trigger("focus"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState()))},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(""),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),(b||document.body).focus(),c.ignoreFocus=!1,c.trigger("blur")};c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass("create")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):(c=d.attr("data-value"),"undefined"!=typeof c&&(e.lastQuery=null,e.setTextboxValue(""),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c))))},onItemSelect:function(a){var b=this;b.isLocked||"multi"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger("load",a)}])},setTextboxValue:function(a){var b=this.$control_input,c=b.val()!==a;c&&(b.val(a).triggerHandler("update"),this.lastValue=a)},getValue:function(){return this.tagType===v&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){var c=b?[]:["change"];F(this,c,function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if("single"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass("active"),l.$activeItems=[],void(l.isFocused&&l.showInput());if(d=c&&c.type.toLowerCase(),"mousedown"===d&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(".active:last"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;h>=e;e++)i=l.$control[0].childNodes[e],-1===l.$activeItems.indexOf(i)&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,j=this;j.$activeOption&&j.$activeOption.removeClass("active"),j.$activeOption=null,b=a(b),b.length&&(j.$activeOption=b.addClass("active"),(c||!y(c))&&(e=j.$dropdown_content.height(),f=j.$activeOption.outerHeight(!0),c=j.$dropdown_content.scrollTop()||0,g=j.$activeOption.offset().top-j.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?j.$dropdown_content.stop().animate({scrollTop:i},d?j.settings.scrollDuration:0):c>g&&j.$dropdown_content.stop().animate({scrollTop:h},d?j.settings.scrollDuration:0)))},selectAll:function(){var a=this;"single"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(":not(input)").addClass("active")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(""),a.$control_input.css({opacity:0,position:"absolute",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return"string"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&(e=f.settings.score.apply(this,[b]),"function"!=typeof e))throw new Error('Selectize "score" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)-1!==f.items.indexOf(z(d.items[c].id))&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;"undefined"==typeof b&&(b=!0);var t=this,u=a.trim(t.$control_input.val()),v=t.search(u),w=t.$dropdown_content,x=t.$activeOption&&z(t.$activeOption.attr("data-value"));for(g=v.items.length,"number"==typeof t.settings.maxOptions&&(g=Math.min(g,t.settings.maxOptions)),h={},i=[],c=0;g>c;c++)for(j=t.options[v.items[c].id],k=t.render("option",j),l=j[t.settings.optgroupField]||"",m=a.isArray(l)?l:[l],e=0,f=m&&m.length;f>e;e++)l=m[e],t.optgroups.hasOwnProperty(l)||(l=""),h.hasOwnProperty(l)||(h[l]=[],i.push(l)),h[l].push(k);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){var c=t.optgroups[a].$order||0,d=t.optgroups[b].$order||0;return c-d}),n=[],c=0,g=i.length;g>c;c++)l=i[c],t.optgroups.hasOwnProperty(l)&&h[l].length?(o=t.render("optgroup_header",t.optgroups[l])||"",o+=h[l].join(""),n.push(t.render("optgroup",a.extend({},t.optgroups[l],{html:o})))):n.push(h[l].join(""));if(w.html(n.join("")),t.settings.highlight&&v.query.length&&v.tokens.length)for(c=0,g=v.tokens.length;g>c;c++)d(w,v.tokens[c].regex);if(!t.settings.hideSelected)for(c=0,g=t.items.length;g>c;c++)t.getOption(t.items[c]).addClass("selected");p=t.canCreate(u),p&&(w.prepend(t.render("option_create",{input:u})),s=a(w[0].childNodes[0])),t.hasOptions=v.items.length>0||p,t.hasOptions?(v.items.length>0?(r=x&&t.getOption(x),r&&r.length?q=r:"single"===t.settings.mode&&t.items.length&&(q=t.getOption(t.items[0])),q&&q.length||(q=s&&!t.settings.addPrecedence?t.getAdjacentOption(s,1):w.find("[data-selectable]:first"))):q=s,t.setActiveOption(q),b&&!t.isOpen&&t.open()):(t.setActiveOption(null),b&&t.isOpen&&t.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;d>c;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger("option_add",e,b))},registerOption:function(a){var b=z(a[this.settings.valueField]);return!b||this.options.hasOwnProperty(b)?!1:(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=z(a[this.settings.optgroupValueField]);return b?(a.$order=a.$order||++this.order,this.optgroups[b]=a,b):!1},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger("optgroup_add",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger("optgroup_remove",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(b,c){var d,e,f,g,h,i,j,k=this;if(b=z(b),f=z(c[k.settings.valueField]),null!==b&&k.options.hasOwnProperty(b)){if("string"!=typeof f)throw new Error("Value must be set in option data");j=k.options[b].$order,f!==b&&(delete k.options[b],g=k.items.indexOf(b),-1!==g&&k.items.splice(g,1,f)),c.$order=c.$order||j,k.options[f]=c,h=k.renderCache.item,i=k.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),-1!==k.items.indexOf(f)&&(d=k.getItem(b),e=a(k.render("item",c)),d.hasClass("active")&&e.addClass("active"),d.replaceWith(e)),k.lastQuery=null,k.isOpen&&k.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=z(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger("option_remove",a),c.removeItem(a,b)},clearOptions:function(){var a=this;a.loadedSearches={},a.userOptions={},a.renderCache={},a.options=a.sifter.items={},a.lastQuery=null,a.trigger("option_clear"),a.clear()},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},getElementWithValue:function(b,c){if(b=z(b),"undefined"!=typeof b&&null!==b)for(var d=0,e=c.length;e>d;d++)if(c[d].getAttribute("data-value")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){for(var d=a.isArray(b)?b:[b],e=0,f=d.length;f>e;e++)this.isPending=f-1>e,this.addItem(d[e],c)},addItem:function(b,c){var d=c?[]:["change"];F(this,d,function(){var d,e,f,g,h,i=this,j=i.settings.mode;return b=z(b),-1!==i.items.indexOf(b)?void("single"===j&&i.close()):void(i.options.hasOwnProperty(b)&&("single"===j&&i.clear(c),"multi"===j&&i.isFull()||(d=a(i.render("item",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find("[data-selectable]"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr("data-value"),i.refreshOptions(i.isFocused&&"single"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.positionDropdown(),i.updatePlaceholder(),i.trigger("item_add",b,d),i.updateOriginalInput({silent:c})))))})},removeItem:function(a,b){var c,d,e,f=this;c="object"==typeof a?a:f.getItem(a),a=z(c.attr("data-value")),d=f.items.indexOf(a),-1!==d&&(c.remove(),c.hasClass("active")&&(e=f.$activeItems.indexOf(c[0]),f.$activeItems.splice(e,1)),f.items.splice(d,1),f.lastQuery=null,!f.settings.persist&&f.userOptions.hasOwnProperty(a)&&f.removeOption(a,b),d<f.caretPos&&f.setCaret(f.caretPos-1),f.refreshState(),f.updatePlaceholder(),f.updateOriginalInput({silent:b}),f.positionDropdown(),f.trigger("item_remove",a,c))},createItem:function(b,c){var d=this,e=d.caretPos;b=b||a.trim(d.$control_input.val()||"");var f=arguments[arguments.length-1];if("function"!=typeof f&&(f=function(){}),"boolean"!=typeof c&&(c=!0),!d.canCreate(b))return f(),!1;d.lock();var g="function"==typeof d.settings.create?this.settings.create:function(a){var b={};return b[d.settings.labelField]=a,b[d.settings.valueField]=a,b},h=D(function(a){if(d.unlock(),!a||"object"!=typeof a)return f();var b=z(a[d.settings.valueField]);return"string"!=typeof b?f():(d.setTextboxValue(""),d.addOption(a),d.setCaret(e),d.addItem(b),d.refreshOptions(c&&"single"!==d.settings.mode),void f(a))}),i=g.apply(this,[b,h]);return"undefined"!=typeof i&&h(i),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){var a,b=this;b.isRequired&&(b.items.length&&(b.isInvalid=!1),b.$control_input.prop("required",a)),b.refreshClasses()},refreshClasses:function(){var b=this,c=b.isFull(),d=b.isLocked;b.$wrapper.toggleClass("rtl",b.rtl),b.$control.toggleClass("focus",b.isFocused).toggleClass("disabled",b.isDisabled).toggleClass("required",b.isRequired).toggleClass("invalid",b.isInvalid).toggleClass("locked",d).toggleClass("full",c).toggleClass("not-full",!c).toggleClass("input-active",b.isFocused&&!b.isInputHidden).toggleClass("dropdown-active",b.isOpen).toggleClass("has-options",!a.isEmptyObject(b.options)).toggleClass("has-items",b.items.length>0),b.$control_input.data("grow",!c&&!d)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},f.tagType===v){for(d=[],b=0,c=f.items.length;c>b;b++)e=f.options[f.items[b]][f.settings.labelField]||"",d.push('<option value="'+A(f.items[b])+'" selected="selected">'+A(e)+"</option>");d.length||this.$input.attr("multiple")||d.push('<option value="" selected="selected"></option>'),f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&a.hideInput(),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a.outerWidth(),top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(b){var c=Math.min(this.caretPos,this.items.length);0===c?this.$control.prepend(b):a(this.$control[0].childNodes[c]).before(b),this.setCaret(c+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&b.keyCode===p?-1:1,f=H(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;d>c;c++)g.push(a(l.$activeItems[c]).attr("data-value"));b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||"single"===l.settings.mode)&&l.items.length&&(0>e&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&l.settings.onDelete.apply(l,[g])===!1)return!1;for("undefined"!=typeof h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h,i=this;0!==a&&(i.rtl&&(a*=-1),c=a>0?"last":"first",d=H(i.$control_input[0]),i.isFocused&&!i.isInputHidden?(f=i.$control_input.val().length,g=0>a?0===d.start&&0===d.length:d.start===f,g&&!f&&i.advanceCaret(a,b)):(h=i.$control.children(".active:"+c),h.length&&(e=i.$control.children(":not(input)").index(h),i.setActiveItem(null),i.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;e>d;d++)g=a(f[d]).detach(),b>d?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop("disabled",!0),a.$control_input.prop("disabled",!0).prop("tabindex",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop("disabled",!1),a.$control_input.prop("disabled",!1).prop("tabindex",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger("destroy"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html("").append(d.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData("grow"),b.$input.removeData("selectize"),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(a,b){var c,d,e="",f=!1,g=this,h=/^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i;return("option"===a||"item"===a)&&(c=z(b[g.settings.valueField]),f=!!c),f&&(y(g.renderCache[a])||(g.renderCache[a]={}),g.renderCache[a].hasOwnProperty(c))?g.renderCache[a][c]:(e=g.settings.render[a].apply(this,[b,A]),("option"===a||"option_create"===a)&&(e=e.replace(h,"<$1 data-selectable")),"optgroup"===a&&(d=b[g.settings.optgroupValueField]||"",e=e.replace(h,'<$1 data-group="'+B(A(d))+'"')),("option"===a||"item"===a)&&(e=e.replace(h,'<$1 data-value="'+B(A(c||""))+'"')),f&&(g.renderCache[a][c]=e),e)},clearCache:function(a){var b=this;"undefined"==typeof a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return!(!a.length||"function"==typeof c&&!c.apply(b,[a])||"string"==typeof c&&!new RegExp(c).test(a)||c instanceof RegExp&&!c.test(a))}}),L.count=0,L.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.optgroupField,i=d.optgroupLabelField,j=d.optgroupValueField,k=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;i>h;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||"");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;i>h;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},l=function(b,c){var k,l,m,n,o=c.options,p={},q=function(a){var b=e&&a.attr(e);return"string"==typeof b&&b.length?JSON.parse(b):null},r=function(b,e){b=a(b);var i=z(b.attr("value"));if(i||d.allowEmptyOption)if(p.hasOwnProperty(i)){if(e){var j=p[i][h];j?a.isArray(j)?j.push(e):p[i][h]=[j,e]:p[i][h]=e}}else{var k=q(b)||{};k[f]=k[f]||b.text(),k[g]=k[g]||i,k[h]=k[h]||e,p[i]=k,o.push(k),b.is(":selected")&&c.items.push(i)
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.js-3-}},s=function(b){var d,e,f,g,h;for(b=a(b),f=b.attr("label"),f&&(g=q(b)||{},g[i]=f,g[j]=f,c.optgroups.push(g)),h=a("option",b),d=0,e=h.length;e>d;d++)r(h[d],f)};for(c.maxItems=b.attr("multiple")?null:1,n=b.children(),k=0,l=n.length;l>k;k++)m=n[k].tagName.toLowerCase(),"optgroup"===m?s(n[k]):"option"===m&&r(n[k])};return this.each(function(){if(!this.selectize){var e,f=a(this),g=this.tagName.toLowerCase(),h=f.attr("placeholder")||f.attr("data-placeholder");h||d.allowEmptyOption||(h=f.children('option[value=""]').text());var i={placeholder:h,options:[],optgroups:[],items:[]};"select"===g?l(f,i):k(f,i),e=new L(f,a.extend(!0,{},c,i,b))}})},a.fn.selectize.defaults=L.defaults,a.fn.selectize.support={validity:x},L.define("drag_drop",function(){if(!a.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');if("multi"===this.settings.mode){var b=this;b.lock=function(){var a=b.lock;return function(){var c=b.$control.data("sortable");return c&&c.disable(),a.apply(b,arguments)}}(),b.unlock=function(){var a=b.unlock;return function(){var c=b.$control.data("sortable");return c&&c.enable(),a.apply(b,arguments)}}(),b.setup=function(){var c=b.setup;return function(){c.apply(this,arguments);var d=b.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:b.isLocked,start:function(a,b){b.placeholder.css("width",b.helper.css("width")),d.css({overflow:"visible"})},stop:function(){d.css({overflow:"hidden"});var c=b.$activeItems?b.$activeItems.slice():null,e=[];d.children("[data-value]").each(function(){e.push(a(this).attr("data-value"))}),b.setValue(e),b.setActiveItem(c)}})}}()}}),L.define("dropdown_header",function(b){var c=this;b=a.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(a){return'<div class="'+a.headerClass+'"><div class="'+a.titleRowClass+'"><span class="'+a.labelClass+'">'+a.title+'</span><a href="javascript:void(0)" class="'+a.closeClass+'">&times;</a></div></div>'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),L.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},this.onKeyDown=function(){var a=c.onKeyDown;return function(b){var d,e,f,g;return!this.isOpen||b.keyCode!==j&&b.keyCode!==m?a.apply(this,arguments):(c.ignoreHover=!0,g=this.$activeOption.closest("[data-group]"),d=g.find("[data-selectable]").index(this.$activeOption),g=b.keyCode===j?g.prev("[data-group]"):g.next("[data-group]"),f=g.find("[data-selectable]"),e=f.eq(Math.min(f.length-1,d)),void(e.length&&this.setActiveOption(e)))}}();var d=function(){var a,b=d.width,c=document;return"undefined"==typeof b&&(a=c.createElement("div"),a.innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),f=k.length,f&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;f>e;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(C.after(this,"positionDropdown",e),C.after(this,"refreshOptions",e))}),L.define("remove_button",function(b){if("single"!==this.settings.mode){b=a.extend({label:"&times;",title:"Remove",className:"remove",append:!0},b);var c=this,d='<a href="javascript:void(0)" class="'+b.className+'" tabindex="-1" title="'+A(b.title)+'">'+b.label+"</a>",e=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};this.setup=function(){var f=c.setup;return function(){if(b.append){var g=c.settings.render.item;c.settings.render.item=function(){return e(g.apply(this,arguments),d)}}f.apply(this,arguments),this.$control.on("click","."+b.className,function(b){if(b.preventDefault(),!c.isLocked){var d=a(b.currentTarget).parent();c.setActiveItem(d),c.deleteSelection()&&c.setCaret(c.items.length)}})}}()}}),L.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return b.keyCode===p&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1,d>=0&&d<this.items.length)?(e=this.options[this.items[d]],this.deleteSelection(b)&&(this.setTextboxValue(a.text.apply(this,[e])),this.refreshOptions(!0)),void b.preventDefault()):c.apply(this,arguments)}}()}),L});
##############################################
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.shiny.js-1-/*! selectize.js - v0.12.1 | https://github.com/brianreavis/selectize.js | Apache License (v2) */
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.shiny.js:2:!function(a,b){"function"==typeof define&&define.amd?define("sifter",b):"object"==typeof exports?module.exports=b():a.Sifter=b()}(this,function(){var a=function(a,b){this.items=a,this.settings=b||{diacritics:!0}};a.prototype.tokenize=function(a){if(a=d(String(a||"").toLowerCase()),!a||!a.length)return[];var b,c,f,h,i=[],j=a.split(/ +/);for(b=0,c=j.length;c>b;b++){if(f=e(j[b]),this.settings.diacritics)for(h in g)g.hasOwnProperty(h)&&(f=f.replace(new RegExp(h,"g"),g[h]));i.push({string:j[b],regex:new RegExp(f,"i")})}return i},a.prototype.iterator=function(a,b){var c;c=f(a)?Array.prototype.forEach||function(a){for(var b=0,c=this.length;c>b;b++)a(this[b],b,this)}:function(a){for(var b in this)this.hasOwnProperty(b)&&a(this[b],b,this)},c.apply(a,[b])},a.prototype.getScoreFunction=function(a,b){var c,d,e,f;c=this,a=c.prepareSearch(a,b),e=a.tokens,d=a.options.fields,f=e.length;var g=function(a,b){var c,d;return a?(a=String(a||""),d=a.search(b.regex),-1===d?0:(c=b.string.length/a.length,0===d&&(c+=.5),c)):0},h=function(){var a=d.length;return a?1===a?function(a,b){return g(b[d[0]],a)}:function(b,c){for(var e=0,f=0;a>e;e++)f+=g(c[d[e]],b);return f/a}:function(){return 0}}();return f?1===f?function(a){return h(e[0],a)}:"and"===a.options.conjunction?function(a){for(var b,c=0,d=0;f>c;c++){if(b=h(e[c],a),0>=b)return 0;d+=b}return d/f}:function(a){for(var b=0,c=0;f>b;b++)c+=h(e[b],a);return c/f}:function(){return 0}},a.prototype.getSortFunction=function(a,c){var d,e,f,g,h,i,j,k,l,m,n;if(f=this,a=f.prepareSearch(a,c),n=!a.query&&c.sort_empty||c.sort,l=function(a,b){return"$score"===a?b.score:f.items[b.id][a]},h=[],n)for(d=0,e=n.length;e>d;d++)(a.query||"$score"!==n[d].field)&&h.push(n[d]);if(a.query){for(m=!0,d=0,e=h.length;e>d;d++)if("$score"===h[d].field){m=!1;break}m&&h.unshift({field:"$score",direction:"desc"})}else for(d=0,e=h.length;e>d;d++)if("$score"===h[d].field){h.splice(d,1);break}for(k=[],d=0,e=h.length;e>d;d++)k.push("desc"===h[d].direction?-1:1);return i=h.length,i?1===i?(g=h[0].field,j=k[0],function(a,c){return j*b(l(g,a),l(g,c))}):function(a,c){var d,e,f;for(d=0;i>d;d++)if(f=h[d].field,e=k[d]*b(l(f,a),l(f,c)))return e;return 0}:null},a.prototype.prepareSearch=function(a,b){if("object"==typeof a)return a;b=c({},b);var d=b.fields,e=b.sort,g=b.sort_empty;return d&&!f(d)&&(b.fields=[d]),e&&!f(e)&&(b.sort=[e]),g&&!f(g)&&(b.sort_empty=[g]),{options:b,query:String(a||"").toLowerCase(),tokens:this.tokenize(a),total:0,items:[]}},a.prototype.search=function(a,b){var c,d,e,f,g=this;return d=this.prepareSearch(a,b),b=d.options,a=d.query,f=b.score||g.getScoreFunction(d),a.length?g.iterator(g.items,function(a,e){c=f(a),(b.filter===!1||c>0)&&d.items.push({score:c,id:e})}):g.iterator(g.items,function(a,b){d.items.push({score:1,id:b})}),e=g.getSortFunction(d,b),e&&d.items.sort(e),d.total=d.items.length,"number"==typeof b.limit&&(d.items=d.items.slice(0,b.limit)),d};var b=function(a,b){return"number"==typeof a&&"number"==typeof b?a>b?1:b>a?-1:0:(a=h(String(a||"")),b=h(String(b||"")),a>b?1:b>a?-1:0)},c=function(a){var b,c,d,e;for(b=1,c=arguments.length;c>b;b++)if(e=arguments[b])for(d in e)e.hasOwnProperty(d)&&(a[d]=e[d]);return a},d=function(a){return(a+"").replace(/^\s+|\s+$|/g,"")},e=function(a){return(a+"").replace(/([.?*+^$[\]\\(){}|-])/g,"\\$1")},f=Array.isArray||$&&$.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)},g={a:"[aÀÁÂÃÄÅàáâãäåĀāąĄ]",c:"[cÇçćĆčČ]",d:"[dđĐďĎ]",e:"[eÈÉÊËèéêëěĚĒēęĘ]",i:"[iÌÍÎÏìíîïĪī]",l:"[lłŁ]",n:"[nÑñňŇńŃ]",o:"[oÒÓÔÕÕÖØòóôõöøŌō]",r:"[rřŘ]",s:"[sŠšśŚ]",t:"[tťŤ]",u:"[uÙÚÛÜùúûüůŮŪū]",y:"[yŸÿýÝ]",z:"[zŽžżŻźŹ]"},h=function(){var a,b,c,d,e="",f={};for(c in g)if(g.hasOwnProperty(c))for(d=g[c].substring(2,g[c].length-1),e+=d,a=0,b=d.length;b>a;a++)f[d.charAt(a)]=c;var h=new RegExp("["+e+"]","g");return function(a){return a.replace(h,function(a){return f[a]}).toLowerCase()}}();return a}),function(a,b){"function"==typeof define&&define.amd?define("microplugin",b):"object"==typeof exports?module.exports=b():a.MicroPlugin=b()}(this,function(){var a={};a.mixin=function(a){a.plugins={},a.prototype.initializePlugins=function(a){var c,d,e,f=this,g=[];if(f.plugins={names:[],settings:{},requested:{},loaded:{}},b.isArray(a))for(c=0,d=a.length;d>c;c++)"string"==typeof a[c]?g.push(a[c]):(f.plugins.settings[a[c].name]=a[c].options,g.push(a[c].name));else if(a)for(e in a)a.hasOwnProperty(e)&&(f.plugins.settings[e]=a[e],g.push(e));for(;g.length;)f.require(g.shift())},a.prototype.loadPlugin=function(b){var c=this,d=c.plugins,e=a.plugins[b];if(!a.plugins.hasOwnProperty(b))throw new Error('Unable to find "'+b+'" plugin');d.requested[b]=!0,d.loaded[b]=e.fn.apply(c,[c.plugins.settings[b]||{}]),d.names.push(b)},a.prototype.require=function(a){var b=this,c=b.plugins;if(!b.plugins.loaded.hasOwnProperty(a)){if(c.requested[a])throw new Error('Plugin has circular dependency ("'+a+'")');b.loadPlugin(a)}return c.loaded[a]},a.define=function(b,c){a.plugins[b]={name:b,fn:c}}};var b={isArray:Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}};return a}),function(a,b){"function"==typeof define&&define.amd?define("selectize",["jquery","sifter","microplugin"],b):"object"==typeof exports?module.exports=b(require("jquery"),require("sifter"),require("microplugin")):a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}(this,function(a,b,c){"use strict";var d=function(a,b){if("string"!=typeof b||b.length){var c="string"==typeof b?new RegExp(b,"i"):b,d=function(a){var b=0;if(3===a.nodeType){var e=a.data.search(c);if(e>=0&&a.data.length>0){var f=a.data.match(c),g=document.createElement("span");g.className="highlight";var h=a.splitText(e),i=(h.splitText(f[0].length),h.cloneNode(!0));g.appendChild(i),h.parentNode.replaceChild(g,h),b=1}}else if(1===a.nodeType&&a.childNodes&&!/(script|style)/i.test(a.tagName))for(var j=0;j<a.childNodes.length;++j)j+=d(a.childNodes[j]);return b};return a.each(function(){d(this)})}},e=function(){};e.prototype={on:function(a,b){this._events=this._events||{},this._events[a]=this._events[a]||[],this._events[a].push(b)},off:function(a,b){var c=arguments.length;return 0===c?delete this._events:1===c?delete this._events[a]:(this._events=this._events||{},void(a in this._events!=!1&&this._events[a].splice(this._events[a].indexOf(b),1)))},trigger:function(a){if(this._events=this._events||{},a in this._events!=!1)for(var b=0;b<this._events[a].length;b++)this._events[a][b].apply(this,Array.prototype.slice.call(arguments,1))}},e.mixin=function(a){for(var b=["on","off","trigger"],c=0;c<b.length;c++)a.prototype[b[c]]=e.prototype[b[c]]};var f=/Mac/.test(navigator.userAgent),g=65,h=13,i=27,j=37,k=38,l=80,m=39,n=40,o=78,p=8,q=46,r=16,s=f?91:17,t=f?18:17,u=9,v=1,w=2,x=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("form").validity,y=function(a){return"undefined"!=typeof a},z=function(a){return"undefined"==typeof a||null===a?null:"boolean"==typeof a?a?"1":"0":a+""},A=function(a){return(a+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")},B=function(a){return(a+"").replace(/\$/g,"$$$$")},C={};C.before=function(a,b,c){var d=a[b];a[b]=function(){return c.apply(a,arguments),d.apply(a,arguments)}},C.after=function(a,b,c){var d=a[b];a[b]=function(){var b=d.apply(a,arguments);return c.apply(a,arguments),b}};var D=function(a){var b=!1;return function(){b||(b=!0,a.apply(this,arguments))}},E=function(a,b){var c;return function(){var d=this,e=arguments;window.clearTimeout(c),c=window.setTimeout(function(){a.apply(d,e)},b)}},F=function(a,b,c){var d,e=a.trigger,f={};a.trigger=function(){var c=arguments[0];return-1===b.indexOf(c)?e.apply(a,arguments):void(f[c]=arguments)},c.apply(a,[]),a.trigger=e;for(d in f)f.hasOwnProperty(d)&&e.apply(a,f[d])},G=function(a,b,c,d){a.on(b,c,function(b){for(var c=b.target;c&&c.parentNode!==a[0];)c=c.parentNode;return b.currentTarget=c,d.apply(this,[b])})},H=function(a){var b={};if("selectionStart"in a)b.start=a.selectionStart,b.length=a.selectionEnd-b.start;else if(document.selection){a.focus();var c=document.selection.createRange(),d=document.selection.createRange().text.length;c.moveStart("character",-a.value.length),b.start=c.text.length-d,b.length=d}return b},I=function(a,b,c){var d,e,f={};if(c)for(d=0,e=c.length;e>d;d++)f[c[d]]=a.css(c[d]);else f=a.css();b.css(f)},J=function(b,c){if(!b)return 0;var d=a("<test>").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(b).appendTo("body");I(c,d,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]);var e=d.width();return d.remove(),e},K=function(a){var b=null,c=function(c,d){var e,f,g,h,i,j,k,l;c=c||window.event||{},d=d||{},c.metaKey||c.altKey||(d.force||a.data("grow")!==!1)&&(e=a.val(),c.type&&"keydown"===c.type.toLowerCase()&&(f=c.keyCode,g=f>=97&&122>=f||f>=65&&90>=f||f>=48&&57>=f||32===f,f===q||f===p?(l=H(a[0]),l.length?e=e.substring(0,l.start)+e.substring(l.start+l.length):f===p&&l.start?e=e.substring(0,l.start-1)+e.substring(l.start+1):f===q&&"undefined"!=typeof l.start&&(e=e.substring(0,l.start)+e.substring(l.start+1))):g&&(j=c.shiftKey,k=String.fromCharCode(c.keyCode),k=j?k.toUpperCase():k.toLowerCase(),e+=k)),h=a.attr("placeholder"),!e&&h&&(e=h),i=J(e,a)+4,i!==b&&(b=i,a.width(i),a.triggerHandler("resize")))};a.on("keydown keyup update blur",c),c()},L=function(c,d){var e,f,g,h,i=this;h=c[0],h.selectize=i;var j=window.getComputedStyle&&window.getComputedStyle(h,null);if(g=j?j.getPropertyValue("direction"):h.currentStyle&&h.currentStyle.direction,g=g||c.parents("[dir]:first").attr("dir")||"",a.extend(i,{order:0,settings:d,$input:c,tabIndex:c.attr("tabindex")||"",tagType:"select"===h.tagName.toLowerCase()?v:w,rtl:/rtl/i.test(g),eventNS:".selectize"+ ++L.count,highlightedValue:null,isOpen:!1,isDisabled:!1,isRequired:c.is("[required]"),isInvalid:!1,isLocked:!1,isFocused:!1,isInputHidden:!1,isSetup:!1,isShiftDown:!1,isCmdDown:!1,isCtrlDown:!1,ignoreFocus:!1,ignoreBlur:!1,ignoreHover:!1,hasOptions:!1,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:null===d.loadThrottle?i.onSearchChange:E(i.onSearchChange,d.loadThrottle)}),i.sifter=new b(this.options,{diacritics:d.diacritics}),i.settings.options){for(e=0,f=i.settings.options.length;f>e;e++)i.registerOption(i.settings.options[e]);delete i.settings.options}if(i.settings.optgroups){for(e=0,f=i.settings.optgroups.length;f>e;e++)i.registerOptionGroup(i.settings.optgroups[e]);delete i.settings.optgroups}i.settings.mode=i.settings.mode||(1===i.settings.maxItems?"single":"multi"),"boolean"!=typeof i.settings.hideSelected&&(i.settings.hideSelected="multi"===i.settings.mode),i.initializePlugins(i.settings.plugins),i.setupCallbacks(),i.setupTemplates(),i.setup()};return e.mixin(L),c.mixin(L),a.extend(L.prototype,{setup:function(){var b,c,d,e,g,h,i,j,k,l=this,m=l.settings,n=l.eventNS,o=a(window),p=a(document),q=l.$input;if(i=l.settings.mode,j=q.attr("class")||"",b=a("<div>").addClass(m.wrapperClass).addClass(j).addClass(i),c=a("<div>").addClass(m.inputClass).addClass("items").appendTo(b),d=a('<input type="text" autocomplete="off" />').appendTo(c).attr("tabindex",q.is(":disabled")?"-1":l.tabIndex),h=a(m.dropdownParent||b),e=a("<div>").addClass(m.dropdownClass).addClass(i).hide().appendTo(h),g=a("<div>").addClass(m.dropdownContentClass).appendTo(e),l.settings.copyClassesToDropdown&&e.addClass(j),b.css({width:q[0].style.width}),l.plugins.names.length&&(k="plugin-"+l.plugins.names.join(" plugin-"),b.addClass(k),e.addClass(k)),(null===m.maxItems||m.maxItems>1)&&l.tagType===v&&q.attr("multiple","multiple"),l.settings.placeholder&&d.attr("placeholder",m.placeholder),!l.settings.splitOn&&l.settings.delimiter){var u=l.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");l.settings.splitOn=new RegExp("\\s*"+u+"+\\s*")}q.attr("autocorrect")&&d.attr("autocorrect",q.attr("autocorrect")),q.attr("autocapitalize")&&d.attr("autocapitalize",q.attr("autocapitalize")),l.$wrapper=b,l.$control=c,l.$control_input=d,l.$dropdown=e,l.$dropdown_content=g,e.on("mouseenter","[data-selectable]",function(){return l.onOptionHover.apply(l,arguments)}),e.on("mousedown click","[data-selectable]",function(){return l.onOptionSelect.apply(l,arguments)}),G(c,"mousedown","*:not(input)",function(){return l.onItemSelect.apply(l,arguments)}),K(d),c.on({mousedown:function(){return l.onMouseDown.apply(l,arguments)},click:function(){return l.onClick.apply(l,arguments)}}),d.on({mousedown:function(a){a.stopPropagation()},keydown:function(){return l.onKeyDown.apply(l,arguments)},keyup:function(){return l.onKeyUp.apply(l,arguments)},keypress:function(){return l.onKeyPress.apply(l,arguments)},resize:function(){l.positionDropdown.apply(l,[])},blur:function(){return l.onBlur.apply(l,arguments)},focus:function(){return l.ignoreBlur=!1,l.onFocus.apply(l,arguments)},paste:function(){return l.onPaste.apply(l,arguments)}}),p.on("keydown"+n,function(a){l.isCmdDown=a[f?"metaKey":"ctrlKey"],l.isCtrlDown=a[f?"altKey":"ctrlKey"],l.isShiftDown=a.shiftKey}),p.on("keyup"+n,function(a){a.keyCode===t&&(l.isCtrlDown=!1),a.keyCode===r&&(l.isShiftDown=!1),a.keyCode===s&&(l.isCmdDown=!1)}),p.on("mousedown"+n,function(a){if(l.isFocused){if(a.target===l.$dropdown[0]||a.target.parentNode===l.$dropdown[0])return!1;l.$control.has(a.target).length||a.target===l.$control[0]||l.blur(a.target)}}),o.on(["scroll"+n,"resize"+n].join(" "),function(){l.isOpen&&l.positionDropdown.apply(l,arguments)}),o.on("mousemove"+n,function(){l.ignoreHover=!1}),this.revertSettings={$children:q.children().detach(),tabindex:q.attr("tabindex")},q.attr("tabindex",-1).hide().after(l.$wrapper),a.isArray(m.items)&&(l.setValue(m.items),delete m.items),x&&q.on("invalid"+n,function(a){a.preventDefault(),l.isInvalid=!0,l.refreshState()}),l.updateOriginalInput(),l.refreshItems(),l.refreshState(),l.updatePlaceholder(),l.isSetup=!0,q.is(":disabled")&&l.disable(),l.on("change",this.onChange),q.data("selectize",l),q.addClass("selectized"),l.trigger("initialize"),m.preload===!0&&l.onSearchChange("")},setupTemplates:function(){var b=this,c=b.settings.labelField,d=b.settings.optgroupLabelField,e={optgroup:function(a){return'<div class="optgroup">'+a.html+"</div>"},optgroup_header:function(a,b){return'<div class="optgroup-header">'+b(a[d])+"</div>"},option:function(a,b){return'<div class="option">'+b(a[c])+"</div>"},item:function(a,b){return'<div class="item">'+b(a[c])+"</div>"},option_create:function(a,b){return'<div class="create">Add <strong>'+b(a.input)+"</strong>&hellip;</div>"}};b.settings.render=a.extend({},e,b.settings.render)},setupCallbacks:function(){var a,b,c={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(a in c)c.hasOwnProperty(a)&&(b=this.settings[c[a]],b&&this.on(a,b))},onClick:function(a){var b=this;b.isFocused||(b.focus(),a.preventDefault())},onMouseDown:function(b){{var c=this,d=b.isDefaultPrevented();a(b.target)}if(c.isFocused){if(b.target!==c.$control_input[0])return"single"===c.settings.mode?c.isOpen?c.close():c.open():d||c.setActiveItem(null),!1}else d||window.setTimeout(function(){c.focus()},0)},onChange:function(){this.$input.trigger("change")},onPaste:function(b){var c=this;c.isFull()||c.isInputHidden||c.isLocked?b.preventDefault():c.settings.splitOn&&setTimeout(function(){for(var b=a.trim(c.$control_input.val()||"").split(c.settings.splitOn),d=0,e=b.length;e>d;d++)c.createItem(b[d])},0)},onKeyPress:function(a){if(this.isLocked)return a&&a.preventDefault();var b=String.fromCharCode(a.keyCode||a.which);return this.settings.create&&"multi"===this.settings.mode&&b===this.settings.delimiter?(this.createItem(),a.preventDefault(),!1):void 0},onKeyDown:function(a){var b=(a.target===this.$control_input[0],this);if(b.isLocked)return void(a.keyCode!==u&&a.preventDefault());switch(a.keyCode){case g:if(b.isCmdDown)return void b.selectAll();break;case i:return void(b.isOpen&&(a.preventDefault(),a.stopPropagation(),b.close()));case o:if(!a.ctrlKey||a.altKey)break;case n:if(!b.isOpen&&b.hasOptions)b.open();else if(b.$activeOption){b.ignoreHover=!0;var c=b.getAdjacentOption(b.$activeOption,1);c.length&&b.setActiveOption(c,!0,!0)}return void a.preventDefault();case l:if(!a.ctrlKey||a.altKey)break;case k:if(b.$activeOption){b.ignoreHover=!0;var d=b.getAdjacentOption(b.$activeOption,-1);d.length&&b.setActiveOption(d,!0,!0)}return void a.preventDefault();case h:return void(b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),a.preventDefault()));case j:return void b.advanceSelection(-1,a);case m:return void b.advanceSelection(1,a);case u:return b.settings.selectOnTab&&b.isOpen&&b.$activeOption&&(b.onOptionSelect({currentTarget:b.$activeOption}),b.isFull()||a.preventDefault()),void(b.settings.create&&b.createItem()&&a.preventDefault());case p:case q:return void b.deleteSelection(a)}return!b.isFull()&&!b.isInputHidden||(f?a.metaKey:a.ctrlKey)?void 0:void a.preventDefault()},onKeyUp:function(a){var b=this;if(b.isLocked)return a&&a.preventDefault();var c=b.$control_input.val()||"";b.lastValue!==c&&(b.lastValue=c,b.onSearchChange(c),b.refreshOptions(),b.trigger("type",c))},onSearchChange:function(a){var b=this,c=b.settings.load;c&&(b.loadedSearches.hasOwnProperty(a)||(b.loadedSearches[a]=!0,b.load(function(d){c.apply(b,[a,d])})))},onFocus:function(a){var b=this,c=b.isFocused;return b.isDisabled?(b.blur(),a&&a.preventDefault(),!1):void(b.ignoreFocus||(b.isFocused=!0,"focus"===b.settings.preload&&b.onSearchChange(""),c||b.trigger("focus"),b.$activeItems.length||(b.showInput(),b.setActiveItem(null),b.refreshOptions(!!b.settings.openOnFocus)),b.refreshState()))},onBlur:function(a,b){var c=this;if(c.isFocused&&(c.isFocused=!1,!c.ignoreFocus)){if(!c.ignoreBlur&&document.activeElement===c.$dropdown_content[0])return c.ignoreBlur=!0,void c.onFocus(a);var d=function(){c.close(),c.setTextboxValue(""),c.setActiveItem(null),c.setActiveOption(null),c.setCaret(c.items.length),c.refreshState(),(b||document.body).focus(),c.ignoreFocus=!1,c.trigger("blur")};c.ignoreFocus=!0,c.settings.create&&c.settings.createOnBlur?c.createItem(null,!1,d):d()}},onOptionHover:function(a){this.ignoreHover||this.setActiveOption(a.currentTarget,!1)},onOptionSelect:function(b){var c,d,e=this;b.preventDefault&&(b.preventDefault(),b.stopPropagation()),d=a(b.currentTarget),d.hasClass("create")?e.createItem(null,function(){e.settings.closeAfterSelect&&e.close()}):(c=d.attr("data-value"),"undefined"!=typeof c&&(e.lastQuery=null,e.setTextboxValue(""),e.addItem(c),e.settings.closeAfterSelect?e.close():!e.settings.hideSelected&&b.type&&/mouse/.test(b.type)&&e.setActiveOption(e.getOption(c))))},onItemSelect:function(a){var b=this;b.isLocked||"multi"===b.settings.mode&&(a.preventDefault(),b.setActiveItem(a.currentTarget,a))},load:function(a){var b=this,c=b.$wrapper.addClass(b.settings.loadingClass);b.loading++,a.apply(b,[function(a){b.loading=Math.max(b.loading-1,0),a&&a.length&&(b.addOption(a),b.refreshOptions(b.isFocused&&!b.isInputHidden)),b.loading||c.removeClass(b.settings.loadingClass),b.trigger("load",a)}])},setTextboxValue:function(a){var b=this.$control_input,c=b.val()!==a;c&&(b.val(a).triggerHandler("update"),this.lastValue=a)},getValue:function(){return this.tagType===v&&this.$input.attr("multiple")?this.items:this.items.join(this.settings.delimiter)},setValue:function(a,b){var c=b?[]:["change"];F(this,c,function(){this.clear(b),this.addItems(a,b)})},setActiveItem:function(b,c){var d,e,f,g,h,i,j,k,l=this;if("single"!==l.settings.mode){if(b=a(b),!b.length)return a(l.$activeItems).removeClass("active"),l.$activeItems=[],void(l.isFocused&&l.showInput());if(d=c&&c.type.toLowerCase(),"mousedown"===d&&l.isShiftDown&&l.$activeItems.length){for(k=l.$control.children(".active:last"),g=Array.prototype.indexOf.apply(l.$control[0].childNodes,[k[0]]),h=Array.prototype.indexOf.apply(l.$control[0].childNodes,[b[0]]),g>h&&(j=g,g=h,h=j),e=g;h>=e;e++)i=l.$control[0].childNodes[e],-1===l.$activeItems.indexOf(i)&&(a(i).addClass("active"),l.$activeItems.push(i));c.preventDefault()}else"mousedown"===d&&l.isCtrlDown||"keydown"===d&&this.isShiftDown?b.hasClass("active")?(f=l.$activeItems.indexOf(b[0]),l.$activeItems.splice(f,1),b.removeClass("active")):l.$activeItems.push(b.addClass("active")[0]):(a(l.$activeItems).removeClass("active"),l.$activeItems=[b.addClass("active")[0]]);l.hideInput(),this.isFocused||l.focus()}},setActiveOption:function(b,c,d){var e,f,g,h,i,j=this;j.$activeOption&&j.$activeOption.removeClass("active"),j.$activeOption=null,b=a(b),b.length&&(j.$activeOption=b.addClass("active"),(c||!y(c))&&(e=j.$dropdown_content.height(),f=j.$activeOption.outerHeight(!0),c=j.$dropdown_content.scrollTop()||0,g=j.$activeOption.offset().top-j.$dropdown_content.offset().top+c,h=g,i=g-e+f,g+f>e+c?j.$dropdown_content.stop().animate({scrollTop:i},d?j.settings.scrollDuration:0):c>g&&j.$dropdown_content.stop().animate({scrollTop:h},d?j.settings.scrollDuration:0)))},selectAll:function(){var a=this;"single"!==a.settings.mode&&(a.$activeItems=Array.prototype.slice.apply(a.$control.children(":not(input)").addClass("active")),a.$activeItems.length&&(a.hideInput(),a.close()),a.focus())},hideInput:function(){var a=this;a.setTextboxValue(""),a.$control_input.css({opacity:0,position:"absolute",left:a.rtl?1e4:-1e4}),a.isInputHidden=!0},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0}),this.isInputHidden=!1},focus:function(){var a=this;a.isDisabled||(a.ignoreFocus=!0,a.$control_input[0].focus(),window.setTimeout(function(){a.ignoreFocus=!1,a.onFocus()},0))},blur:function(a){this.$control_input[0].blur(),this.onBlur(null,a)},getScoreFunction:function(a){return this.sifter.getScoreFunction(a,this.getSearchOptions())},getSearchOptions:function(){var a=this.settings,b=a.sortField;return"string"==typeof b&&(b=[{field:b}]),{fields:a.searchField,conjunction:a.searchConjunction,sort:b}},search:function(b){var c,d,e,f=this,g=f.settings,h=this.getSearchOptions();if(g.score&&(e=f.settings.score.apply(this,[b]),"function"!=typeof e))throw new Error('Selectize "score" setting must be a function that returns a function');if(b!==f.lastQuery?(f.lastQuery=b,d=f.sifter.search(b,a.extend(h,{score:e})),f.currentResults=d):d=a.extend(!0,{},f.currentResults),g.hideSelected)for(c=d.items.length-1;c>=0;c--)-1!==f.items.indexOf(z(d.items[c].id))&&d.items.splice(c,1);return d},refreshOptions:function(b){var c,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;"undefined"==typeof b&&(b=!0);var t=this,u=a.trim(t.$control_input.val()),v=t.search(u),w=t.$dropdown_content,x=t.$activeOption&&z(t.$activeOption.attr("data-value"));for(g=v.items.length,"number"==typeof t.settings.maxOptions&&(g=Math.min(g,t.settings.maxOptions)),h={},i=[],c=0;g>c;c++)for(j=t.options[v.items[c].id],k=t.render("option",j),l=j[t.settings.optgroupField]||"",m=a.isArray(l)?l:[l],e=0,f=m&&m.length;f>e;e++)l=m[e],t.optgroups.hasOwnProperty(l)||(l=""),h.hasOwnProperty(l)||(h[l]=[],i.push(l)),h[l].push(k);for(this.settings.lockOptgroupOrder&&i.sort(function(a,b){var c=t.optgroups[a].$order||0,d=t.optgroups[b].$order||0;return c-d}),n=[],c=0,g=i.length;g>c;c++)l=i[c],t.optgroups.hasOwnProperty(l)&&h[l].length?(o=t.render("optgroup_header",t.optgroups[l])||"",o+=h[l].join(""),n.push(t.render("optgroup",a.extend({},t.optgroups[l],{html:o})))):n.push(h[l].join(""));if(w.html(n.join("")),t.settings.highlight&&v.query.length&&v.tokens.length)for(c=0,g=v.tokens.length;g>c;c++)d(w,v.tokens[c].regex);if(!t.settings.hideSelected)for(c=0,g=t.items.length;g>c;c++)t.getOption(t.items[c]).addClass("selected");p=t.canCreate(u),p&&(w.prepend(t.render("option_create",{input:u})),s=a(w[0].childNodes[0])),t.hasOptions=v.items.length>0||p,t.hasOptions?(v.items.length>0?(r=x&&t.getOption(x),r&&r.length?q=r:"single"===t.settings.mode&&t.items.length&&(q=t.getOption(t.items[0])),q&&q.length||(q=s&&!t.settings.addPrecedence?t.getAdjacentOption(s,1):w.find("[data-selectable]:first"))):q=s,t.setActiveOption(q),b&&!t.isOpen&&t.open()):(t.setActiveOption(null),b&&t.isOpen&&t.close())},addOption:function(b){var c,d,e,f=this;if(a.isArray(b))for(c=0,d=b.length;d>c;c++)f.addOption(b[c]);else(e=f.registerOption(b))&&(f.userOptions[e]=!0,f.lastQuery=null,f.trigger("option_add",e,b))},registerOption:function(a){var b=z(a[this.settings.valueField]);return!b||this.options.hasOwnProperty(b)?!1:(a.$order=a.$order||++this.order,this.options[b]=a,b)},registerOptionGroup:function(a){var b=z(a[this.settings.optgroupValueField]);return b?(a.$order=a.$order||++this.order,this.optgroups[b]=a,b):!1},addOptionGroup:function(a,b){b[this.settings.optgroupValueField]=a,(a=this.registerOptionGroup(b))&&this.trigger("optgroup_add",a,b)},removeOptionGroup:function(a){this.optgroups.hasOwnProperty(a)&&(delete this.optgroups[a],this.renderCache={},this.trigger("optgroup_remove",a))},clearOptionGroups:function(){this.optgroups={},this.renderCache={},this.trigger("optgroup_clear")},updateOption:function(b,c){var d,e,f,g,h,i,j,k=this;if(b=z(b),f=z(c[k.settings.valueField]),null!==b&&k.options.hasOwnProperty(b)){if("string"!=typeof f)throw new Error("Value must be set in option data");j=k.options[b].$order,f!==b&&(delete k.options[b],g=k.items.indexOf(b),-1!==g&&k.items.splice(g,1,f)),c.$order=c.$order||j,k.options[f]=c,h=k.renderCache.item,i=k.renderCache.option,h&&(delete h[b],delete h[f]),i&&(delete i[b],delete i[f]),-1!==k.items.indexOf(f)&&(d=k.getItem(b),e=a(k.render("item",c)),d.hasClass("active")&&e.addClass("active"),d.replaceWith(e)),k.lastQuery=null,k.isOpen&&k.refreshOptions(!1)}},removeOption:function(a,b){var c=this;a=z(a);var d=c.renderCache.item,e=c.renderCache.option;d&&delete d[a],e&&delete e[a],delete c.userOptions[a],delete c.options[a],c.lastQuery=null,c.trigger("option_remove",a),c.removeItem(a,b)},clearOptions:function(){var a=this;a.loadedSearches={},a.userOptions={},a.renderCache={},a.options=a.sifter.items={},a.lastQuery=null,a.trigger("option_clear"),a.clear()},getOption:function(a){return this.getElementWithValue(a,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(b,c){var d=this.$dropdown.find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},getElementWithValue:function(b,c){if(b=z(b),"undefined"!=typeof b&&null!==b)for(var d=0,e=c.length;e>d;d++)if(c[d].getAttribute("data-value")===b)return a(c[d]);return a()},getItem:function(a){return this.getElementWithValue(a,this.$control.children())},addItems:function(b,c){for(var d=a.isArray(b)?b:[b],e=0,f=d.length;f>e;e++)this.isPending=f-1>e,this.addItem(d[e],c)},addItem:function(b,c){var d=c?[]:["change"];F(this,d,function(){var d,e,f,g,h,i=this,j=i.settings.mode;return b=z(b),-1!==i.items.indexOf(b)?void("single"===j&&i.close()):void(i.options.hasOwnProperty(b)&&("single"===j&&i.clear(c),"multi"===j&&i.isFull()||(d=a(i.render("item",i.options[b])),h=i.isFull(),i.items.splice(i.caretPos,0,b),i.insertAtCaret(d),(!i.isPending||!h&&i.isFull())&&i.refreshState(),i.isSetup&&(f=i.$dropdown_content.find("[data-selectable]"),i.isPending||(e=i.getOption(b),g=i.getAdjacentOption(e,1).attr("data-value"),i.refreshOptions(i.isFocused&&"single"!==j),g&&i.setActiveOption(i.getOption(g))),!f.length||i.isFull()?i.close():i.positionDropdown(),i.updatePlaceholder(),i.trigger("item_add",b,d),i.updateOriginalInput({silent:c})))))})},removeItem:function(a,b){var c,d,e,f=this;c="object"==typeof a?a:f.getItem(a),a=z(c.attr("data-value")),d=f.items.indexOf(a),-1!==d&&(c.remove(),c.hasClass("active")&&(e=f.$activeItems.indexOf(c[0]),f.$activeItems.splice(e,1)),f.items.splice(d,1),f.lastQuery=null,!f.settings.persist&&f.userOptions.hasOwnProperty(a)&&f.removeOption(a,b),d<f.caretPos&&f.setCaret(f.caretPos-1),f.refreshState(),f.updatePlaceholder(),f.updateOriginalInput({silent:b}),f.positionDropdown(),f.trigger("item_remove",a,c))},createItem:function(b,c){var d=this,e=d.caretPos;b=b||a.trim(d.$control_input.val()||"");var f=arguments[arguments.length-1];if("function"!=typeof f&&(f=function(){}),"boolean"!=typeof c&&(c=!0),!d.canCreate(b))return f(),!1;d.lock();var g="function"==typeof d.settings.create?this.settings.create:function(a){var b={};return b[d.settings.labelField]=a,b[d.settings.valueField]=a,b},h=D(function(a){if(d.unlock(),!a||"object"!=typeof a)return f();var b=z(a[d.settings.valueField]);return"string"!=typeof b?f():(d.setTextboxValue(""),d.addOption(a),d.setCaret(e),d.addItem(b),d.refreshOptions(c&&"single"!==d.settings.mode),void f(a))}),i=g.apply(this,[b,h]);return"undefined"!=typeof i&&h(i),!0},refreshItems:function(){this.lastQuery=null,this.isSetup&&this.addItem(this.items),this.refreshState(),this.updateOriginalInput()},refreshState:function(){var a,b=this;b.isRequired&&(b.items.length&&(b.isInvalid=!1),b.$control_input.prop("required",a)),b.refreshClasses()},refreshClasses:function(){var b=this,c=b.isFull(),d=b.isLocked;b.$wrapper.toggleClass("rtl",b.rtl),b.$control.toggleClass("focus",b.isFocused).toggleClass("disabled",b.isDisabled).toggleClass("required",b.isRequired).toggleClass("invalid",b.isInvalid).toggleClass("locked",d).toggleClass("full",c).toggleClass("not-full",!c).toggleClass("input-active",b.isFocused&&!b.isInputHidden).toggleClass("dropdown-active",b.isOpen).toggleClass("has-options",!a.isEmptyObject(b.options)).toggleClass("has-items",b.items.length>0),b.$control_input.data("grow",!c&&!d)},isFull:function(){return null!==this.settings.maxItems&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(a){var b,c,d,e,f=this;if(a=a||{},f.tagType===v){for(d=[],b=0,c=f.items.length;c>b;b++)e=f.options[f.items[b]][f.settings.labelField]||"",d.push('<option value="'+A(f.items[b])+'" selected="selected">'+A(e)+"</option>");d.length||this.$input.attr("multiple")||d.push('<option value="" selected="selected"></option>'),f.$input.html(d.join(""))}else f.$input.val(f.getValue()),f.$input.attr("value",f.$input.val());f.isSetup&&(a.silent||f.trigger("change",f.$input.val()))},updatePlaceholder:function(){if(this.settings.placeholder){var a=this.$control_input;this.items.length?a.removeAttr("placeholder"):a.attr("placeholder",this.settings.placeholder),a.triggerHandler("update",{force:!0})}},open:function(){var a=this;a.isLocked||a.isOpen||"multi"===a.settings.mode&&a.isFull()||(a.focus(),a.isOpen=!0,a.refreshState(),a.$dropdown.css({visibility:"hidden",display:"block"}),a.positionDropdown(),a.$dropdown.css({visibility:"visible"}),a.trigger("dropdown_open",a.$dropdown))},close:function(){var a=this,b=a.isOpen;"single"===a.settings.mode&&a.items.length&&a.hideInput(),a.isOpen=!1,a.$dropdown.hide(),a.setActiveOption(null),a.refreshState(),b&&a.trigger("dropdown_close",a.$dropdown)},positionDropdown:function(){var a=this.$control,b="body"===this.settings.dropdownParent?a.offset():a.position();b.top+=a.outerHeight(!0),this.$dropdown.css({width:a.outerWidth(),top:b.top,left:b.left})},clear:function(a){var b=this;b.items.length&&(b.$control.children(":not(input)").remove(),b.items=[],b.lastQuery=null,b.setCaret(0),b.setActiveItem(null),b.updatePlaceholder(),b.updateOriginalInput({silent:a}),b.refreshState(),b.showInput(),b.trigger("clear"))},insertAtCaret:function(b){var c=Math.min(this.caretPos,this.items.length);0===c?this.$control.prepend(b):a(this.$control[0].childNodes[c]).before(b),this.setCaret(c+1)},deleteSelection:function(b){var c,d,e,f,g,h,i,j,k,l=this;if(e=b&&b.keyCode===p?-1:1,f=H(l.$control_input[0]),l.$activeOption&&!l.settings.hideSelected&&(i=l.getAdjacentOption(l.$activeOption,-1).attr("data-value")),g=[],l.$activeItems.length){for(k=l.$control.children(".active:"+(e>0?"last":"first")),h=l.$control.children(":not(input)").index(k),e>0&&h++,c=0,d=l.$activeItems.length;d>c;c++)g.push(a(l.$activeItems[c]).attr("data-value"));
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.shiny.js-3-b&&(b.preventDefault(),b.stopPropagation())}else(l.isFocused||"single"===l.settings.mode)&&l.items.length&&(0>e&&0===f.start&&0===f.length?g.push(l.items[l.caretPos-1]):e>0&&f.start===l.$control_input.val().length&&g.push(l.items[l.caretPos]));if(!g.length||"function"==typeof l.settings.onDelete&&l.settings.onDelete.apply(l,[g])===!1)return!1;for("undefined"!=typeof h&&l.setCaret(h);g.length;)l.removeItem(g.pop());return l.showInput(),l.positionDropdown(),l.refreshOptions(!0),i&&(j=l.getOption(i),j.length&&l.setActiveOption(j)),!0},advanceSelection:function(a,b){var c,d,e,f,g,h,i=this;0!==a&&(i.rtl&&(a*=-1),c=a>0?"last":"first",d=H(i.$control_input[0]),i.isFocused&&!i.isInputHidden?(f=i.$control_input.val().length,g=0>a?0===d.start&&0===d.length:d.start===f,g&&!f&&i.advanceCaret(a,b)):(h=i.$control.children(".active:"+c),h.length&&(e=i.$control.children(":not(input)").index(h),i.setActiveItem(null),i.setCaret(a>0?e+1:e))))},advanceCaret:function(a,b){var c,d,e=this;0!==a&&(c=a>0?"next":"prev",e.isShiftDown?(d=e.$control_input[c](),d.length&&(e.hideInput(),e.setActiveItem(d),b&&b.preventDefault())):e.setCaret(e.caretPos+a))},setCaret:function(b){var c=this;if(b="single"===c.settings.mode?c.items.length:Math.max(0,Math.min(c.items.length,b)),!c.isPending){var d,e,f,g;for(f=c.$control.children(":not(input)"),d=0,e=f.length;e>d;d++)g=a(f[d]).detach(),b>d?c.$control_input.before(g):c.$control.append(g)}c.caretPos=b},lock:function(){this.close(),this.isLocked=!0,this.refreshState()},unlock:function(){this.isLocked=!1,this.refreshState()},disable:function(){var a=this;a.$input.prop("disabled",!0),a.$control_input.prop("disabled",!0).prop("tabindex",-1),a.isDisabled=!0,a.lock()},enable:function(){var a=this;a.$input.prop("disabled",!1),a.$control_input.prop("disabled",!1).prop("tabindex",a.tabIndex),a.isDisabled=!1,a.unlock()},destroy:function(){var b=this,c=b.eventNS,d=b.revertSettings;b.trigger("destroy"),b.off(),b.$wrapper.remove(),b.$dropdown.remove(),b.$input.html("").append(d.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:d.tabindex}).show(),b.$control_input.removeData("grow"),b.$input.removeData("selectize"),a(window).off(c),a(document).off(c),a(document.body).off(c),delete b.$input[0].selectize},render:function(a,b){var c,d,e="",f=!1,g=this,h=/^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i;return("option"===a||"item"===a)&&(c=z(b[g.settings.valueField]),f=!!c),f&&(y(g.renderCache[a])||(g.renderCache[a]={}),g.renderCache[a].hasOwnProperty(c))?g.renderCache[a][c]:(e=g.settings.render[a].apply(this,[b,A]),("option"===a||"option_create"===a)&&(e=e.replace(h,"<$1 data-selectable")),"optgroup"===a&&(d=b[g.settings.optgroupValueField]||"",e=e.replace(h,'<$1 data-group="'+B(A(d))+'"')),("option"===a||"item"===a)&&(e=e.replace(h,'<$1 data-value="'+B(A(c||""))+'"')),f&&(g.renderCache[a][c]=e),e)},clearCache:function(a){var b=this;"undefined"==typeof a?b.renderCache={}:delete b.renderCache[a]},canCreate:function(a){var b=this;if(!b.settings.create)return!1;var c=b.settings.createFilter;return!(!a.length||"function"==typeof c&&!c.apply(b,[a])||"string"==typeof c&&!new RegExp(c).test(a)||c instanceof RegExp&&!c.test(a))}}),L.count=0,L.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:!0,diacritics:!0,create:!1,createOnBlur:!1,createFilter:null,highlight:!0,openOnFocus:!0,maxOptions:1e3,maxItems:null,hideSelected:null,addPrecedence:!1,selectOnTab:!1,preload:!1,allowEmptyOption:!1,closeAfterSelect:!1,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:!1,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:!0,render:{}},a.fn.selectize=function(b){var c=a.fn.selectize.defaults,d=a.extend({},c,b),e=d.dataAttr,f=d.labelField,g=d.valueField,h=d.optgroupField,i=d.optgroupLabelField,j=d.optgroupValueField,k=function(b,c){var h,i,j,k,l=b.attr(e);if(l)for(c.options=JSON.parse(l),h=0,i=c.options.length;i>h;h++)c.items.push(c.options[h][g]);else{var m=a.trim(b.val()||"");if(!d.allowEmptyOption&&!m.length)return;for(j=m.split(d.delimiter),h=0,i=j.length;i>h;h++)k={},k[f]=j[h],k[g]=j[h],c.options.push(k);c.items=j}},l=function(b,c){var k,l,m,n,o=c.options,p={},q=function(a){var b=e&&a.attr(e);return"string"==typeof b&&b.length?JSON.parse(b):null},r=function(b,e){b=a(b);var i=z(b.attr("value"));if(i||d.allowEmptyOption)if(p.hasOwnProperty(i)){if(e){var j=p[i][h];j?a.isArray(j)?j.push(e):p[i][h]=[j,e]:p[i][h]=e}}else{var k=q(b)||{};k[f]=k[f]||b.text(),k[g]=k[g]||i,k[h]=k[h]||e,p[i]=k,o.push(k),b.is(":selected")&&c.items.push(i)}},s=function(b){var d,e,f,g,h;for(b=a(b),f=b.attr("label"),f&&(g=q(b)||{},g[i]=f,g[j]=f,c.optgroups.push(g)),h=a("option",b),d=0,e=h.length;e>d;d++)r(h[d],f)};for(c.maxItems=b.attr("multiple")?null:1,n=b.children(),k=0,l=n.length;l>k;k++)m=n[k].tagName.toLowerCase(),"optgroup"===m?s(n[k]):"option"===m&&r(n[k])};return this.each(function(){if(!this.selectize){var e,f=a(this),g=this.tagName.toLowerCase(),h=f.attr("placeholder")||f.attr("data-placeholder");h||d.allowEmptyOption||(h=f.children('option[value=""]').text());var i={placeholder:h,options:[],optgroups:[],items:[]};"select"===g?l(f,i):k(f,i),e=new L(f,a.extend(!0,{},c,i,b))}})},a.fn.selectize.defaults=L.defaults,a.fn.selectize.support={validity:x},L.define("drag_drop",function(){if(!a.fn.sortable)throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".');if("multi"===this.settings.mode){var b=this;b.lock=function(){var a=b.lock;return function(){var c=b.$control.data("sortable");return c&&c.disable(),a.apply(b,arguments)}}(),b.unlock=function(){var a=b.unlock;return function(){var c=b.$control.data("sortable");return c&&c.enable(),a.apply(b,arguments)}}(),b.setup=function(){var c=b.setup;return function(){c.apply(this,arguments);var d=b.$control.sortable({items:"[data-value]",forcePlaceholderSize:!0,disabled:b.isLocked,start:function(a,b){b.placeholder.css("width",b.helper.css("width")),d.css({overflow:"visible"})},stop:function(){d.css({overflow:"hidden"});var c=b.$activeItems?b.$activeItems.slice():null,e=[];d.children("[data-value]").each(function(){e.push(a(this).attr("data-value"))}),b.setValue(e),b.setActiveItem(c)}})}}()}}),L.define("dropdown_header",function(b){var c=this;b=a.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(a){return'<div class="'+a.headerClass+'"><div class="'+a.titleRowClass+'"><span class="'+a.labelClass+'">'+a.title+'</span><a href="javascript:void(0)" class="'+a.closeClass+'">&times;</a></div></div>'}},b),c.setup=function(){var d=c.setup;return function(){d.apply(c,arguments),c.$dropdown_header=a(b.html(b)),c.$dropdown.prepend(c.$dropdown_header)}}()}),L.define("optgroup_columns",function(b){var c=this;b=a.extend({equalizeWidth:!0,equalizeHeight:!0},b),this.getAdjacentOption=function(b,c){var d=b.closest("[data-group]").find("[data-selectable]"),e=d.index(b)+c;return e>=0&&e<d.length?d.eq(e):a()},this.onKeyDown=function(){var a=c.onKeyDown;return function(b){var d,e,f,g;return!this.isOpen||b.keyCode!==j&&b.keyCode!==m?a.apply(this,arguments):(c.ignoreHover=!0,g=this.$activeOption.closest("[data-group]"),d=g.find("[data-selectable]").index(this.$activeOption),g=b.keyCode===j?g.prev("[data-group]"):g.next("[data-group]"),f=g.find("[data-selectable]"),e=f.eq(Math.min(f.length-1,d)),void(e.length&&this.setActiveOption(e)))}}();var d=function(){var a,b=d.width,c=document;return"undefined"==typeof b&&(a=c.createElement("div"),a.innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>',a=a.firstChild,c.body.appendChild(a),b=d.width=a.offsetWidth-a.clientWidth,c.body.removeChild(a)),b},e=function(){var e,f,g,h,i,j,k;if(k=a("[data-group]",c.$dropdown_content),f=k.length,f&&c.$dropdown_content.width()){if(b.equalizeHeight){for(g=0,e=0;f>e;e++)g=Math.max(g,k.eq(e).height());k.css({height:g})}b.equalizeWidth&&(j=c.$dropdown_content.innerWidth()-d(),h=Math.round(j/f),k.css({width:h}),f>1&&(i=j-h*(f-1),k.eq(f-1).css({width:i})))}};(b.equalizeHeight||b.equalizeWidth)&&(C.after(this,"positionDropdown",e),C.after(this,"refreshOptions",e))}),L.define("remove_button",function(b){if("single"!==this.settings.mode){b=a.extend({label:"&times;",title:"Remove",className:"remove",append:!0},b);var c=this,d='<a href="javascript:void(0)" class="'+b.className+'" tabindex="-1" title="'+A(b.title)+'">'+b.label+"</a>",e=function(a,b){var c=a.search(/(<\/[^>]+>\s*)$/);return a.substring(0,c)+b+a.substring(c)};this.setup=function(){var f=c.setup;return function(){if(b.append){var g=c.settings.render.item;c.settings.render.item=function(){return e(g.apply(this,arguments),d)}}f.apply(this,arguments),this.$control.on("click","."+b.className,function(b){if(b.preventDefault(),!c.isLocked){var d=a(b.currentTarget).parent();c.setActiveItem(d),c.deleteSelection()&&c.setCaret(c.items.length)}})}}()}}),L.define("restore_on_backspace",function(a){var b=this;a.text=a.text||function(a){return a[this.settings.labelField]},this.onKeyDown=function(){var c=b.onKeyDown;return function(b){var d,e;return b.keyCode===p&&""===this.$control_input.val()&&!this.$activeItems.length&&(d=this.caretPos-1,d>=0&&d<this.items.length)?(e=this.options[this.items[d]],this.deleteSelection(b)&&(this.setTextboxValue(a.text.apply(this,[e])),this.refreshOptions(!0)),void b.preventDefault()):c.apply(this,arguments)}}()}),L});
##############################################
r-cran-shiny-1.5.0+dfsg/debian/missing-sources/selectize-0.12.1/selectize.min.yui-compressor.js:1:(function(a,b){if(typeof define==="function"&&define.amd){define(["jquery","sifter","microplugin"],b)}else{if(typeof exports==="object"){module.exports=b(require("jquery"),require("sifter"),require("microplugin"))}else{a.Selectize=b(a.jQuery,a.Sifter,a.MicroPlugin)}}}(this,function(u,l,h){var K=function(N,Q){if(typeof Q==="string"&&!Q.length){return}var P=(typeof Q==="string")?new RegExp(Q,"i"):Q;var O=function(T){var Z=0;if(T.nodeType===3){var Y=T.data.search(P);if(Y>=0&&T.data.length>0){var X=T.data.match(P);var W=document.createElement("span");W.className="highlight";var U=T.splitText(Y);var R=U.splitText(X[0].length);var S=U.cloneNode(true);W.appendChild(S);U.parentNode.replaceChild(W,U);Z=1}}else{if(T.nodeType===1&&T.childNodes&&!/(script|style)/i.test(T.tagName)){for(var V=0;V<T.childNodes.length;++V){V+=O(T.childNodes[V])}}}return Z};return N.each(function(){O(this)})};var E=function(){};E.prototype={on:function(O,N){this._events=this._events||{};this._events[O]=this._events[O]||[];this._events[O].push(N)},off:function(O,N){var P=arguments.length;if(P===0){return delete this._events}if(P===1){return delete this._events[O]}this._events=this._events||{};if(O in this._events===false){return}this._events[O].splice(this._events[O].indexOf(N),1)},trigger:function(O){this._events=this._events||{};if(O in this._events===false){return}for(var N=0;N<this._events[O].length;N++){this._events[O][N].apply(this,Array.prototype.slice.call(arguments,1))}}};E.mixin=function(N){var P=["on","off","trigger"];for(var O=0;O<P.length;O++){N.prototype[P[O]]=E.prototype[P[O]]}};var b=/Mac/.test(navigator.userAgent);var G=65;var L=188;var y=13;var v=27;var o=37;var F=38;var w=80;var s=39;var t=40;var A=78;var n=8;var p=46;var i=16;var H=b?91:17;var d=b?18:17;var D=9;var j=1;var g=2;var B=!/android/i.test(window.navigator.userAgent)&&!!document.createElement("form").validity;var M=function(N){return typeof N!=="undefined"};var x=function(N){if(typeof N==="undefined"||N===null){return null}if(typeof N==="boolean"){return N?"1":"0"}return N+""};var C=function(N){return(N+"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;")};var e=function(N){return(N+"").replace(/\$/g,"$$$$")};var r={};r.before=function(N,Q,P){var O=N[Q];N[Q]=function(){P.apply(N,arguments);return O.apply(N,arguments)}};r.after=function(N,Q,P){var O=N[Q];N[Q]=function(){var R=O.apply(N,arguments);P.apply(N,arguments);return R}};var q=function(N){var O=false;return function(){if(O){return}O=true;N.apply(this,arguments)}};var f=function(O,N){var P;return function(){var Q=this;var R=arguments;window.clearTimeout(P);P=window.setTimeout(function(){O.apply(Q,R)},N)}};var a=function(N,P,R){var Q;var O=N.trigger;var S={};N.trigger=function(){var T=arguments[0];if(P.indexOf(T)!==-1){S[T]=arguments}else{return O.apply(N,arguments)}};R.apply(N,[]);N.trigger=O;for(Q in S){if(S.hasOwnProperty(Q)){O.apply(N,S[Q])}}};var z=function(Q,P,N,O){Q.on(P,N,function(R){var S=R.target;while(S&&S.parentNode!==Q[0]){S=S.parentNode}R.currentTarget=S;return O.apply(this,[R])})};var k=function(P){var O={};if("selectionStart" in P){O.start=P.selectionStart;O.length=P.selectionEnd-O.start}else{if(document.selection){P.focus();var Q=document.selection.createRange();var N=document.selection.createRange().text.length;Q.moveStart("character",-P.value.length);O.start=Q.text.length-N;O.length=N}}return O};var m=function(Q,R,O){var N,S,P={};if(O){for(N=0,S=O.length;N<S;N++){P[O[N]]=Q.css(O[N])}}else{P=Q.css()}R.css(P)};var I=function(Q,P){if(!Q){return 0}var O=u("<test>").css({position:"absolute",top:-99999,left:-99999,width:"auto",padding:0,whiteSpace:"pre"}).text(Q).appendTo("body");m(P,O,["letterSpacing","fontSize","fontFamily","fontWeight","textTransform"]);var N=O.width();O.remove();return N};var J=function(P){var N=null;var O=function(T,Z){var X,Y,U,W,Q;var R,S,V;T=T||window.event||{};Z=Z||{};if(T.metaKey||T.altKey){return}if(!Z.force&&P.data("grow")===false){return}X=P.val();if(T.type&&T.type.toLowerCase()==="keydown"){Y=T.keyCode;U=((Y>=97&&Y<=122)||(Y>=65&&Y<=90)||(Y>=48&&Y<=57)||Y===32);if(Y===p||Y===n){V=k(P[0]);if(V.length){X=X.substring(0,V.start)+X.substring(V.start+V.length)}else{if(Y===n&&V.start){X=X.substring(0,V.start-1)+X.substring(V.start+1)}else{if(Y===p&&typeof V.start!=="undefined"){X=X.substring(0,V.start)+X.substring(V.start+1)}}}}else{if(U){R=T.shiftKey;S=String.fromCharCode(T.keyCode);if(R){S=S.toUpperCase()}else{S=S.toLowerCase()}X+=S}}}W=P.attr("placeholder");if(!X&&W){X=W}Q=I(X,P)+4;if(Q!==N){N=Q;P.width(Q);P.triggerHandler("resize")}};P.on("keydown keyup update blur",O);O()};var c=function(S,P){var U,Q,N,O,T,V=this;T=S[0];T.selectize=V;var R=window.getComputedStyle&&window.getComputedStyle(T,null);O=R?R.getPropertyValue("direction"):T.currentStyle&&T.currentStyle.direction;O=O||S.parents("[dir]:first").attr("dir")||"";u.extend(V,{order:0,settings:P,$input:S,tabIndex:S.attr("tabindex")||"",tagType:T.tagName.toLowerCase()==="select"?j:g,rtl:/rtl/i.test(O),eventNS:".selectize"+(++c.count),highlightedValue:null,isOpen:false,isDisabled:false,isRequired:S.is("[required]"),isInvalid:false,isLocked:false,isFocused:false,isInputHidden:false,isSetup:false,isShiftDown:false,isCmdDown:false,isCtrlDown:false,ignoreFocus:false,ignoreBlur:false,ignoreHover:false,hasOptions:false,currentResults:null,lastValue:"",caretPos:0,loading:0,loadedSearches:{},$activeOption:null,$activeItems:[],optgroups:{},options:{},userOptions:{},items:[],renderCache:{},onSearchChange:P.loadThrottle===null?V.onSearchChange:f(V.onSearchChange,P.loadThrottle)});V.sifter=new l(this.options,{diacritics:P.diacritics});if(V.settings.options){for(Q=0,N=V.settings.options.length;Q<N;Q++){V.registerOption(V.settings.options[Q])}delete V.settings.options}if(V.settings.optgroups){for(Q=0,N=V.settings.optgroups.length;Q<N;Q++){V.registerOptionGroup(V.settings.optgroups[Q])}delete V.settings.optgroups}V.settings.mode=V.settings.mode||(V.settings.maxItems===1?"single":"multi");if(typeof V.settings.hideSelected!=="boolean"){V.settings.hideSelected=V.settings.mode==="multi"}V.initializePlugins(V.settings.plugins);V.setupCallbacks();V.setupTemplates();V.setup()};E.mixin(c);h.mixin(c);u.extend(c.prototype,{setup:function(){var T=this;var Z=T.settings;var W=T.eventNS;var S=u(window);var ad=u(document);var P=T.$input;var X;var ab;var O;var Q;var U;var Y;var ae;var R;var ac;var aa;var V;ae=T.settings.mode;aa=P.attr("class")||"";X=u("<div>").addClass(Z.wrapperClass).addClass(aa).addClass(ae);ab=u("<div>").addClass(Z.inputClass).addClass("items").appendTo(X);O=u('<input type="text" autocomplete="off" />').appendTo(ab).attr("tabindex",P.is(":disabled")?"-1":T.tabIndex);Y=u(Z.dropdownParent||X);Q=u("<div>").addClass(Z.dropdownClass).addClass(ae).hide().appendTo(Y);U=u("<div>").addClass(Z.dropdownContentClass).appendTo(Q);if(T.settings.copyClassesToDropdown){Q.addClass(aa)}X.css({width:P[0].style.width});if(T.plugins.names.length){V="plugin-"+T.plugins.names.join(" plugin-");X.addClass(V);Q.addClass(V)}if((Z.maxItems===null||Z.maxItems>1)&&T.tagType===j){P.attr("multiple","multiple")}if(T.settings.placeholder){O.attr("placeholder",Z.placeholder)}if(!T.settings.splitOn&&T.settings.delimiter){var N=T.settings.delimiter.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&");T.settings.splitOn=new RegExp("\\s*"+N+"+\\s*")}if(P.attr("autocorrect")){O.attr("autocorrect",P.attr("autocorrect"))}if(P.attr("autocapitalize")){O.attr("autocapitalize",P.attr("autocapitalize"))}T.$wrapper=X;T.$control=ab;T.$control_input=O;T.$dropdown=Q;T.$dropdown_content=U;Q.on("mouseenter","[data-selectable]",function(){return T.onOptionHover.apply(T,arguments)});Q.on("mousedown click","[data-selectable]",function(){return T.onOptionSelect.apply(T,arguments)});z(ab,"mousedown","*:not(input)",function(){return T.onItemSelect.apply(T,arguments)});J(O);ab.on({mousedown:function(){return T.onMouseDown.apply(T,arguments)},click:function(){return T.onClick.apply(T,arguments)}});O.on({mousedown:function(af){af.stopPropagation()},keydown:function(){return T.onKeyDown.apply(T,arguments)},keyup:function(){return T.onKeyUp.apply(T,arguments)},keypress:function(){return T.onKeyPress.apply(T,arguments)},resize:function(){T.positionDropdown.apply(T,[])},blur:function(){return T.onBlur.apply(T,arguments)},focus:function(){T.ignoreBlur=false;return T.onFocus.apply(T,arguments)},paste:function(){return T.onPaste.apply(T,arguments)}});ad.on("keydown"+W,function(af){T.isCmdDown=af[b?"metaKey":"ctrlKey"];T.isCtrlDown=af[b?"altKey":"ctrlKey"];T.isShiftDown=af.shiftKey});ad.on("keyup"+W,function(af){if(af.keyCode===d){T.isCtrlDown=false}if(af.keyCode===i){T.isShiftDown=false}if(af.keyCode===H){T.isCmdDown=false}});ad.on("mousedown"+W,function(af){if(T.isFocused){if(af.target===T.$dropdown[0]||af.target.parentNode===T.$dropdown[0]){return false}if(!T.$control.has(af.target).length&&af.target!==T.$control[0]){T.blur(af.target)}}});S.on(["scroll"+W,"resize"+W].join(" "),function(){if(T.isOpen){T.positionDropdown.apply(T,arguments)}});S.on("mousemove"+W,function(){T.ignoreHover=false});this.revertSettings={$children:P.children().detach(),tabindex:P.attr("tabindex")};P.attr("tabindex",-1).hide().after(T.$wrapper);if(u.isArray(Z.items)){T.setValue(Z.items);delete Z.items}if(B){P.on("invalid"+W,function(af){af.preventDefault();T.isInvalid=true;T.refreshState()})}T.updateOriginalInput();T.refreshItems();T.refreshState();T.updatePlaceholder();T.isSetup=true;if(P.is(":disabled")){T.disable()}T.on("change",this.onChange);P.data("selectize",T);P.addClass("selectized");T.trigger("initialize");if(Z.preload===true){T.onSearchChange("")}},setupTemplates:function(){var O=this;var N=O.settings.labelField;var P=O.settings.optgroupLabelField;var Q={optgroup:function(R){return'<div class="optgroup">'+R.html+"</div>"},optgroup_header:function(S,R){return'<div class="optgroup-header">'+R(S[P])+"</div>"},option:function(S,R){return'<div class="option">'+R(S[N])+"</div>"},item:function(S,R){return'<div class="item">'+R(S[N])+"</div>"},option_create:function(S,R){return'<div class="create">Add <strong>'+R(S.input)+"</strong>&hellip;</div>"}};O.settings.render=u.extend({},Q,O.settings.render)},setupCallbacks:function(){var N,O,P={initialize:"onInitialize",change:"onChange",item_add:"onItemAdd",item_remove:"onItemRemove",clear:"onClear",option_add:"onOptionAdd",option_remove:"onOptionRemove",option_clear:"onOptionClear",optgroup_add:"onOptionGroupAdd",optgroup_remove:"onOptionGroupRemove",optgroup_clear:"onOptionGroupClear",dropdown_open:"onDropdownOpen",dropdown_close:"onDropdownClose",type:"onType",load:"onLoad",focus:"onFocus",blur:"onBlur"};for(N in P){if(P.hasOwnProperty(N)){O=this.settings[P[N]];if(O){this.on(N,O)}}}},onClick:function(O){var N=this;if(!N.isFocused){N.focus();O.preventDefault()}},onMouseDown:function(Q){var O=this;var P=Q.isDefaultPrevented();var N=u(Q.target);if(O.isFocused){if(Q.target!==O.$control_input[0]){if(O.settings.mode==="single"){O.isOpen?O.close():O.open()}else{if(!P){O.setActiveItem(null)}}return false}}else{if(!P){window.setTimeout(function(){O.focus()},0)}}},onChange:function(){this.$input.trigger("change")},onPaste:function(O){var N=this;if(N.isFull()||N.isInputHidden||N.isLocked){O.preventDefault()}else{if(N.settings.splitOn){setTimeout(function(){var P=u.trim(N.$control_input.val()||"").split(N.settings.splitOn);for(var Q=0,R=P.length;Q<R;Q++){N.createItem(P[Q])}},0)}}},onKeyPress:function(O){if(this.isLocked){return O&&O.preventDefault()}var N=String.fromCharCode(O.keyCode||O.which);if(this.settings.create&&this.settings.mode==="multi"&&N===this.settings.delimiter){this.createItem();O.preventDefault();return false}},onKeyDown:function(R){var Q=R.target===this.$control_input[0];var P=this;if(P.isLocked){if(R.keyCode!==D){R.preventDefault()}return}switch(R.keyCode){case G:if(P.isCmdDown){P.selectAll();return}break;case v:if(P.isOpen){R.preventDefault();R.stopPropagation();P.close()}return;case A:if(!R.ctrlKey||R.altKey){break}case t:if(!P.isOpen&&P.hasOptions){P.open()}else{if(P.$activeOption){P.ignoreHover=true;var N=P.getAdjacentOption(P.$activeOption,1);if(N.length){P.setActiveOption(N,true,true)}}}R.preventDefault();return;case w:if(!R.ctrlKey||R.altKey){break}case F:if(P.$activeOption){P.ignoreHover=true;var O=P.getAdjacentOption(P.$activeOption,-1);if(O.length){P.setActiveOption(O,true,true)}}R.preventDefault();return;case y:if(P.isOpen&&P.$activeOption){P.onOptionSelect({currentTarget:P.$activeOption});R.preventDefault()}return;case o:P.advanceSelection(-1,R);return;case s:P.advanceSelection(1,R);return;case D:if(P.settings.selectOnTab&&P.isOpen&&P.$activeOption){P.onOptionSelect({currentTarget:P.$activeOption});if(!P.isFull()){R.preventDefault()}}if(P.settings.create&&P.createItem()){R.preventDefault()}return;case n:case p:P.deleteSelection(R);return}if((P.isFull()||P.isInputHidden)&&!(b?R.metaKey:R.ctrlKey)){R.preventDefault();return}},onKeyUp:function(P){var N=this;if(N.isLocked){return P&&P.preventDefault()}var O=N.$control_input.val()||"";if(N.lastValue!==O){N.lastValue=O;N.onSearchChange(O);N.refreshOptions();N.trigger("type",O)}},onSearchChange:function(P){var N=this;var O=N.settings.load;if(!O){return}if(N.loadedSearches.hasOwnProperty(P)){return}N.loadedSearches[P]=true;N.load(function(Q){O.apply(N,[P,Q])})},onFocus:function(P){var N=this;var O=N.isFocused;if(N.isDisabled){N.blur();P&&P.preventDefault();return false}if(N.ignoreFocus){return}N.isFocused=true;if(N.settings.preload==="focus"){N.onSearchChange("")}if(!O){N.trigger("focus")}if(!N.$activeItems.length){N.showInput();N.setActiveItem(null);N.refreshOptions(!!N.settings.openOnFocus)}N.refreshState()},onBlur:function(Q,O){var N=this;if(!N.isFocused){return}N.isFocused=false;if(N.ignoreFocus){return}else{if(!N.ignoreBlur&&document.activeElement===N.$dropdown_content[0]){N.ignoreBlur=true;N.onFocus(Q);return}}var P=function(){N.close();N.setTextboxValue("");N.setActiveItem(null);N.setActiveOption(null);N.setCaret(N.items.length);N.refreshState();(O||document.body).focus();N.ignoreFocus=false;N.trigger("blur")};N.ignoreFocus=true;if(N.settings.create&&N.settings.createOnBlur){N.createItem(null,false,P)}else{P()}},onOptionHover:function(N){if(this.ignoreHover){return}this.setActiveOption(N.currentTarget,false)},onOptionSelect:function(R){var P,N,Q,O=this;if(R.preventDefault){R.preventDefault();R.stopPropagation()}N=u(R.currentTarget);if(N.hasClass("create")){O.createItem(null,function(){if(O.settings.closeAfterSelect){O.close()}})}else{P=N.attr("data-value");if(typeof P!=="undefined"){O.lastQuery=null;O.setTextboxValue("");O.addItem(P);if(O.settings.closeAfterSelect){O.close()}else{if(!O.settings.hideSelected&&R.type&&/mouse/.test(R.type)){O.setActiveOption(O.getOption(P))}}}}},onItemSelect:function(O){var N=this;if(N.isLocked){return}if(N.settings.mode==="multi"){O.preventDefault();N.setActiveItem(O.currentTarget,O)}},load:function(O){var N=this;var P=N.$wrapper.addClass(N.settings.loadingClass);N.loading++;O.apply(N,[function(Q){N.loading=Math.max(N.loading-1,0);if(Q&&Q.length){N.addOption(Q);N.refreshOptions(N.isFocused&&!N.isInputHidden)}if(!N.loading){P.removeClass(N.settings.loadingClass)}N.trigger("load",Q)}])},setTextboxValue:function(N){var P=this.$control_input;var O=P.val()!==N;if(O){P.val(N).triggerHandler("update");this.lastValue=N}},getValue:function(){if(this.tagType===j&&this.$input.attr("multiple")){return this.items}else{return this.items.join(this.settings.delimiter)}},setValue:function(P,N){var O=N?[]:["change"];a(this,O,function(){this.clear(N);this.addItems(P,N)})},setActiveItem:function(U,S){var X=this;var R;var Q,V,N,P,W,O;var T;if(X.settings.mode==="single"){return}U=u(U);if(!U.length){u(X.$activeItems).removeClass("active");X.$activeItems=[];if(X.isFocused){X.showInput()}return}R=S&&S.type.toLowerCase();if(R==="mousedown"&&X.isShiftDown&&X.$activeItems.length){T=X.$control.children(".active:last");N=Array.prototype.indexOf.apply(X.$control[0].childNodes,[T[0]]);P=Array.prototype.indexOf.apply(X.$control[0].childNodes,[U[0]]);if(N>P){O=N;N=P;P=O}for(Q=N;Q<=P;Q++){W=X.$control[0].childNodes[Q];if(X.$activeItems.indexOf(W)===-1){u(W).addClass("active");X.$activeItems.push(W)}}S.preventDefault()}else{if((R==="mousedown"&&X.isCtrlDown)||(R==="keydown"&&this.isShiftDown)){if(U.hasClass("active")){V=X.$activeItems.indexOf(U[0]);X.$activeItems.splice(V,1);U.removeClass("active")}else{X.$activeItems.push(U.addClass("active")[0])}}else{u(X.$activeItems).removeClass("active");X.$activeItems=[U.addClass("active")[0]]}}X.hideInput();if(!this.isFocused){X.focus()}},setActiveOption:function(N,T,P){var O,U,S;var R,Q;var V=this;if(V.$activeOption){V.$activeOption.removeClass("active")}V.$activeOption=null;N=u(N);if(!N.length){return}V.$activeOption=N.addClass("active");if(T||!M(T)){O=V.$dropdown_content.height();U=V.$activeOption.outerHeight(true);T=V.$dropdown_content.scrollTop()||0;S=V.$activeOption.offset().top-V.$dropdown_content.offset().top+T;R=S;Q=S-O+U;if(S+U>O+T){V.$dropdown_content.stop().animate({scrollTop:Q},P?V.settings.scrollDuration:0)}else{if(S<T){V.$dropdown_content.stop().animate({scrollTop:R},P?V.settings.scrollDuration:0)}}}},selectAll:function(){var N=this;if(N.settings.mode==="single"){return}N.$activeItems=Array.prototype.slice.apply(N.$control.children(":not(input)").addClass("active"));if(N.$activeItems.length){N.hideInput();N.close()}N.focus()},hideInput:function(){var N=this;N.setTextboxValue("");N.$control_input.css({opacity:0,position:"absolute",left:N.rtl?10000:-10000});N.isInputHidden=true},showInput:function(){this.$control_input.css({opacity:1,position:"relative",left:0});this.isInputHidden=false},focus:function(){var N=this;if(N.isDisabled){return}N.ignoreFocus=true;N.$control_input[0].focus();window.setTimeout(function(){N.ignoreFocus=false;N.onFocus()},0)},blur:function(N){this.$control_input[0].blur();this.onBlur(null,N)},getScoreFunction:function(N){return this.sifter.getScoreFunction(N,this.getSearchOptions())},getSearchOptions:function(){var O=this.settings;var N=O.sortField;if(typeof N==="string"){N=[{field:N}]}return{fields:O.searchField,conjunction:O.searchConjunction,sort:N}},search:function(R){var Q,S,N,V,P;var T=this;var O=T.settings;var U=this.getSearchOptions();if(O.score){P=T.settings.score.apply(this,[R]);if(typeof P!=="function"){throw new Error('Selectize "score" setting must be a function that returns a function')}}if(R!==T.lastQuery){T.lastQuery=R;V=T.sifter.search(R,u.extend(U,{score:P}));T.currentResults=V}else{V=u.extend(true,{},T.currentResults)}if(O.hideSelected){for(Q=V.items.length-1;Q>=0;Q--){if(T.items.indexOf(x(V.items[Q].id))!==-1){V.items.splice(Q,1)}}}return V},refreshOptions:function(X){var ae,ad,ac,aa,ah,N,T,af,P,ab,R,ag,S;var Q,W,Y;if(typeof X==="undefined"){X=true}var V=this;var O=u.trim(V.$control_input.val());var Z=V.search(O);var U=V.$dropdown_content;var ai=V.$activeOption&&x(V.$activeOption.attr("data-value"));aa=Z.items.length;if(typeof V.settings.maxOptions==="number"){aa=Math.min(aa,V.settings.maxOptions)}ah={};N=[];for(ae=0;ae<aa;ae++){T=V.options[Z.items[ae].id];af=V.render("option",T);P=T[V.settings.optgroupField]||"";ab=u.isArray(P)?P:[P];for(ad=0,ac=ab&&ab.length;ad<ac;ad++){P=ab[ad];if(!V.optgroups.hasOwnProperty(P)){P=""}if(!ah.hasOwnProperty(P)){ah[P]=[];N.push(P)}ah[P].push(af)}}if(this.settings.lockOptgroupOrder){N.sort(function(ak,aj){var al=V.optgroups[ak].$order||0;var am=V.optgroups[aj].$order||0;return al-am})}R=[];for(ae=0,aa=N.length;ae<aa;ae++){P=N[ae];if(V.optgroups.hasOwnProperty(P)&&ah[P].length){ag=V.render("optgroup_header",V.optgroups[P])||"";ag+=ah[P].join("");R.push(V.render("optgroup",u.extend({},V.optgroups[P],{html:ag})))}else{R.push(ah[P].join(""))}}U.html(R.join(""));if(V.settings.highlight&&Z.query.length&&Z.tokens.length){for(ae=0,aa=Z.tokens.length;ae<aa;ae++){K(U,Z.tokens[ae].regex)}}if(!V.settings.hideSelected){for(ae=0,aa=V.items.length;ae<aa;ae++){V.getOption(V.items[ae]).addClass("selected")}}S=V.canCreate(O);if(S){U.prepend(V.render("option_create",{input:O}));Y=u(U[0].childNodes[0])}V.hasOptions=Z.items.length>0||S;if(V.hasOptions){if(Z.items.length>0){W=ai&&V.getOption(ai);if(W&&W.length){Q=W}else{if(V.settings.mode==="single"&&V.items.length){Q=V.getOption(V.items[0])}}if(!Q||!Q.length){if(Y&&!V.settings.addPrecedence){Q=V.getAdjacentOption(Y,1)}else{Q=U.find("[data-selectable]:first")}}}else{Q=Y}V.setActiveOption(Q);if(X&&!V.isOpen){V.open()}}else{V.setActiveOption(null);if(X&&V.isOpen){V.close()}}},addOption:function(Q){var O,R,P,N=this;if(u.isArray(Q)){for(O=0,R=Q.length;O<R;O++){N.addOption(Q[O])}return}if(P=N.registerOption(Q)){N.userOptions[P]=true;N.lastQuery=null;N.trigger("option_add",P,Q)}},registerOption:function(O){var N=x(O[this.settings.valueField]);if(!N||this.options.hasOwnProperty(N)){return false}O.$order=O.$order||++this.order;this.options[N]=O;return N},registerOptionGroup:function(O){var N=x(O[this.settings.optgroupValueField]);if(!N){return false}O.$order=O.$order||++this.order;this.optgroups[N]=O;return N},addOptionGroup:function(O,N){N[this.settings.optgroupValueField]=O;if(O=this.registerOptionGroup(N)){this.trigger("optgroup_add",O,N)}},removeOptionGroup:function(N){if(this.optgroups.hasOwnProperty(N)){delete this.optgroups[N];this.renderCache={};this.trigger("optgroup_remove",N)}},clearOptionGroups:function(){this.optgroups={};this.renderCache={};this.trigger("optgroup_clear")},updateOption:function(U,S){var W=this;var V,N;var P,Q,T,O,R;U=x(U);P=x(S[W.settings.valueField]);if(U===null){return}if(!W.options.hasOwnProperty(U)){return}if(typeof P!=="string"){throw new Error("Value must be set in option data")}R=W.options[U].$order;if(P!==U){delete W.options[U];Q=W.items.indexOf(U);if(Q!==-1){W.items.splice(Q,1,P)}}S.$order=S.$order||R;W.options[P]=S;T=W.renderCache.item;O=W.renderCache.option;if(T){delete T[U];delete T[P]}if(O){delete O[U];delete O[P]}if(W.items.indexOf(P)!==-1){V=W.getItem(U);N=u(W.render("item",S));if(V.hasClass("active")){N.addClass("active")}V.replaceWith(N)}W.lastQuery=null;if(W.isOpen){W.refreshOptions(false)}},removeOption:function(R,P){var O=this;R=x(R);var N=O.renderCache.item;var Q=O.renderCache.option;if(N){delete N[R]}if(Q){delete Q[R]}delete O.userOptions[R];delete O.options[R];O.lastQuery=null;O.trigger("option_remove",R);O.removeItem(R,P)},clearOptions:function(){var N=this;N.loadedSearches={};N.userOptions={};N.renderCache={};N.options=N.sifter.items={};N.lastQuery=null;N.trigger("option_clear");N.clear()},getOption:function(N){return this.getElementWithValue(N,this.$dropdown_content.find("[data-selectable]"))},getAdjacentOption:function(Q,P){var N=this.$dropdown.find("[data-selectable]");var O=N.index(Q)+P;return O>=0&&O<N.length?N.eq(O):u()},getElementWithValue:function(P,O){P=x(P);if(typeof P!=="undefined"&&P!==null){for(var N=0,Q=O.length;N<Q;N++){if(O[N].getAttribute("data-value")===P){return u(O[N])}}}return u()},getItem:function(N){return this.getElementWithValue(N,this.$control.children())},addItems:function(P,O){var N=u.isArray(P)?P:[P];for(var Q=0,R=N.length;Q<R;Q++){this.isPending=(Q<R-1);this.addItem(N[Q],O)}},addItem:function(P,N){var O=N?[]:["change"];a(this,O,function(){var X,R,V;var Y=this;var Q=Y.settings.mode;var U,T,W,S;P=x(P);if(Y.items.indexOf(P)!==-1){if(Q==="single"){Y.close()}return}if(!Y.options.hasOwnProperty(P)){return}if(Q==="single"){Y.clear(N)}if(Q==="multi"&&Y.isFull()){return}X=u(Y.render("item",Y.options[P]));S=Y.isFull();Y.items.splice(Y.caretPos,0,P);Y.insertAtCaret(X);if(!Y.isPending||(!S&&Y.isFull())){Y.refreshState()}if(Y.isSetup){V=Y.$dropdown_content.find("[data-selectable]");if(!Y.isPending){R=Y.getOption(P);W=Y.getAdjacentOption(R,1).attr("data-value");Y.refreshOptions(Y.isFocused&&Q!=="single");if(W){Y.setActiveOption(Y.getOption(W))}}if(!V.length||Y.isFull()){Y.close()}else{Y.positionDropdown()}Y.updatePlaceholder();Y.trigger("item_add",P,X);Y.updateOriginalInput({silent:N})}})},removeItem:function(S,Q){var P=this;var O,R,N;O=(typeof S==="object")?S:P.getItem(S);S=x(O.attr("data-value"));R=P.items.indexOf(S);if(R!==-1){O.remove();if(O.hasClass("active")){N=P.$activeItems.indexOf(O[0]);P.$activeItems.splice(N,1)}P.items.splice(R,1);P.lastQuery=null;if(!P.settings.persist&&P.userOptions.hasOwnProperty(S)){P.removeOption(S,Q)}if(R<P.caretPos){P.setCaret(P.caretPos-1)}P.refreshState();P.updatePlaceholder();P.updateOriginalInput({silent:Q});P.positionDropdown();P.trigger("item_remove",S,O)}},createItem:function(Q,S){var P=this;var T=P.caretPos;Q=Q||u.trim(P.$control_input.val()||"");var U=arguments[arguments.length-1];if(typeof U!=="function"){U=function(){}}if(typeof S!=="boolean"){S=true}if(!P.canCreate(Q)){U();return false}P.lock();var N=(typeof P.settings.create==="function")?this.settings.create:function(V){var W={};W[P.settings.labelField]=V;W[P.settings.valueField]=V;return W};var R=q(function(W){P.unlock();if(!W||typeof W!=="object"){return U()}var V=x(W[P.settings.valueField]);if(typeof V!=="string"){return U()}P.setTextboxValue("");P.addOption(W);P.setCaret(T);P.addItem(V);P.refreshOptions(S&&P.settings.mode!=="single");U(W)});var O=N.apply(this,[Q,R]);if(typeof O!=="undefined"){R(O)}return true},refreshItems:function(){this.lastQuery=null;if(this.isSetup){this.addItem(this.items)}this.refreshState();this.updateOriginalInput()},refreshState:function(){var O,N=this;if(N.isRequired){if(N.items.length){N.isInvalid=false}N.$control_input.prop("required",O)}N.refreshClasses()},refreshClasses:function(){var N=this;var O=N.isFull();var P=N.isLocked;N.$wrapper.toggleClass("rtl",N.rtl);N.$control.toggleClass("focus",N.isFocused).toggleClass("disabled",N.isDisabled).toggleClass("required",N.isRequired).toggleClass("invalid",N.isInvalid).toggleClass("locked",P).toggleClass("full",O).toggleClass("not-full",!O).toggleClass("input-active",N.isFocused&&!N.isInputHidden).toggleClass("dropdown-active",N.isOpen).toggleClass("has-options",!u.isEmptyObject(N.options)).toggleClass("has-items",N.items.length>0);N.$control_input.data("grow",!O&&!P)},isFull:function(){return this.settings.maxItems!==null&&this.items.length>=this.settings.maxItems},updateOriginalInput:function(R){var Q,S,P,O,N=this;R=R||{};if(N.tagType===j){P=[];for(Q=0,S=N.items.length;Q<S;Q++){O=N.options[N.items[Q]][N.settings.labelField]||"";P.push('<option value="'+C(N.items[Q])+'" selected="selected">'+C(O)+"</option>")}if(!P.length&&!this.$input.attr("multiple")){P.push('<option value="" selected="selected"></option>')}N.$input.html(P.join(""))}else{N.$input.val(N.getValue());N.$input.attr("value",N.$input.val())}if(N.isSetup){if(!R.silent){N.trigger("change",N.$input.val())}}},updatePlaceholder:function(){if(!this.settings.placeholder){return}var N=this.$control_input;if(this.items.length){N.removeAttr("placeholder")}else{N.attr("placeholder",this.settings.placeholder)}N.triggerHandler("update",{force:true})},open:function(){var N=this;if(N.isLocked||N.isOpen||(N.settings.mode==="multi"&&N.isFull())){return}N.focus();N.isOpen=true;N.refreshState();N.$dropdown.css({visibility:"hidden",display:"block"});N.positionDropdown();N.$dropdown.css({visibility:"visible"});N.trigger("dropdown_open",N.$dropdown)},close:function(){var N=this;var O=N.isOpen;if(N.settings.mode==="single"&&N.items.length){N.hideInput()}N.isOpen=false;N.$dropdown.hide();N.setActiveOption(null);N.refreshState();if(O){N.trigger("dropdown_close",N.$dropdown)}},positionDropdown:function(){var N=this.$control;var O=this.settings.dropdownParent==="body"?N.offset():N.position();O.top+=N.outerHeight(true);this.$dropdown.css({width:N.outerWidth(),top:O.top,left:O.left})},clear:function(O){var N=this;if(!N.items.length){return}N.$control.children(":not(input)").remove();N.items=[];N.lastQuery=null;N.setCaret(0);N.setActiveItem(null);N.updatePlaceholder();N.updateOriginalInput({silent:O});N.refreshState();N.showInput();N.trigger("clear")},insertAtCaret:function(N){var O=Math.min(this.caretPos,this.items.length);if(O===0){this.$control.prepend(N)}else{u(this.$control[0].childNodes[O]).before(N)}this.setCaret(O+1)},deleteSelection:function(Q){var O,N,U,V,W,S,R,T,P;var X=this;U=(Q&&Q.keyCode===n)?-1:1;V=k(X.$control_input[0]);if(X.$activeOption&&!X.settings.hideSelected){R=X.getAdjacentOption(X.$activeOption,-1).attr("data-value")}W=[];if(X.$activeItems.length){P=X.$control.children(".active:"+(U>0?"last":"first"));S=X.$control.children(":not(input)").index(P);if(U>0){S++}for(O=0,N=X.$activeItems.length;O<N;O++){W.push(u(X.$activeItems[O]).attr("data-value"))}if(Q){Q.preventDefault();Q.stopPropagation()}}else{if((X.isFocused||X.settings.mode==="single")&&X.items.length){if(U<0&&V.start===0&&V.length===0){W.push(X.items[X.caretPos-1])}else{if(U>0&&V.start===X.$control_input.val().length){W.push(X.items[X.caretPos])}}}}if(!W.length||(typeof X.settings.onDelete==="function"&&X.settings.onDelete.apply(X,[W])===false)){return false}if(typeof S!=="undefined"){X.setCaret(S)}while(W.length){X.removeItem(W.pop())}X.showInput();X.positionDropdown();X.refreshOptions(true);if(R){T=X.getOption(R);if(T.length){X.setActiveOption(T)}}return true},advanceSelection:function(R,O){var P,S,T,U,Q,N;var V=this;if(R===0){return}if(V.rtl){R*=-1}P=R>0?"last":"first";S=k(V.$control_input[0]);if(V.isFocused&&!V.isInputHidden){U=V.$control_input.val().length;Q=R<0?S.start===0&&S.length===0:S.start===U;if(Q&&!U){V.advanceCaret(R,O)}}else{N=V.$control.children(".active:"+P);if(N.length){T=V.$control.children(":not(input)").index(N);V.setActiveItem(null);V.setCaret(R>0?T+1:T)}}},advanceCaret:function(R,Q){var N=this,P,O;if(R===0){return}P=R>0?"next":"prev";if(N.isShiftDown){O=N.$control_input[P]();if(O.length){N.hideInput();N.setActiveItem(O);Q&&Q.preventDefault()}}else{N.setCaret(N.caretPos+R)}},setCaret:function(Q){var O=this;if(O.settings.mode==="single"){Q=O.items.length}else{Q=Math.max(0,Math.min(O.items.length,Q))}if(!O.isPending){var P,T,R,N,S;N=O.$control.children(":not(input)");for(P=0,T=N.length;P<T;P++){S=u(N[P]).detach();if(P<Q){O.$control_input.before(S)}else{O.$control.append(S)}}}O.caretPos=Q},lock:function(){this.close();this.isLocked=true;this.refreshState()},unlock:function(){this.isLocked=false;this.refreshState()},disable:function(){var N=this;N.$input.prop("disabled",true);N.$control_input.prop("disabled",true).prop("tabindex",-1);N.isDisabled=true;N.lock()},enable:function(){var N=this;N.$input.prop("disabled",false);N.$control_input.prop("disabled",false).prop("tabindex",N.tabIndex);N.isDisabled=false;N.unlock()},destroy:function(){var N=this;var P=N.eventNS;var O=N.revertSettings;N.trigger("destroy");N.off();N.$wrapper.remove();N.$dropdown.remove();N.$input.html("").append(O.$children).removeAttr("tabindex").removeClass("selectized").attr({tabindex:O.tabindex}).show();N.$control_input.removeData("grow");N.$input.removeData("selectize");u(window).off(P);u(document).off(P);u(document.body).off(P);delete N.$input[0].selectize},render:function(V,P){var T,O,S;var Q="";var N=false;var U=this;var R=/^[\t \r\n]*<([a-z][a-z0-9\-_]*(?:\:[a-z][a-z0-9\-_]*)?)/i;if(V==="option"||V==="item"){T=x(P[U.settings.valueField]);N=!!T}if(N){if(!M(U.renderCache[V])){U.renderCache[V]={}}if(U.renderCache[V].hasOwnProperty(T)){return U.renderCache[V][T]}}Q=U.settings.render[V].apply(this,[P,C]);if(V==="option"||V==="option_create"){Q=Q.replace(R,"<$1 data-selectable")}if(V==="optgroup"){O=P[U.settings.optgroupValueField]||"";Q=Q.replace(R,'<$1 data-group="'+e(C(O))+'"')}if(V==="option"||V==="item"){Q=Q.replace(R,'<$1 data-value="'+e(C(T||""))+'"')}if(N){U.renderCache[V][T]=Q}return Q},clearCache:function(N){var O=this;if(typeof N==="undefined"){O.renderCache={}}else{delete O.renderCache[N]}},canCreate:function(O){var N=this;if(!N.settings.create){return false}var P=N.settings.createFilter;return O.length&&(typeof P!=="function"||P.apply(N,[O]))&&(typeof P!=="string"||new RegExp(P).test(O))&&(!(P instanceof RegExp)||P.test(O))}});c.count=0;c.defaults={options:[],optgroups:[],plugins:[],delimiter:",",splitOn:null,persist:true,diacritics:true,create:false,createOnBlur:false,createFilter:null,highlight:true,openOnFocus:true,maxOptions:1000,maxItems:null,hideSelected:null,addPrecedence:false,selectOnTab:false,preload:false,allowEmptyOption:false,closeAfterSelect:false,scrollDuration:60,loadThrottle:300,loadingClass:"loading",dataAttr:"data-data",optgroupField:"optgroup",valueField:"value",labelField:"text",optgroupLabelField:"label",optgroupValueField:"value",lockOptgroupOrder:false,sortField:"$order",searchField:["text"],searchConjunction:"and",mode:null,wrapperClass:"selectize-control",inputClass:"selectize-input",dropdownClass:"selectize-dropdown",dropdownContentClass:"selectize-dropdown-content",dropdownParent:null,copyClassesToDropdown:true,render:{}};u.fn.selectize=function(T){var P=u.fn.selectize.defaults;var O=u.extend({},P,T);var Q=O.dataAttr;var W=O.labelField;var X=O.valueField;var V=O.optgroupField;var R=O.optgroupLabelField;var S=O.optgroupValueField;var N=function(af,ad){var aa,ae,Y,ab;var Z=af.attr(Q);if(!Z){var ac=u.trim(af.val()||"");if(!O.allowEmptyOption&&!ac.length){return}Y=ac.split(O.delimiter);for(aa=0,ae=Y.length;aa<ae;aa++){ab={};ab[W]=Y[aa];ab[X]=Y[aa];ad.options.push(ab)}ad.items=Y}else{ad.options=JSON.parse(Z);for(aa=0,ae=ad.options.length;aa<ae;aa++){ad.items.push(ad.options[aa][X])}}};var U=function(af,ad){var ae,aa,ab,ai,ac=0;var aj=ad.options;var ah={};var Y=function(ak){var al=Q&&ak.attr(Q);if(typeof al==="string"&&al.length){return JSON.parse(al)}return null};var ag=function(ao,an){ao=u(ao);var am=x(ao.attr("value"));if(!am&&!O.allowEmptyOption){return}if(ah.hasOwnProperty(am)){if(an){var ak=ah[am][V];if(!ak){ah[am][V]=an}else{if(!u.isArray(ak)){ah[am][V]=[ak,an]}else{ak.push(an)}}}return}var al=Y(ao)||{};al[W]=al[W]||ao.text();al[X]=al[X]||am;al[V]=al[V]||an;ah[am]=al;aj.push(al);if(ao.is(":selected")){ad.items.push(am)}};var Z=function(al){var an,ap,ao,am,ak;al=u(al);ao=al.attr("label");if(ao){am=Y(al)||{};am[R]=ao;am[S]=ao;ad.optgroups.push(am)}ak=u("option",al);for(an=0,ap=ak.length;an<ap;an++){ag(ak[an],ao)}};ad.maxItems=af.attr("multiple")?null:1;ai=af.children();for(ae=0,aa=ai.length;ae<aa;ae++){ab=ai[ae].tagName.toLowerCase();if(ab==="optgroup"){Z(ai[ae])}else{if(ab==="option"){ag(ai[ae])}}}};return this.each(function(){if(this.selectize){return}var Y;var ac=u(this);var ab=this.tagName.toLowerCase();var aa=ac.attr("placeholder")||ac.attr("data-placeholder");if(!aa&&!O.allowEmptyOption){aa=ac.children('option[value=""]').text()}var Z={placeholder:aa,options:[],optgroups:[],items:[]};if(ab==="select"){U(ac,Z)}else{N(ac,Z)}Y=new c(ac,u.extend(true,{},P,Z,T))})};u.fn.selectize.defaults=c.defaults;u.fn.selectize.support={validity:B};c.define("drag_drop",function(O){if(!u.fn.sortable){throw new Error('The "drag_drop" plugin requires jQuery UI "sortable".')}if(this.settings.mode!=="multi"){return}var N=this;N.lock=(function(){var P=N.lock;return function(){var Q=N.$control.data("sortable");if(Q){Q.disable()}return P.apply(N,arguments)}})();N.unlock=(function(){var P=N.unlock;return function(){var Q=N.$control.data("sortable");if(Q){Q.enable()}return P.apply(N,arguments)}})();N.setup=(function(){var P=N.setup;return function(){P.apply(this,arguments);var Q=N.$control.sortable({items:"[data-value]",forcePlaceholderSize:true,disabled:N.isLocked,start:function(S,R){R.placeholder.css("width",R.helper.css("width"));Q.css({overflow:"visible"})},stop:function(){Q.css({overflow:"hidden"});var S=N.$activeItems?N.$activeItems.slice():null;var R=[];Q.children("[data-value]").each(function(){R.push(u(this).attr("data-value"))});N.setValue(R);N.setActiveItem(S)}})}})()});c.define("dropdown_header",function(O){var N=this;O=u.extend({title:"Untitled",headerClass:"selectize-dropdown-header",titleRowClass:"selectize-dropdown-header-title",labelClass:"selectize-dropdown-header-label",closeClass:"selectize-dropdown-header-close",html:function(P){return('<div class="'+P.headerClass+'"><div class="'+P.titleRowClass+'"><span class="'+P.labelClass+'">'+P.title+'</span><a href="javascript:void(0)" class="'+P.closeClass+'">&times;</a></div></div>')}},O);N.setup=(function(){var P=N.setup;return function(){P.apply(N,arguments);N.$dropdown_header=u(O.html(O));N.$dropdown.prepend(N.$dropdown_header)}})()});c.define("optgroup_columns",function(P){var O=this;P=u.extend({equalizeWidth:true,equalizeHeight:true},P);this.getAdjacentOption=function(U,T){var R=U.closest("[data-group]").find("[data-selectable]");var S=R.index(U)+T;return S>=0&&S<R.length?R.eq(S):u()};this.onKeyDown=(function(){var R=O.onKeyDown;return function(W){var U,V,S,T;if(this.isOpen&&(W.keyCode===o||W.keyCode===s)){O.ignoreHover=true;T=this.$activeOption.closest("[data-group]");U=T.find("[data-selectable]").index(this.$activeOption);if(W.keyCode===o){T=T.prev("[data-group]")}else{T=T.next("[data-group]")}S=T.find("[data-selectable]");V=S.eq(Math.min(S.length-1,U));if(V.length){this.setActiveOption(V)}return}return R.apply(this,arguments)}})();var N=function(){var T;var R=N.width;var S=document;if(typeof R==="undefined"){T=S.createElement("div");T.innerHTML='<div style="width:50px;height:50px;position:absolute;left:-50px;top:-50px;overflow:auto;"><div style="width:1px;height:100px;"></div></div>';T=T.firstChild;S.body.appendChild(T);R=N.width=T.offsetWidth-T.clientWidth;S.body.removeChild(T)}return R};var Q=function(){var S,X,R,T,W,V,U;U=u("[data-group]",O.$dropdown_content);X=U.length;if(!X||!O.$dropdown_content.width()){return}if(P.equalizeHeight){R=0;for(S=0;S<X;S++){R=Math.max(R,U.eq(S).height())}U.css({height:R})}if(P.equalizeWidth){V=O.$dropdown_content.innerWidth()-N();T=Math.round(V/X);U.css({width:T});if(X>1){W=V-T*(X-1);U.eq(X-1).css({width:W})}}};if(P.equalizeHeight||P.equalizeWidth){r.after(this,"positionDropdown",Q);r.after(this,"refreshOptions",Q)}});c.define("remove_button",function(P){if(this.settings.mode==="single"){return}P=u.extend({label:"&times;",title:"Remove",className:"remove",append:true},P);var O=this;var Q='<a href="javascript:void(0)" class="'+P.className+'" tabindex="-1" title="'+C(P.title)+'">'+P.label+"</a>";var N=function(R,S){var T=R.search(/(<\/[^>]+>\s*)$/);return R.substring(0,T)+S+R.substring(T)};this.setup=(function(){var R=O.setup;return function(){if(P.append){var S=O.settings.render.item;O.settings.render.item=function(T){return N(S.apply(this,arguments),Q)}}R.apply(this,arguments);this.$control.on("click","."+P.className,function(U){U.preventDefault();if(O.isLocked){return}var T=u(U.currentTarget).parent();O.setActiveItem(T);if(O.deleteSelection()){O.setCaret(O.items.length)}})}})()});c.define("restore_on_backspace",function(O){var N=this;O.text=O.text||function(P){return P[this.settings.labelField]};this.onKeyDown=(function(){var P=N.onKeyDown;return function(S){var Q,R;if(S.keyCode===n&&this.$control_input.val()===""&&!this.$activeItems.length){Q=this.caretPos-1;if(Q>=0&&Q<this.items.length){R=this.options[this.items[Q]];if(this.deleteSelection(S)){this.setTextboxValue(O.text.apply(this,[R]));this.refreshOptions(true)}S.preventDefault();return}}return P.apply(this,arguments)}})()});return c}));
##############################################
r-cran-shiny-1.5.0+dfsg/debian/tests/run-unit-test-7-if [ "$AUTOPKGTEST_TMP" = "" ] ; then
r-cran-shiny-1.5.0+dfsg/debian/tests/run-unit-test:8:    AUTOPKGTEST_TMP=`mktemp -d /tmp/${debname}-test.XXXXXX`
r-cran-shiny-1.5.0+dfsg/debian/tests/run-unit-test-9-    trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1143-#' logical values. For example, if you allow `NA` but not `NULL`, you
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1144:#' can use the condition `!is.null(input$foo)`, because `!is.null(NA)
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1145-#' == TRUE`.
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1155-#' automatically propagate to outputs that use the reactive expression. In
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1156:#' other words, if reactive expression `a` needs `input$x`, and two
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1157:#' outputs use `a` (and thus depend indirectly on `input$x`), it's
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1158:#' not necessary for the outputs to validate `input$x` explicitly, as long
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1159-#' as `a` does validate it.
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1250-#'
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1251:#' In this example, if `r()` is called and any of `input$a`,
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1252:#' `input$b`, and `rv$state` are `NULL`, `FALSE`, `""`,
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1253-#' etc., then the `req` call will trigger an error that propagates all the
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1265-#'
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1266:#' In this example, `req(input$plotType)` first checks that
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1267:#' `input$plotType` is truthy, and if so, returns it. This is a convenient
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1268-#' way to check for a value "inline" with its first use.
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1302-#'
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1303:#' `req(input$a != 0)`
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1304-#'
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1321-#' Note that this is always going to be the case if
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1322:#' this is used inside an output context (e.g. `output$txt <- ...`). It may
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1323-#' or may not be the case if it is used inside a non-output context (e.g.
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1324-#' [reactive()], [observe()] or [observeEvent()])
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1325:#' --- depending on whether or not there is an `output$...` that is triggered
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1326-#' as a result of those calls. See the examples below for concrete scenarios.
##############################################
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1346-#'
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R:1347:#'       ## to require that the user types something, use: `req(input$data)`
r-cran-shiny-1.5.0+dfsg/.pc/fix_utils_resolve_for_debian.patch/R/utils.R-1348-#'       ## but better: require that input$data is valid and leave the last