toodles (empty) → 0.1.0.0
raw patch · 13 files changed
+12166/−0 lines, 13 filesdep +MissingHdep +aesondep +basesetup-changedbinary-added
Dependencies added: MissingH, aeson, base, blaze-html, bytestring, cmdargs, directory, filepath, http-types, megaparsec, regex-posix, servant, servant-blaze, servant-server, strict, text, transformers, wai, warp, yaml
Files
- README.md +91/−0
- Setup.hs +2/−0
- app/Main.hs +580/−0
- toodles.cabal +64/−0
- web/css/bulma.min.css +1/−0
- web/css/font-awesome.min.css +4/−0
- web/css/toodles.css +130/−0
- web/fonts/fontawesome-webfont.woff binary
- web/fonts/fontawesome-webfont.woff2 binary
- web/html/index.html +147/−0
- web/js/app.js +198/−0
- web/js/jquery-3.3.1.min.js +2/−0
- web/js/vue.js +10947/−0
+ README.md view
@@ -0,0 +1,91 @@+# Toodles++[](https://travis-ci.org/aviaviavi/toodles)++Toodles scrapes your entire repository for TODO entries and organizes them so+you can manage your project directly from the code. View, filter, sort, and then+edit your TODO's with an easy to use web application. When you're done, commit+and push your changes and share changes with your team!++++### TODO details++Specify details about your TODO's so that you can filter and sort them with+ease! Specify details within parenthasis and separate with the `|` delimeter.++```python+# TODO(assignee|p=1|keys=vals|#tags) +```++#### Priority++The key `p=<integer>` will be interpreted as a priority number++#### KeyVals++Use arbitrary key value pairs `<key>=<value>|<key2>=<value2>|...` and design any+organization scheme you wish! A good use for this is to enter dates of deadlines+for TODO's that you can sort on in Toodles++#### Tags++A detail starting with `#`, eg `#bug|#techdebt|#database|...` will be interpreted as+a tag, which can be used to label and group your TODO's.++#### Assign++Assign your TODO's to someone. Any plain word that will be interpreted as an assignee.++```python+# TODO(bob) - something we need to do later+```++### Per Project Configuration++You can configure toodles by putting a `.toodles.yaml` file in the root of your+project. See this repo's `.toodles.yaml` for the full configuration spec.++Currently via config you can:++- Set files to ignore via a list of regular expressions++### Scanned Languages++Submit a PR if you'd like a language to be added. There will eventually be+support for this to be user configurable++- C/C+++- Elixir+- Erlang+- Go+- Haskell+- Java+- Javascript+- Objective-C+- Protobuf+- Python+- Ruby+- Rust+- Scala+- Shell / Bash+- Swift+- Typescript+- Yaml+++### Current Limitations++Due to the parser's current simplicity, Toodles won't see TODO's in multiline initiated comment. For instance in javascript++```javascript+// TODO(#bug) this would be parsed++/*++ TODO(#bug) this will _not_ be picked up by toodles++*/+```++
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ app/Main.hs view
@@ -0,0 +1,580 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE DeriveDataTypeable #-}+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE TypeOperators #-}++-- TODO(avi|p=3|#techdebt) - break this into modules+module Main where++import qualified Control.Exception as E+import Control.Monad+import Control.Monad.IO.Class+import Data.Aeson+import qualified Data.ByteString.Lazy.Char8 as B8S+import Data.IORef+import Data.List+import Data.Maybe+import Data.Either+import Data.Monoid+import Data.Proxy+import Data.String.Utils+import qualified Data.Text as T+import Data.Version (showVersion)+import Data.Void+import Debug.Trace+import GHC.Generics+import Network.HTTP.Types (status200)+import Network.Wai+import Network.Wai.Handler.Warp+import Paths_toodles (version)+import Servant+import Servant.HTML.Blaze+import System.Console.CmdArgs+import System.IO.HVFS+import System.Directory+import qualified System.IO.Strict as SIO+import System.Path+import System.Path.NameManip+import qualified Text.Blaze.Html5 as BZ+import Text.Megaparsec+import Text.Megaparsec.Char+import qualified Text.Megaparsec.Char.Lexer as L+import Text.Printf+import Text.Read+import Text.Regex.Posix+import Paths_toodles+import qualified Data.Yaml as Y++type LineNumber = Integer++data TodoEntry+ = TodoEntryHead { id :: Integer+ , body :: [T.Text]+ , assignee :: Maybe T.Text+ , sourceFile :: FilePath+ , lineNumber :: LineNumber+ , priority :: Maybe Integer+ , customAttributes :: [(T.Text, T.Text)]+ , tags :: [T.Text]+ , leadingText :: T.Text }+ | TodoBodyLine T.Text+ deriving (Show, Generic)++data TodoListResult = TodoListResult+ { todos :: [TodoEntry]+ , message :: T.Text+ } deriving (Show, Generic)++data DeleteTodoRequest = DeleteTodoRequest+ { ids :: [Integer]+ } deriving (Show, Generic)++data EditTodoRequest = EditTodoRequest+ { editIds :: [Integer]+ , setAssignee :: Maybe T.Text+ , addTags :: [T.Text]+ , setPriority :: Maybe Integer+ } deriving (Show, Generic)++data ToodlesConfig = ToodlesConfig {+ ignore :: [FilePath]+ } deriving (Show, Generic)++instance FromJSON TodoEntry++instance ToJSON TodoEntry++instance FromJSON TodoListResult++instance ToJSON TodoListResult++instance FromJSON DeleteTodoRequest++instance ToJSON DeleteTodoRequest++instance FromJSON EditTodoRequest++instance ToJSON EditTodoRequest++instance FromJSON ToodlesConfig++type ToodlesAPI =+ "todos" :> QueryFlag "recompute" :> Get '[ JSON] TodoListResult :<|>+ "todos" :> "delete" :> ReqBody '[ JSON] DeleteTodoRequest :> Post '[ JSON] T.Text :<|>+ "todos" :> "edit" :> ReqBody '[ JSON] EditTodoRequest :> Post '[ JSON] T.Text :<|>+ "static" :> Raw :<|>+ "source_file" :> Capture "id" Integer :> Get '[ HTML] BZ.Html :<|>+ CaptureAll "anything-else" T.Text :> Get '[HTML] BZ.Html++server :: ToodlesState -> Server ToodlesAPI+server s =+ liftIO . getFullSearchResults s :<|>+ deleteTodos s :<|>+ editTodos s :<|>+ serveDirectoryFileServer (dataPath s) :<|>+ showRawFile s :<|>+ root s++data ToodlesState = ToodlesState+ { results :: IORef TodoListResult,+ dataPath :: FilePath+ }++toodlesAPI :: Proxy ToodlesAPI+toodlesAPI = Proxy++slice from to xs = take (to - from + 1) (drop from xs)++doUntilNull :: ([a] -> IO [a]) -> [a] -> IO ()+doUntilNull f xs = do+ result <- f xs+ if null result+ then return ()+ else doUntilNull f result++removeTodoFromCode :: MonadIO m => TodoEntry -> m ()+removeTodoFromCode = updateTodoLinesInFile (const [])++-- | Given a function to emit new lines for a given todo, write that update in+-- place of the current todo lines+updateTodoLinesInFile ::+ MonadIO m => (TodoEntry -> [T.Text]) -> TodoEntry -> m ()+updateTodoLinesInFile f todo = do+ let startIndex = lineNumber todo - 1+ newLines = map T.unpack $ f todo+ fileLines <- liftIO $ lines <$> (SIO.readFile $ sourceFile todo)+ let updatedLines =+ (slice 0 (fromIntegral $ startIndex - 1) fileLines) ++ newLines +++ (slice+ ((fromIntegral startIndex) + (length $ body todo))+ (length fileLines - 1)+ fileLines)+ liftIO $ writeFile (sourceFile todo) $ unlines updatedLines++removeAndAdjust :: [TodoEntry] -> IO [TodoEntry]+removeAndAdjust deleteList =+ if null deleteList+ then return []+ else let deleteItem = head deleteList+ rest = tail deleteList+ in do _ <- removeTodoFromCode deleteItem+ return $+ map+ (\t ->+ if (sourceFile t == sourceFile deleteItem) &&+ (lineNumber t > lineNumber deleteItem)+ then t+ { lineNumber =+ (lineNumber t) -+ (fromIntegral . length $ body deleteItem)+ }+ else t)+ rest++deleteTodos :: ToodlesState -> DeleteTodoRequest -> Handler T.Text+deleteTodos (ToodlesState ref _) req = do+ refVal@(TodoListResult r _) <- liftIO $ readIORef ref+ let toDelete = filter (\t -> Main.id t `elem` (ids req)) r+ liftIO $ doUntilNull removeAndAdjust toDelete+ let updeatedResults =+ refVal+ { todos =+ (filter (\t -> not $ Main.id t `elem` (map Main.id toDelete)) r)+ }+ _ <-+ liftIO $ atomicModifyIORef' ref (const (updeatedResults, updeatedResults))+ return $ T.pack "{}"++editTodos :: ToodlesState -> EditTodoRequest -> Handler T.Text+editTodos (ToodlesState ref _) req = do+ refVal@(TodoListResult r _) <- liftIO $ readIORef ref+ let editedList =+ map+ (\t ->+ if willEditTodo req t+ then (editTodo req t)+ else t)+ r+ editedFilteredList = filter (willEditTodo req) editedList+ _ <- mapM_ recordUpdates editedFilteredList+ return $ T.pack "{}"+ where+ willEditTodo :: EditTodoRequest -> TodoEntry -> Bool+ willEditTodo req entry = Main.id entry `elem` editIds req++ editTodo :: EditTodoRequest -> TodoEntry -> TodoEntry+ editTodo req entry =+ let newAssignee = if ((isJust $ setAssignee req) && (not . T.null . fromJust $ setAssignee req)) then setAssignee req else assignee entry+ newPriority = if isJust (setPriority req) then setPriority req else priority entry in++ entry {assignee = newAssignee, tags = tags entry ++ (addTags req), priority = newPriority}++ recordUpdates :: MonadIO m => TodoEntry -> m ()+ recordUpdates t = void $ updateTodoLinesInFile renderTodo t++renderTodo :: TodoEntry -> [T.Text]+renderTodo t =+ let comment =+ fromJust $ lookup ("." <> getExtension (sourceFile t)) fileTypeToComment+ detail =+ (T.pack "TODO(") <>+ (T.pack $+ Data.String.Utils.join+ "|"+ (map T.unpack $ [fromMaybe "" $ assignee t] +++ listIfNotNull (fmap (\p -> (T.pack (maybe "" ((\n -> "p=" ++ n) . show) p))) priority t) +++ (tags t) +++ (map (\a -> fst a <> "=" <> snd a)) (customAttributes t))) <>+ (T.pack ") ")+ fullNoComments = mapHead (\l -> detail <> "- " <> l) $ body t+ commented = map (\l -> comment <> " " <> l) fullNoComments in+ mapHead (\l -> (leadingText t) <> l) $+ mapInit (\l -> (foldl (<>) "" [" " | _ <- [1..(T.length $ leadingText t)]]) <> l) commented++mapHead :: (a -> a) -> [a] -> [a]+mapHead f (x:xs) = [f x] ++ xs+mapHead _ xs = xs++mapInit :: (a -> a) -> [a] -> [a]+mapInit f (x:xs) = [x] ++ (map f xs)+mapInit _ x = x++listIfNotNull "" = []+listIfNotNull s = [s]++root :: ToodlesState -> [T.Text] -> Handler BZ.Html+root _ path =+ if null path then+ liftIO $ BZ.preEscapedToHtml <$> readFile "./web/html/index.html"+ else throwError $ err404 { errBody = "Not found" }++testroot :: ToodlesState -> [T.Text] -> Handler T.Text+testroot _ _ =+ return "Hello"++app :: ToodlesState -> Application+app s = (serve toodlesAPI) $ server s++isEntryHead :: TodoEntry -> Bool+isEntryHead (TodoEntryHead _ _ _ _ _ _ _ _ _) = True+isEntryHead _ = False++isBodyLine :: TodoEntry -> Bool+isBodyLine (TodoBodyLine _) = True+isBodyLine _ = False++combineTodo :: TodoEntry -> TodoEntry -> TodoEntry+combineTodo (TodoEntryHead i b a p n priority attrs tags leadingText) (TodoBodyLine l) =+ TodoEntryHead i (b ++ [l]) a p n priority attrs tags leadingText+combineTodo _ _ = error "Can't combine todoEntry of these types"++data SourceFile = SourceFile+ { fullPath :: FilePath+ , sourceLines :: [T.Text]+ } deriving (Show)++newtype AssigneeFilterRegex =+ AssigneeFilterRegex T.Text+ deriving (Show, Data, Eq)++data SearchFilter =+ AssigneeFilter AssigneeFilterRegex+ deriving (Show, Data, Eq)++data ToodlesArgs = ToodlesArgs+ { directory :: FilePath+ , assignee_search :: Maybe SearchFilter+ , limit_results :: Int+ , port :: Maybe Int+ } deriving (Show, Data, Typeable, Eq)++argParser :: ToodlesArgs+argParser =+ ToodlesArgs+ { directory = def &= typFile &= help "Root directory of your project"+ , assignee_search = def &= help "Filter todo's by assignee"+ , limit_results = def &= help "Limit number of search results"+ , port = def &= help "Run server on port"+ } &=+ summary ("toodles " ++ showVersion version) &=+ program "toodles" &=+ verbosity &=+ help "Manage TODO's directly from your codebase"++fileTypeToComment :: [(T.Text, T.Text)]+fileTypeToComment =+ [ (".c", "//")+ , (".clj", ";;")+ , (".cpp", "//")+ , (".ex", "#")+ , (".erl", "%")+ , (".go", "//")+ , (".hs", "--")+ , (".java", "//")+ , (".js", "//")+ , (".m", "//")+ , (".proto", "//")+ , (".py", "#")+ , (".rb", "#")+ , (".rs", "//")+ , (".scala", "//")+ , (".sh", "#")+ , (".swift", "///")+ , (".ts", "//")+ , (".yaml", "#")+ ]++unkownMarker :: T.Text+unkownMarker = "UNKNOWN-DELIMETER-UNKNOWN-DELIMETER-UNKNOWN-DELIMETER"++getCommentForFileType :: T.Text -> T.Text+getCommentForFileType extension =+ fromMaybe unkownMarker $ lookup adjustedExtension fileTypeToComment+ where+ adjustedExtension =+ if T.isPrefixOf "." extension+ then extension+ else "." <> extension++type Parser = Parsec Void T.Text++lexeme :: Parser a -> Parser a+lexeme = L.lexeme space++symbol :: T.Text -> Parser T.Text+symbol = L.symbol space++parseComment :: T.Text -> Parser TodoEntry+parseComment extension+ = do+ _ <- manyTill anyChar (symbol $ getCommentForFileType extension)+ b <- many anyChar+ return . TodoBodyLine $ T.pack b++integer :: Parser Integer+integer = lexeme $ L.signed space L.decimal++parsePriority :: Parser Integer+parsePriority = do+ _ <- symbol "p="+ integer++parseAssignee :: Parser String+parseAssignee = many (noneOf [')', '|', '='])++-- TODO(avi|p=3|#techdebt) - fix and type this better+parseDetails ::+ T.Text -> (Maybe T.Text, Maybe T.Text, [(T.Text, T.Text)], [T.Text])+parseDetails toParse =+ let tokens = T.splitOn "|" toParse+ assigneeTo =+ find+ (\t ->+ (not (T.null t)) &&+ (not (T.isInfixOf "=" t) && (not (T.isPrefixOf "#" t))))+ tokens+ allDetails =+ map (\[a, b] -> (a, b)) $ filter (\t -> length t == 2) $+ map (T.splitOn "=") tokens+ priority = snd <$> (find (\t -> (T.strip $ fst t) == "p") allDetails)+ filteredDetails = filter (\t -> (T.strip $ fst t) /= "p") allDetails+ tags = filter (\t -> T.isPrefixOf "#" t) tokens+ in (assigneeTo, priority, filteredDetails, tags)++inParens = between (symbol "(") (symbol ")")++stringToMaybe t =+ if T.null t+ then Nothing+ else Just t++fst4 (x, _, _, _) = x++snd4 (_, x, _, _) = x++thd4 (_, _, x, _) = x++fth4 (_, _, _, x) = x++prefixParserForFileType extension =+ let comment = symbol . getCommentForFileType $ extension+ orgMode =+ (try $ symbol "****") <|> (try $ symbol "***") <|> (try $ symbol "**") <|>+ (try $ symbol "*") <|>+ (symbol "-")+ in if extension == "org"+ then orgMode+ else comment++parseTodoEntryHead :: FilePath -> LineNumber -> Parser TodoEntry+parseTodoEntryHead path lineNum = do+ leadingText <- manyTill anyChar (prefixParserForFileType $ getExtension path)+ _ <- symbol "TODO"+ details <- optional $ try (inParens $ many (noneOf [')', '(']))+ let parsedDetails = parseDetails . T.pack <$> details+ priority = (readMaybe . T.unpack) =<< (snd4 =<< parsedDetails)+ otherDetails = maybe [] thd4 parsedDetails+ tags = maybe [] fth4 parsedDetails+ _ <- optional $ symbol "-"+ _ <- optional $ symbol ":"+ b <- many anyChar+ return $+ TodoEntryHead+ 0+ [T.pack b]+ (stringToMaybe . T.strip $ fromMaybe "" (fst4 =<< parsedDetails))+ path+ lineNum+ priority+ otherDetails+ tags+ (T.pack leadingText)++parseTodo :: FilePath -> LineNumber -> Parser TodoEntry+parseTodo path lineNum =+ try (parseTodoEntryHead path lineNum) <|> (parseComment $ getExtension path)++getAllFiles :: ToodlesConfig -> FilePath -> IO [SourceFile]+getAllFiles config path =+ E.catch+ (do putStrLn $ printf "Running toodles for path: %s" path+ files <- recurseDir SystemFS path+ let validFiles = filter (isValidFile config) files+ -- TODO(avi|p=3|#techdebt) - make sure it's a file first+ mapM+ (\f ->+ SourceFile f . (map T.pack . lines) <$>+ E.catch+ (SIO.readFile f)+ (\(e :: E.IOException) -> print e >> return ""))+ validFiles)+ (\(e :: E.IOException) ->+ putStrLn ("Error reading " ++ path ++ ": " ++ show e) >> return [])++fileHasValidExtension :: FilePath -> Bool+fileHasValidExtension path =+ any (\ext -> ext `T.isSuffixOf` T.pack path) (map fst fileTypeToComment)++ignoreFile :: ToodlesConfig -> FilePath -> Bool+ignoreFile (ToodlesConfig ignoredPaths) file =+ let p = T.pack file+ in T.isInfixOf "node_modules" p || T.isSuffixOf "pb.go" p ||+ T.isSuffixOf "_pb2.py" p ||+ any (\p -> file =~ p) ignoredPaths++getExtension :: FilePath -> T.Text+getExtension path = last $ T.splitOn "." (T.pack path)++isValidFile :: ToodlesConfig -> FilePath -> Bool+isValidFile config f =+ fileHasValidExtension f && not (ignoreFile config f)++runTodoParser :: SourceFile -> [TodoEntry]+runTodoParser (SourceFile path ls) =+ let parsedTodoLines =+ map+ (\(lineNum, lineText) -> parseMaybe (parseTodo path lineNum) lineText)+ (zip [1 ..] ls)+ groupedTodos = foldl foldTodoHelper ([], False) parsedTodoLines+ in fst groupedTodos++foldTodoHelper :: ([TodoEntry], Bool) -> Maybe TodoEntry -> ([TodoEntry], Bool)+foldTodoHelper (todos :: [TodoEntry], currentlyBuildingTodoLines :: Bool) maybeTodo+ | isNothing maybeTodo = (todos, False)+ | isEntryHead $ fromJust maybeTodo = (todos ++ [fromJust maybeTodo], True)+ | isBodyLine (fromJust maybeTodo) && currentlyBuildingTodoLines =+ (init todos ++ [combineTodo (last todos) (fromJust maybeTodo)], True)+ | otherwise = (todos, False)++prettyFormat :: TodoEntry -> String+prettyFormat (TodoEntryHead _ l a p n priority _ _ _) =+ printf+ "Assignee: %s\n%s%s:%d\n%s"+ (fromMaybe "None" a)+ (maybe "" (\x -> "Priority: " ++ show x ++ "\n") priority)+ p+ n+ (unlines $ map T.unpack l)+prettyFormat (TodoBodyLine _) = error "Invalid type for prettyFormat"++filterSearch :: Maybe SearchFilter -> (TodoEntry -> Bool)+filterSearch Nothing = const True+filterSearch (Just (AssigneeFilter (AssigneeFilterRegex query))) =+ \entry -> fromMaybe "" (assignee entry) == query++limitSearch :: [TodoEntry] -> Int -> [TodoEntry]+limitSearch results limit =+ if limit == 0+ then results+ else take limit results++runFullSearch :: ToodlesArgs -> IO TodoListResult+runFullSearch userArgs =+ let projectRoot = directory userArgs+ in do+ configExists <- doesFileExist $ projectRoot ++ "/.toodles.yaml"+ config <- if configExists+ then eitherDecode' . B8S.pack <$> readFile (projectRoot ++ "/.toodles.yaml")+ else return . Right $ ToodlesConfig []+ allFiles <- getAllFiles (fromRight (ToodlesConfig []) config) projectRoot+ let parsedTodos = concatMap runTodoParser allFiles+ filteredTodos =+ filter (filterSearch (assignee_search userArgs)) parsedTodos+ results = limitSearch filteredTodos $ limit_results userArgs+ indexedResults =+ map (\(i, r) -> r {Main.id = i}) $ zip [1 ..] results+ return $ TodoListResult indexedResults ""++getFullSearchResults :: ToodlesState -> Bool -> IO TodoListResult+getFullSearchResults (ToodlesState ref _) recompute =+ if recompute+ then do+ putStrLn "refreshing todo's"+ userArgs <- cmdArgs argParser >>= setAbsolutePath+ sResults <- runFullSearch userArgs+ writtenResults <- atomicModifyIORef' ref (const (sResults, sResults))+ return writtenResults+ else putStrLn "cached read" >> readIORef ref++showRawFile :: ToodlesState -> Integer -> Handler BZ.Html+showRawFile (ToodlesState ref _) entryId = do+ (TodoListResult r _) <- liftIO $ readIORef ref+ let entry = find (\t -> Main.id t == entryId) r+ liftIO $+ maybe+ (return "Not found")+ (\e -> addAnchors <$> readFile (sourceFile e))+ entry++addAnchors :: String -> BZ.Html+addAnchors s =+ let sourceLines = zip [1 ..] $ lines s+ in BZ.preEscapedToHtml $+ (unlines $+ map+ (\(i, l) -> printf "<pre><a name=\"line-%s\">%s</a></pre>" (show i) l)+ sourceLines)++setAbsolutePath :: ToodlesArgs -> IO ToodlesArgs+setAbsolutePath args =+ let pathOrDefault =+ if T.null . T.pack $ directory args+ then "."+ else directory args+ in do absolute <- normalise_path <$> absolute_path pathOrDefault+ return $ args {directory = absolute}++main :: IO ()+main = do+ userArgs <- cmdArgs argParser >>= setAbsolutePath+ sResults <- runFullSearch userArgs+ if isJust $ port userArgs+ then do+ let webPort = fromJust $ port userArgs+ ref <- newIORef sResults+ dataDir <- (++ "/web") <$> getDataDir+ putStrLn $ "serving on " ++ show webPort+ run webPort $ app $ ToodlesState ref dataDir+ else mapM_ (putStrLn . prettyFormat) $ todos sResults
+ toodles.cabal view
@@ -0,0 +1,64 @@+-- This file has been generated from package.yaml by hpack version 0.28.2.+--+-- see: https://github.com/sol/hpack+--+-- hash: 275961bd1707bc89a364661abf60a4d52d22a05955e6b2e28195e97c46672294++name: toodles+version: 0.1.0.0+synopsis: Manage the TODO entries in your code+description: See the README on GitHub at <https://github.com/aviaviavi/toodles#readme>+category: Project Management+homepage: https://github.com/aviaviavi/toodles#readme+bug-reports: https://github.com/aviaviavi/toodles/issues+author: Avi Press+maintainer: mail@avi.press+copyright: 2018 Avi Press+license: MIT+build-type: Simple+cabal-version: >= 1.10+extra-source-files:+ README.md+ web/css/bulma.min.css+ web/css/font-awesome.min.css+ web/css/toodles.css+ web/fonts/fontawesome-webfont.woff+ web/fonts/fontawesome-webfont.woff2+ web/html/index.html+ web/js/app.js+ web/js/jquery-3.3.1.min.js+ web/js/vue.js++source-repository head+ type: git+ location: https://github.com/aviaviavi/toodles++executable toodles+ main-is: Main.hs+ other-modules:+ Paths_toodles+ hs-source-dirs:+ app+ ghc-options: -threaded -rtsopts -with-rtsopts=-N+ build-depends:+ MissingH+ , aeson+ , base >=4.7 && <5+ , blaze-html+ , bytestring+ , cmdargs+ , directory+ , filepath+ , http-types+ , megaparsec+ , regex-posix+ , servant+ , servant-blaze+ , servant-server+ , strict+ , text+ , transformers+ , wai+ , warp+ , yaml+ default-language: Haskell2010
+ web/css/bulma.min.css view
@@ -0,0 +1,1 @@+/*! bulma.io v0.7.1 | MIT License | github.com/jgthms/bulma */@-webkit-keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes spinAround{from{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.breadcrumb,.button,.delete,.file,.is-unselectable,.modal-close,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.tabs{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid transparent;border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:.625em;margin-top:-.4375em;pointer-events:none;position:absolute;top:50%;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-transform-origin:center;transform-origin:center;width:.625em}.block:not(:last-child),.box:not(:last-child),.breadcrumb:not(:last-child),.content:not(:last-child),.highlight:not(:last-child),.level:not(:last-child),.message:not(:last-child),.notification:not(:last-child),.progress:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.tabs:not(:last-child),.title:not(:last-child){margin-bottom:1.5rem}.delete,.modal-close{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,.2);border:none;border-radius:290486px;cursor:pointer;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:0;position:relative;vertical-align:top;width:20px}.delete::after,.delete::before,.modal-close::after,.modal-close::before{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.delete::before,.modal-close::before{height:2px;width:50%}.delete::after,.modal-close::after{height:50%;width:2px}.delete:focus,.delete:hover,.modal-close:focus,.modal-close:hover{background-color:rgba(10,10,10,.3)}.delete:active,.modal-close:active{background-color:rgba(10,10,10,.4)}.is-small.delete,.is-small.modal-close{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.delete,.is-medium.modal-close{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.delete,.is-large.modal-close{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.button.is-loading::after,.control.is-loading::after,.loader,.select.is-loading::after{-webkit-animation:spinAround .5s infinite linear;animation:spinAround .5s infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.image.is-16by9 img,.image.is-1by1 img,.image.is-1by2 img,.image.is-1by3 img,.image.is-2by1 img,.image.is-2by3 img,.image.is-3by1 img,.image.is-3by2 img,.image.is-3by4 img,.image.is-3by5 img,.image.is-4by3 img,.image.is-4by5 img,.image.is-5by3 img,.image.is-5by4 img,.image.is-9by16 img,.image.is-square img,.is-overlay,.modal,.modal-background{bottom:0;left:0;position:absolute;right:0;top:0}.button,.file-cta,.file-name,.input,.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous,.select select,.textarea{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(.375em - 1px);padding-left:calc(.625em - 1px);padding-right:calc(.625em - 1px);padding-top:calc(.375em - 1px);position:relative;vertical-align:top}.button:active,.button:focus,.file-cta:active,.file-cta:focus,.file-name:active,.file-name:focus,.input:active,.input:focus,.is-active.button,.is-active.file-cta,.is-active.file-name,.is-active.input,.is-active.pagination-ellipsis,.is-active.pagination-link,.is-active.pagination-next,.is-active.pagination-previous,.is-active.textarea,.is-focused.button,.is-focused.file-cta,.is-focused.file-name,.is-focused.input,.is-focused.pagination-ellipsis,.is-focused.pagination-link,.is-focused.pagination-next,.is-focused.pagination-previous,.is-focused.textarea,.pagination-ellipsis:active,.pagination-ellipsis:focus,.pagination-link:active,.pagination-link:focus,.pagination-next:active,.pagination-next:focus,.pagination-previous:active,.pagination-previous:focus,.select select.is-active,.select select.is-focused,.select select:active,.select select:focus,.textarea:active,.textarea:focus{outline:0}.button[disabled],.file-cta[disabled],.file-name[disabled],.input[disabled],.pagination-ellipsis[disabled],.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled],.select select[disabled],.textarea[disabled]{cursor:not-allowed}/*! minireset.css v0.0.3 | MIT License | github.com/jgthms/minireset.css */blockquote,body,dd,dl,dt,fieldset,figure,h1,h2,h3,h4,h5,h6,hr,html,iframe,legend,li,ol,p,pre,textarea,ul{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,::after,::before{box-sizing:inherit}audio,img,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0;text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:hidden;overflow-y:scroll;text-rendering:optimizeLegibility;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:BlinkMacSystemFont,-apple-system,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,"Fira Sans","Droid Sans","Helvetica Neue",Helvetica,Arial,sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:monospace}body{color:#4a4a4a;font-size:1rem;font-weight:400;line-height:1.5}a{color:#3273dc;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:#f5f5f5;color:#ff3860;font-size:.875em;font-weight:400;padding:.25em .5em .25em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type=checkbox],input[type=radio]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#363636;font-weight:700}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#4a4a4a;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{text-align:left;vertical-align:top}table th{color:#363636}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left!important}.is-pulled-right{float:right!important}.is-clipped{overflow:hidden!important}.is-size-1{font-size:3rem!important}.is-size-2{font-size:2.5rem!important}.is-size-3{font-size:2rem!important}.is-size-4{font-size:1.5rem!important}.is-size-5{font-size:1.25rem!important}.is-size-6{font-size:1rem!important}.is-size-7{font-size:.75rem!important}@media screen and (max-width:768px){.is-size-1-mobile{font-size:3rem!important}.is-size-2-mobile{font-size:2.5rem!important}.is-size-3-mobile{font-size:2rem!important}.is-size-4-mobile{font-size:1.5rem!important}.is-size-5-mobile{font-size:1.25rem!important}.is-size-6-mobile{font-size:1rem!important}.is-size-7-mobile{font-size:.75rem!important}}@media screen and (min-width:769px),print{.is-size-1-tablet{font-size:3rem!important}.is-size-2-tablet{font-size:2.5rem!important}.is-size-3-tablet{font-size:2rem!important}.is-size-4-tablet{font-size:1.5rem!important}.is-size-5-tablet{font-size:1.25rem!important}.is-size-6-tablet{font-size:1rem!important}.is-size-7-tablet{font-size:.75rem!important}}@media screen and (max-width:1087px){.is-size-1-touch{font-size:3rem!important}.is-size-2-touch{font-size:2.5rem!important}.is-size-3-touch{font-size:2rem!important}.is-size-4-touch{font-size:1.5rem!important}.is-size-5-touch{font-size:1.25rem!important}.is-size-6-touch{font-size:1rem!important}.is-size-7-touch{font-size:.75rem!important}}@media screen and (min-width:1088px){.is-size-1-desktop{font-size:3rem!important}.is-size-2-desktop{font-size:2.5rem!important}.is-size-3-desktop{font-size:2rem!important}.is-size-4-desktop{font-size:1.5rem!important}.is-size-5-desktop{font-size:1.25rem!important}.is-size-6-desktop{font-size:1rem!important}.is-size-7-desktop{font-size:.75rem!important}}@media screen and (min-width:1280px){.is-size-1-widescreen{font-size:3rem!important}.is-size-2-widescreen{font-size:2.5rem!important}.is-size-3-widescreen{font-size:2rem!important}.is-size-4-widescreen{font-size:1.5rem!important}.is-size-5-widescreen{font-size:1.25rem!important}.is-size-6-widescreen{font-size:1rem!important}.is-size-7-widescreen{font-size:.75rem!important}}@media screen and (min-width:1472px){.is-size-1-fullhd{font-size:3rem!important}.is-size-2-fullhd{font-size:2.5rem!important}.is-size-3-fullhd{font-size:2rem!important}.is-size-4-fullhd{font-size:1.5rem!important}.is-size-5-fullhd{font-size:1.25rem!important}.is-size-6-fullhd{font-size:1rem!important}.is-size-7-fullhd{font-size:.75rem!important}}.has-text-centered{text-align:center!important}.has-text-justified{text-align:justify!important}.has-text-left{text-align:left!important}.has-text-right{text-align:right!important}@media screen and (max-width:768px){.has-text-centered-mobile{text-align:center!important}}@media screen and (min-width:769px),print{.has-text-centered-tablet{text-align:center!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-centered-tablet-only{text-align:center!important}}@media screen and (max-width:1087px){.has-text-centered-touch{text-align:center!important}}@media screen and (min-width:1088px){.has-text-centered-desktop{text-align:center!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-centered-desktop-only{text-align:center!important}}@media screen and (min-width:1280px){.has-text-centered-widescreen{text-align:center!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-centered-widescreen-only{text-align:center!important}}@media screen and (min-width:1472px){.has-text-centered-fullhd{text-align:center!important}}@media screen and (max-width:768px){.has-text-justified-mobile{text-align:justify!important}}@media screen and (min-width:769px),print{.has-text-justified-tablet{text-align:justify!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-justified-tablet-only{text-align:justify!important}}@media screen and (max-width:1087px){.has-text-justified-touch{text-align:justify!important}}@media screen and (min-width:1088px){.has-text-justified-desktop{text-align:justify!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-justified-desktop-only{text-align:justify!important}}@media screen and (min-width:1280px){.has-text-justified-widescreen{text-align:justify!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-justified-widescreen-only{text-align:justify!important}}@media screen and (min-width:1472px){.has-text-justified-fullhd{text-align:justify!important}}@media screen and (max-width:768px){.has-text-left-mobile{text-align:left!important}}@media screen and (min-width:769px),print{.has-text-left-tablet{text-align:left!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-left-tablet-only{text-align:left!important}}@media screen and (max-width:1087px){.has-text-left-touch{text-align:left!important}}@media screen and (min-width:1088px){.has-text-left-desktop{text-align:left!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-left-desktop-only{text-align:left!important}}@media screen and (min-width:1280px){.has-text-left-widescreen{text-align:left!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-left-widescreen-only{text-align:left!important}}@media screen and (min-width:1472px){.has-text-left-fullhd{text-align:left!important}}@media screen and (max-width:768px){.has-text-right-mobile{text-align:right!important}}@media screen and (min-width:769px),print{.has-text-right-tablet{text-align:right!important}}@media screen and (min-width:769px) and (max-width:1087px){.has-text-right-tablet-only{text-align:right!important}}@media screen and (max-width:1087px){.has-text-right-touch{text-align:right!important}}@media screen and (min-width:1088px){.has-text-right-desktop{text-align:right!important}}@media screen and (min-width:1088px) and (max-width:1279px){.has-text-right-desktop-only{text-align:right!important}}@media screen and (min-width:1280px){.has-text-right-widescreen{text-align:right!important}}@media screen and (min-width:1280px) and (max-width:1471px){.has-text-right-widescreen-only{text-align:right!important}}@media screen and (min-width:1472px){.has-text-right-fullhd{text-align:right!important}}.is-capitalized{text-transform:capitalize!important}.is-lowercase{text-transform:lowercase!important}.is-uppercase{text-transform:uppercase!important}.is-italic{font-style:italic!important}.has-text-white{color:#fff!important}a.has-text-white:focus,a.has-text-white:hover{color:#e6e6e6!important}.has-background-white{background-color:#fff!important}.has-text-black{color:#0a0a0a!important}a.has-text-black:focus,a.has-text-black:hover{color:#000!important}.has-background-black{background-color:#0a0a0a!important}.has-text-light{color:#f5f5f5!important}a.has-text-light:focus,a.has-text-light:hover{color:#dbdbdb!important}.has-background-light{background-color:#f5f5f5!important}.has-text-dark{color:#363636!important}a.has-text-dark:focus,a.has-text-dark:hover{color:#1c1c1c!important}.has-background-dark{background-color:#363636!important}.has-text-primary{color:#00d1b2!important}a.has-text-primary:focus,a.has-text-primary:hover{color:#009e86!important}.has-background-primary{background-color:#00d1b2!important}.has-text-link{color:#3273dc!important}a.has-text-link:focus,a.has-text-link:hover{color:#205bbc!important}.has-background-link{background-color:#3273dc!important}.has-text-info{color:#209cee!important}a.has-text-info:focus,a.has-text-info:hover{color:#0f81cc!important}.has-background-info{background-color:#209cee!important}.has-text-success{color:#23d160!important}a.has-text-success:focus,a.has-text-success:hover{color:#1ca64c!important}.has-background-success{background-color:#23d160!important}.has-text-warning{color:#ffdd57!important}a.has-text-warning:focus,a.has-text-warning:hover{color:#ffd324!important}.has-background-warning{background-color:#ffdd57!important}.has-text-danger{color:#ff3860!important}a.has-text-danger:focus,a.has-text-danger:hover{color:#ff0537!important}.has-background-danger{background-color:#ff3860!important}.has-text-black-bis{color:#121212!important}.has-background-black-bis{background-color:#121212!important}.has-text-black-ter{color:#242424!important}.has-background-black-ter{background-color:#242424!important}.has-text-grey-darker{color:#363636!important}.has-background-grey-darker{background-color:#363636!important}.has-text-grey-dark{color:#4a4a4a!important}.has-background-grey-dark{background-color:#4a4a4a!important}.has-text-grey{color:#7a7a7a!important}.has-background-grey{background-color:#7a7a7a!important}.has-text-grey-light{color:#b5b5b5!important}.has-background-grey-light{background-color:#b5b5b5!important}.has-text-grey-lighter{color:#dbdbdb!important}.has-background-grey-lighter{background-color:#dbdbdb!important}.has-text-white-ter{color:#f5f5f5!important}.has-background-white-ter{background-color:#f5f5f5!important}.has-text-white-bis{color:#fafafa!important}.has-background-white-bis{background-color:#fafafa!important}.has-text-weight-light{font-weight:300!important}.has-text-weight-normal{font-weight:400!important}.has-text-weight-semibold{font-weight:600!important}.has-text-weight-bold{font-weight:700!important}.is-block{display:block!important}@media screen and (max-width:768px){.is-block-mobile{display:block!important}}@media screen and (min-width:769px),print{.is-block-tablet{display:block!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-block-tablet-only{display:block!important}}@media screen and (max-width:1087px){.is-block-touch{display:block!important}}@media screen and (min-width:1088px){.is-block-desktop{display:block!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-block-desktop-only{display:block!important}}@media screen and (min-width:1280px){.is-block-widescreen{display:block!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-block-widescreen-only{display:block!important}}@media screen and (min-width:1472px){.is-block-fullhd{display:block!important}}.is-flex{display:flex!important}@media screen and (max-width:768px){.is-flex-mobile{display:flex!important}}@media screen and (min-width:769px),print{.is-flex-tablet{display:flex!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-flex-tablet-only{display:flex!important}}@media screen and (max-width:1087px){.is-flex-touch{display:flex!important}}@media screen and (min-width:1088px){.is-flex-desktop{display:flex!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-flex-desktop-only{display:flex!important}}@media screen and (min-width:1280px){.is-flex-widescreen{display:flex!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-flex-widescreen-only{display:flex!important}}@media screen and (min-width:1472px){.is-flex-fullhd{display:flex!important}}.is-inline{display:inline!important}@media screen and (max-width:768px){.is-inline-mobile{display:inline!important}}@media screen and (min-width:769px),print{.is-inline-tablet{display:inline!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-tablet-only{display:inline!important}}@media screen and (max-width:1087px){.is-inline-touch{display:inline!important}}@media screen and (min-width:1088px){.is-inline-desktop{display:inline!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-desktop-only{display:inline!important}}@media screen and (min-width:1280px){.is-inline-widescreen{display:inline!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-widescreen-only{display:inline!important}}@media screen and (min-width:1472px){.is-inline-fullhd{display:inline!important}}.is-inline-block{display:inline-block!important}@media screen and (max-width:768px){.is-inline-block-mobile{display:inline-block!important}}@media screen and (min-width:769px),print{.is-inline-block-tablet{display:inline-block!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-block-tablet-only{display:inline-block!important}}@media screen and (max-width:1087px){.is-inline-block-touch{display:inline-block!important}}@media screen and (min-width:1088px){.is-inline-block-desktop{display:inline-block!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-block-desktop-only{display:inline-block!important}}@media screen and (min-width:1280px){.is-inline-block-widescreen{display:inline-block!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-block-widescreen-only{display:inline-block!important}}@media screen and (min-width:1472px){.is-inline-block-fullhd{display:inline-block!important}}.is-inline-flex{display:inline-flex!important}@media screen and (max-width:768px){.is-inline-flex-mobile{display:inline-flex!important}}@media screen and (min-width:769px),print{.is-inline-flex-tablet{display:inline-flex!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-inline-flex-tablet-only{display:inline-flex!important}}@media screen and (max-width:1087px){.is-inline-flex-touch{display:inline-flex!important}}@media screen and (min-width:1088px){.is-inline-flex-desktop{display:inline-flex!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-inline-flex-desktop-only{display:inline-flex!important}}@media screen and (min-width:1280px){.is-inline-flex-widescreen{display:inline-flex!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-inline-flex-widescreen-only{display:inline-flex!important}}@media screen and (min-width:1472px){.is-inline-flex-fullhd{display:inline-flex!important}}.is-hidden{display:none!important}@media screen and (max-width:768px){.is-hidden-mobile{display:none!important}}@media screen and (min-width:769px),print{.is-hidden-tablet{display:none!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-hidden-tablet-only{display:none!important}}@media screen and (max-width:1087px){.is-hidden-touch{display:none!important}}@media screen and (min-width:1088px){.is-hidden-desktop{display:none!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-hidden-desktop-only{display:none!important}}@media screen and (min-width:1280px){.is-hidden-widescreen{display:none!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-hidden-widescreen-only{display:none!important}}@media screen and (min-width:1472px){.is-hidden-fullhd{display:none!important}}.is-invisible{visibility:hidden!important}@media screen and (max-width:768px){.is-invisible-mobile{visibility:hidden!important}}@media screen and (min-width:769px),print{.is-invisible-tablet{visibility:hidden!important}}@media screen and (min-width:769px) and (max-width:1087px){.is-invisible-tablet-only{visibility:hidden!important}}@media screen and (max-width:1087px){.is-invisible-touch{visibility:hidden!important}}@media screen and (min-width:1088px){.is-invisible-desktop{visibility:hidden!important}}@media screen and (min-width:1088px) and (max-width:1279px){.is-invisible-desktop-only{visibility:hidden!important}}@media screen and (min-width:1280px){.is-invisible-widescreen{visibility:hidden!important}}@media screen and (min-width:1280px) and (max-width:1471px){.is-invisible-widescreen-only{visibility:hidden!important}}@media screen and (min-width:1472px){.is-invisible-fullhd{visibility:hidden!important}}.is-marginless{margin:0!important}.is-paddingless{padding:0!important}.is-radiusless{border-radius:0!important}.is-shadowless{box-shadow:none!important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);color:#4a4a4a;display:block;padding:1.25rem}a.box:focus,a.box:hover{box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px #3273dc}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2),0 0 0 1px #3273dc}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-large,.button .icon.is-medium,.button .icon.is-small{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-.375em - 1px);margin-right:.1875em}.button .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:calc(-.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-.375em - 1px);margin-right:calc(-.375em - 1px)}.button.is-hovered,.button:hover{border-color:#b5b5b5;color:#363636}.button.is-focused,.button:focus{border-color:#3273dc;color:#363636}.button.is-focused:not(:active),.button:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-active,.button:active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#4a4a4a;text-decoration:underline}.button.is-text.is-focused,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text:hover{background-color:#f5f5f5;color:#363636}.button.is-text.is-active,.button.is-text:active{background-color:#e8e8e8;color:#363636}.button.is-text[disabled]{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white.is-hovered,.button.is-white:hover{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white.is-focused,.button.is-white:focus{border-color:transparent;color:#0a0a0a}.button.is-white.is-focused:not(:active),.button.is-white:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.button.is-white.is-active,.button.is-white:active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled]{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover{background-color:#000}.button.is-white.is-inverted[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:focus,.button.is-white.is-outlined:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-white.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined:hover{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black.is-hovered,.button.is-black:hover{background-color:#040404;border-color:transparent;color:#fff}.button.is-black.is-focused,.button.is-black:focus{border-color:transparent;color:#fff}.button.is-black.is-focused:not(:active),.button.is-black:focus:not(:active){box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.button.is-black.is-active,.button.is-black:active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled]{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover{background-color:#f2f2f2}.button.is-black.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:focus,.button.is-black.is-outlined:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a!important}.button.is-black.is-outlined[disabled]{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined:hover{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light.is-hovered,.button.is-light:hover{background-color:#eee;border-color:transparent;color:#363636}.button.is-light.is-focused,.button.is-light:focus{border-color:transparent;color:#363636}.button.is-light.is-focused:not(:active),.button.is-light:focus:not(:active){box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.button.is-light.is-active,.button.is-light:active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover{background-color:#292929}.button.is-light.is-inverted[disabled]{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:focus,.button.is-light.is-outlined:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-light.is-outlined[disabled]{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined:hover{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark.is-hovered,.button.is-dark:hover{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark.is-focused,.button.is-dark:focus{border-color:transparent;color:#f5f5f5}.button.is-dark.is-focused:not(:active),.button.is-dark:focus:not(:active){box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.button.is-dark.is-active,.button.is-dark:active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled]{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled]{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5!important}.button.is-dark.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:focus,.button.is-dark.is-outlined:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636!important}.button.is-dark.is-outlined[disabled]{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined:hover{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary{background-color:#00d1b2;border-color:transparent;color:#fff}.button.is-primary.is-hovered,.button.is-primary:hover{background-color:#00c4a7;border-color:transparent;color:#fff}.button.is-primary.is-focused,.button.is-primary:focus{border-color:transparent;color:#fff}.button.is-primary.is-focused:not(:active),.button.is-primary:focus:not(:active){box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.button.is-primary.is-active,.button.is-primary:active{background-color:#00b89c;border-color:transparent;color:#fff}.button.is-primary[disabled]{background-color:#00d1b2;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted:hover{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#00d1b2}.button.is-primary.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-primary.is-outlined{background-color:transparent;border-color:#00d1b2;color:#00d1b2}.button.is-primary.is-outlined:focus,.button.is-primary.is-outlined:hover{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.button.is-primary.is-outlined.is-loading::after{border-color:transparent transparent #00d1b2 #00d1b2!important}.button.is-primary.is-outlined[disabled]{background-color:transparent;border-color:#00d1b2;box-shadow:none;color:#00d1b2}.button.is-primary.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:focus,.button.is-primary.is-inverted.is-outlined:hover{background-color:#fff;color:#00d1b2}.button.is-primary.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#3273dc;border-color:transparent;color:#fff}.button.is-link.is-hovered,.button.is-link:hover{background-color:#276cda;border-color:transparent;color:#fff}.button.is-link.is-focused,.button.is-link:focus{border-color:transparent;color:#fff}.button.is-link.is-focused:not(:active),.button.is-link:focus:not(:active){box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.button.is-link.is-active,.button.is-link:active{background-color:#2366d1;border-color:transparent;color:#fff}.button.is-link[disabled]{background-color:#3273dc;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#3273dc}.button.is-link.is-inverted:hover{background-color:#f2f2f2}.button.is-link.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#3273dc}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-link.is-outlined{background-color:transparent;border-color:#3273dc;color:#3273dc}.button.is-link.is-outlined:focus,.button.is-link.is-outlined:hover{background-color:#3273dc;border-color:#3273dc;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #3273dc #3273dc!important}.button.is-link.is-outlined[disabled]{background-color:transparent;border-color:#3273dc;box-shadow:none;color:#3273dc}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined:hover{background-color:#fff;color:#3273dc}.button.is-link.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info.is-hovered,.button.is-info:hover{background-color:#1496ed;border-color:transparent;color:#fff}.button.is-info.is-focused,.button.is-info:focus{border-color:transparent;color:#fff}.button.is-info.is-focused:not(:active),.button.is-info:focus:not(:active){box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.button.is-info.is-active,.button.is-info:active{background-color:#118fe4;border-color:transparent;color:#fff}.button.is-info[disabled]{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover{background-color:#f2f2f2}.button.is-info.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:focus,.button.is-info.is-outlined:hover{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee!important}.button.is-info.is-outlined[disabled]{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined:hover{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#23d160;border-color:transparent;color:#fff}.button.is-success.is-hovered,.button.is-success:hover{background-color:#22c65b;border-color:transparent;color:#fff}.button.is-success.is-focused,.button.is-success:focus{border-color:transparent;color:#fff}.button.is-success.is-focused:not(:active),.button.is-success:focus:not(:active){box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.button.is-success.is-active,.button.is-success:active{background-color:#20bc56;border-color:transparent;color:#fff}.button.is-success[disabled]{background-color:#23d160;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#23d160}.button.is-success.is-inverted:hover{background-color:#f2f2f2}.button.is-success.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#23d160}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-success.is-outlined{background-color:transparent;border-color:#23d160;color:#23d160}.button.is-success.is-outlined:focus,.button.is-success.is-outlined:hover{background-color:#23d160;border-color:#23d160;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #23d160 #23d160!important}.button.is-success.is-outlined[disabled]{background-color:transparent;border-color:#23d160;box-shadow:none;color:#23d160}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined:hover{background-color:#fff;color:#23d160}.button.is-success.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-hovered,.button.is-warning:hover{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused,.button.is-warning:focus{border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning.is-focused:not(:active),.button.is-warning:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.button.is-warning.is-active,.button.is-warning:active{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.button.is-warning[disabled]{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted:hover{background-color:rgba(0,0,0,.7)}.button.is-warning.is-inverted[disabled]{background-color:rgba(0,0,0,.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,.7) rgba(0,0,0,.7)!important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined:hover{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57!important}.button.is-warning.is-outlined[disabled]{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,.7);color:rgba(0,0,0,.7)}.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined:hover{background-color:rgba(0,0,0,.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:rgba(0,0,0,.7);box-shadow:none;color:rgba(0,0,0,.7)}.button.is-danger{background-color:#ff3860;border-color:transparent;color:#fff}.button.is-danger.is-hovered,.button.is-danger:hover{background-color:#ff2b56;border-color:transparent;color:#fff}.button.is-danger.is-focused,.button.is-danger:focus{border-color:transparent;color:#fff}.button.is-danger.is-focused:not(:active),.button.is-danger:focus:not(:active){box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.button.is-danger.is-active,.button.is-danger:active{background-color:#ff1f4b;border-color:transparent;color:#fff}.button.is-danger[disabled]{background-color:#ff3860;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#ff3860}.button.is-danger.is-inverted:hover{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled]{background-color:#fff;border-color:transparent;box-shadow:none;color:#ff3860}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff!important}.button.is-danger.is-outlined{background-color:transparent;border-color:#ff3860;color:#ff3860}.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined:hover{background-color:#ff3860;border-color:#ff3860;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #ff3860 #ff3860!important}.button.is-danger.is-outlined[disabled]{background-color:transparent;border-color:#ff3860;box-shadow:none;color:#ff3860}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined:hover{background-color:#fff;color:#ff3860}.button.is-danger.is-inverted.is-outlined[disabled]{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small{border-radius:2px;font-size:.75rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled]{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent!important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute!important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#7a7a7a;box-shadow:none;pointer-events:none}.button.is-rounded{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:.5rem}.buttons .button:not(:last-child){margin-right:.5rem}.buttons:last-child{margin-bottom:-.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button.is-hovered,.buttons.has-addons .button:hover{z-index:2}.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-focused,.buttons.has-addons .button.is-selected,.buttons.has-addons .button:active,.buttons.has-addons .button:focus{z-index:3}.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button.is-selected:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button:focus:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1}.buttons.is-centered{justify-content:center}.buttons.is-right{justify-content:flex-end}.container{margin:0 auto;position:relative}@media screen and (min-width:1088px){.container{max-width:960px;width:960px}.container.is-fluid{margin-left:64px;margin-right:64px;max-width:none;width:auto}}@media screen and (max-width:1279px){.container.is-widescreen{max-width:1152px;width:auto}}@media screen and (max-width:1471px){.container.is-fullhd{max-width:1344px;width:auto}}@media screen and (min-width:1280px){.container{max-width:1152px;width:1152px}}@media screen and (min-width:1472px){.container{max-width:1344px;width:1344px}}.content li+li{margin-top:.25em}.content blockquote:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content p:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child),.content ul:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#363636;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:.8em}.content h5{font-size:1.125em;margin-bottom:.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style:decimal outside;margin-left:2em;margin-top:1em}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:1.25em 1.5em;white-space:pre;word-wrap:normal}.content sub,.content sup{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.content table th{color:#363636;text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#363636}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#363636}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content.is-small{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.input,.textarea{background-color:#fff;border-color:#dbdbdb;color:#363636;box-shadow:inset 0 1px 2px rgba(10,10,10,.1);max-width:100%;width:100%}.input::-moz-placeholder,.textarea::-moz-placeholder{color:rgba(54,54,54,.3)}.input::-webkit-input-placeholder,.textarea::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.input:-moz-placeholder,.textarea:-moz-placeholder{color:rgba(54,54,54,.3)}.input:-ms-input-placeholder,.textarea:-ms-input-placeholder{color:rgba(54,54,54,.3)}.input.is-hovered,.input:hover,.textarea.is-hovered,.textarea:hover{border-color:#b5b5b5}.input.is-active,.input.is-focused,.input:active,.input:focus,.textarea.is-active,.textarea.is-focused,.textarea:active,.textarea:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input[disabled],.textarea[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.input[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder{color:rgba(122,122,122,.3)}.input[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder{color:rgba(122,122,122,.3)}.input[readonly],.textarea[readonly]{box-shadow:none}.input.is-white,.textarea.is-white{border-color:#fff}.input.is-white.is-active,.input.is-white.is-focused,.input.is-white:active,.input.is-white:focus,.textarea.is-white.is-active,.textarea.is-white.is-focused,.textarea.is-white:active,.textarea.is-white:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.input.is-black,.textarea.is-black{border-color:#0a0a0a}.input.is-black.is-active,.input.is-black.is-focused,.input.is-black:active,.input.is-black:focus,.textarea.is-black.is-active,.textarea.is-black.is-focused,.textarea.is-black:active,.textarea.is-black:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.input.is-light,.textarea.is-light{border-color:#f5f5f5}.input.is-light.is-active,.input.is-light.is-focused,.input.is-light:active,.input.is-light:focus,.textarea.is-light.is-active,.textarea.is-light.is-focused,.textarea.is-light:active,.textarea.is-light:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.input.is-dark,.textarea.is-dark{border-color:#363636}.input.is-dark.is-active,.input.is-dark.is-focused,.input.is-dark:active,.input.is-dark:focus,.textarea.is-dark.is-active,.textarea.is-dark.is-focused,.textarea.is-dark:active,.textarea.is-dark:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.input.is-primary,.textarea.is-primary{border-color:#00d1b2}.input.is-primary.is-active,.input.is-primary.is-focused,.input.is-primary:active,.input.is-primary:focus,.textarea.is-primary.is-active,.textarea.is-primary.is-focused,.textarea.is-primary:active,.textarea.is-primary:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.input.is-link,.textarea.is-link{border-color:#3273dc}.input.is-link.is-active,.input.is-link.is-focused,.input.is-link:active,.input.is-link:focus,.textarea.is-link.is-active,.textarea.is-link.is-focused,.textarea.is-link:active,.textarea.is-link:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.input.is-info,.textarea.is-info{border-color:#209cee}.input.is-info.is-active,.input.is-info.is-focused,.input.is-info:active,.input.is-info:focus,.textarea.is-info.is-active,.textarea.is-info.is-focused,.textarea.is-info:active,.textarea.is-info:focus{box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.input.is-success,.textarea.is-success{border-color:#23d160}.input.is-success.is-active,.input.is-success.is-focused,.input.is-success:active,.input.is-success:focus,.textarea.is-success.is-active,.textarea.is-success.is-focused,.textarea.is-success:active,.textarea.is-success:focus{box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.input.is-warning,.textarea.is-warning{border-color:#ffdd57}.input.is-warning.is-active,.input.is-warning.is-focused,.input.is-warning:active,.input.is-warning:focus,.textarea.is-warning.is-active,.textarea.is-warning.is-focused,.textarea.is-warning:active,.textarea.is-warning:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.input.is-danger,.textarea.is-danger{border-color:#ff3860}.input.is-danger.is-active,.input.is-danger.is-focused,.input.is-danger:active,.input.is-danger:focus,.textarea.is-danger.is-active,.textarea.is-danger.is-focused,.textarea.is-danger:active,.textarea.is-danger:focus{box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.input.is-small,.textarea.is-small{border-radius:2px;font-size:.75rem}.input.is-medium,.textarea.is-medium{font-size:1.25rem}.input.is-large,.textarea.is-large{font-size:1.5rem}.input.is-fullwidth,.textarea.is-fullwidth{display:block;width:100%}.input.is-inline,.textarea.is-inline{display:inline;width:auto}.input.is-rounded{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.checkbox,.radio{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.checkbox input,.radio input{cursor:pointer}.checkbox:hover,.radio:hover{color:#363636}.checkbox[disabled],.radio[disabled]{color:#7a7a7a;cursor:not-allowed}.radio+.radio{margin-left:.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#3273dc;right:1.125em;z-index:4}.select.is-rounded select{border-radius:290486px;padding-left:1em}.select select{background-color:#fff;border-color:#dbdbdb;color:#363636;cursor:pointer;display:block;font-size:1em;max-width:100%;outline:0}.select select::-moz-placeholder{color:rgba(54,54,54,.3)}.select select::-webkit-input-placeholder{color:rgba(54,54,54,.3)}.select select:-moz-placeholder{color:rgba(54,54,54,.3)}.select select:-ms-input-placeholder{color:rgba(54,54,54,.3)}.select select.is-hovered,.select select:hover{border-color:#b5b5b5}.select select.is-active,.select select.is-focused,.select select:active,.select select:focus{border-color:#3273dc;box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select select[disabled]{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#7a7a7a}.select select[disabled]::-moz-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]::-webkit-input-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]:-moz-placeholder{color:rgba(122,122,122,.3)}.select select[disabled]:-ms-input-placeholder{color:rgba(122,122,122,.3)}.select select::-ms-expand{display:none}.select select[disabled]:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:initial;padding:0}.select select[multiple] option{padding:.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select.is-hovered,.select.is-white select:hover{border-color:#f2f2f2}.select.is-white select.is-active,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select:focus{box-shadow:0 0 0 .125em rgba(255,255,255,.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select.is-hovered,.select.is-black select:hover{border-color:#000}.select.is-black select.is-active,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select:focus{box-shadow:0 0 0 .125em rgba(10,10,10,.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select.is-hovered,.select.is-light select:hover{border-color:#e8e8e8}.select.is-light select.is-active,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select:focus{box-shadow:0 0 0 .125em rgba(245,245,245,.25)}.select.is-dark:not(:hover)::after{border-color:#363636}.select.is-dark select{border-color:#363636}.select.is-dark select.is-hovered,.select.is-dark select:hover{border-color:#292929}.select.is-dark select.is-active,.select.is-dark select.is-focused,.select.is-dark select:active,.select.is-dark select:focus{box-shadow:0 0 0 .125em rgba(54,54,54,.25)}.select.is-primary:not(:hover)::after{border-color:#00d1b2}.select.is-primary select{border-color:#00d1b2}.select.is-primary select.is-hovered,.select.is-primary select:hover{border-color:#00b89c}.select.is-primary select.is-active,.select.is-primary select.is-focused,.select.is-primary select:active,.select.is-primary select:focus{box-shadow:0 0 0 .125em rgba(0,209,178,.25)}.select.is-link:not(:hover)::after{border-color:#3273dc}.select.is-link select{border-color:#3273dc}.select.is-link select.is-hovered,.select.is-link select:hover{border-color:#2366d1}.select.is-link select.is-active,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select:focus{box-shadow:0 0 0 .125em rgba(50,115,220,.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select.is-hovered,.select.is-info select:hover{border-color:#118fe4}.select.is-info select.is-active,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select:focus{box-shadow:0 0 0 .125em rgba(32,156,238,.25)}.select.is-success:not(:hover)::after{border-color:#23d160}.select.is-success select{border-color:#23d160}.select.is-success select.is-hovered,.select.is-success select:hover{border-color:#20bc56}.select.is-success select.is-active,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select:focus{box-shadow:0 0 0 .125em rgba(35,209,96,.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select.is-hovered,.select.is-warning select:hover{border-color:#ffd83d}.select.is-warning select.is-active,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select:focus{box-shadow:0 0 0 .125em rgba(255,221,87,.25)}.select.is-danger:not(:hover)::after{border-color:#ff3860}.select.is-danger select{border-color:#ff3860}.select.is-danger select.is-hovered,.select.is-danger select:hover{border-color:#ff1f4b}.select.is-danger select.is-active,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select:focus{box-shadow:0 0 0 .125em rgba(255,56,96,.25)}.select.is-small{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#7a7a7a}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:.625em;top:.625em;-webkit-transform:none;transform:none}.select.is-loading.is-small:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white.is-hovered .file-cta,.file.is-white:hover .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white.is-focused .file-cta,.file.is-white:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,255,255,.25);color:#0a0a0a}.file.is-white.is-active .file-cta,.file.is-white:active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black.is-hovered .file-cta,.file.is-black:hover .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black.is-focused .file-cta,.file.is-black:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(10,10,10,.25);color:#fff}.file.is-black.is-active .file-cta,.file.is-black:active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light.is-hovered .file-cta,.file.is-light:hover .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light.is-focused .file-cta,.file.is-light:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(245,245,245,.25);color:#363636}.file.is-light.is-active .file-cta,.file.is-light:active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark.is-hovered .file-cta,.file.is-dark:hover .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark.is-focused .file-cta,.file.is-dark:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(54,54,54,.25);color:#f5f5f5}.file.is-dark.is-active .file-cta,.file.is-dark:active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta{background-color:#00d1b2;border-color:transparent;color:#fff}.file.is-primary.is-hovered .file-cta,.file.is-primary:hover .file-cta{background-color:#00c4a7;border-color:transparent;color:#fff}.file.is-primary.is-focused .file-cta,.file.is-primary:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(0,209,178,.25);color:#fff}.file.is-primary.is-active .file-cta,.file.is-primary:active .file-cta{background-color:#00b89c;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#3273dc;border-color:transparent;color:#fff}.file.is-link.is-hovered .file-cta,.file.is-link:hover .file-cta{background-color:#276cda;border-color:transparent;color:#fff}.file.is-link.is-focused .file-cta,.file.is-link:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(50,115,220,.25);color:#fff}.file.is-link.is-active .file-cta,.file.is-link:active .file-cta{background-color:#2366d1;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info.is-hovered .file-cta,.file.is-info:hover .file-cta{background-color:#1496ed;border-color:transparent;color:#fff}.file.is-info.is-focused .file-cta,.file.is-info:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(32,156,238,.25);color:#fff}.file.is-info.is-active .file-cta,.file.is-info:active .file-cta{background-color:#118fe4;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#23d160;border-color:transparent;color:#fff}.file.is-success.is-hovered .file-cta,.file.is-success:hover .file-cta{background-color:#22c65b;border-color:transparent;color:#fff}.file.is-success.is-focused .file-cta,.file.is-success:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(35,209,96,.25);color:#fff}.file.is-success.is-active .file-cta,.file.is-success:active .file-cta{background-color:#20bc56;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-hovered .file-cta,.file.is-warning:hover .file-cta{background-color:#ffdb4a;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-warning.is-focused .file-cta,.file.is-warning:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,221,87,.25);color:rgba(0,0,0,.7)}.file.is-warning.is-active .file-cta,.file.is-warning:active .file-cta{background-color:#ffd83d;border-color:transparent;color:rgba(0,0,0,.7)}.file.is-danger .file-cta{background-color:#ff3860;border-color:transparent;color:#fff}.file.is-danger.is-hovered .file-cta,.file.is-danger:hover .file-cta{background-color:#ff2b56;border-color:transparent;color:#fff}.file.is-danger.is-focused .file-cta,.file.is-danger:focus .file-cta{border-color:transparent;box-shadow:0 0 .5em rgba(255,56,96,.25);color:#fff}.file.is-danger.is-active .file-cta,.file.is-danger:active .file-cta{background-color:#ff1f4b;border-color:transparent;color:#fff}.file.is-small{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:.01em;left:0;outline:0;position:absolute;top:0;width:.01em}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:.5em}.label.is-small{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark{color:#363636}.help.is-primary{color:#00d1b2}.help.is-link{color:#3273dc}.help.is-info{color:#209cee}.help.is-success{color:#23d160}.help.is-warning{color:#ffdd57}.help.is-danger{color:#ff3860}.field:not(:last-child){margin-bottom:.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child .button,.field.has-addons .control:first-child .input,.field.has-addons .control:first-child .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child .button,.field.has-addons .control:last-child .input,.field.has-addons .control:last-child .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button.is-hovered,.field.has-addons .control .button:hover,.field.has-addons .control .input.is-hovered,.field.has-addons .control .input:hover,.field.has-addons .control .select select.is-hovered,.field.has-addons .control .select select:hover{z-index:2}.field.has-addons .control .button.is-active,.field.has-addons .control .button.is-focused,.field.has-addons .control .button:active,.field.has-addons .control .button:focus,.field.has-addons .control .input.is-active,.field.has-addons .control .input.is-focused,.field.has-addons .control .input:active,.field.has-addons .control .input:focus,.field.has-addons .control .select select.is-active,.field.has-addons .control .select select.is-focused,.field.has-addons .control .select select:active,.field.has-addons .control .select select:focus{z-index:3}.field.has-addons .control .button.is-active:hover,.field.has-addons .control .button.is-focused:hover,.field.has-addons .control .button:active:hover,.field.has-addons .control .button:focus:hover,.field.has-addons .control .input.is-active:hover,.field.has-addons .control .input.is-focused:hover,.field.has-addons .control .input:active:hover,.field.has-addons .control .input:focus:hover,.field.has-addons .control .select select.is-active:hover,.field.has-addons .control .select select.is-focused:hover,.field.has-addons .control .select select:active:hover,.field.has-addons .control .select select:focus:hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width:769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width:768px){.field-label{margin-bottom:.5rem}}@media screen and (min-width:769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small{font-size:.75rem;padding-top:.375em}.field-label.is-normal{padding-top:.375em}.field-label.is-medium{font-size:1.25rem;padding-top:.375em}.field-label.is-large{font-size:1.5rem;padding-top:.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width:769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:.75rem}}.control{font-size:1rem;position:relative;text-align:left}.control.has-icon .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icon .input:focus+.icon{color:#7a7a7a}.control.has-icon .input.is-small+.icon{font-size:.75rem}.control.has-icon .input.is-medium+.icon{font-size:1.25rem}.control.has-icon .input.is-large+.icon{font-size:1.5rem}.control.has-icon:not(.has-icon-right) .icon{left:0}.control.has-icon:not(.has-icon-right) .input{padding-left:2.25em}.control.has-icon.has-icon-right .icon{right:0}.control.has-icon.has-icon-right .input{padding-right:2.25em}.control.has-icons-left .input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#7a7a7a}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute!important;right:.625em;top:.625em;z-index:4}.control.is-loading.is-small:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image{display:block;position:relative}.image img{display:block;height:auto;width:100%}.image img.is-rounded{border-radius:290486px}.image.is-16by9 img,.image.is-1by1 img,.image.is-1by2 img,.image.is-1by3 img,.image.is-2by1 img,.image.is-2by3 img,.image.is-3by1 img,.image.is-3by2 img,.image.is-3by4 img,.image.is-3by5 img,.image.is-4by3 img,.image.is-4by5 img,.image.is-5by3 img,.image.is-5by4 img,.image.is-9by16 img,.image.is-square img{height:100%;width:100%}.image.is-1by1,.image.is-square{padding-top:100%}.image.is-5by4{padding-top:80%}.image.is-4by3{padding-top:75%}.image.is-3by2{padding-top:66.6666%}.image.is-5by3{padding-top:60%}.image.is-16by9{padding-top:56.25%}.image.is-2by1{padding-top:50%}.image.is-3by1{padding-top:33.3333%}.image.is-4by5{padding-top:125%}.image.is-3by4{padding-top:133.3333%}.image.is-2by3{padding-top:150%}.image.is-3by5{padding-top:166.6666%}.image.is-9by16{padding-top:177.7777%}.image.is-1by2{padding-top:200%}.image.is-1by3{padding-top:300%}.image.is-16x16{height:16px;width:16px}.image.is-24x24{height:24px;width:24px}.image.is-32x32{height:32px;width:32px}.image.is-48x48{height:48px;width:48px}.image.is-64x64{height:64px;width:64px}.image.is-96x96{height:96px;width:96px}.image.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:0 0}.notification>.delete{position:absolute;right:.5rem;top:.5rem}.notification .content,.notification .subtitle,.notification .title{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark{background-color:#363636;color:#f5f5f5}.notification.is-primary{background-color:#00d1b2;color:#fff}.notification.is-link{background-color:#3273dc;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#23d160;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.notification.is-danger{background-color:#ff3860;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#4a4a4a}.progress::-moz-progress-bar{background-color:#4a4a4a}.progress::-ms-fill{background-color:#4a4a4a;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-dark::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill{background-color:#363636}.progress.is-primary::-webkit-progress-value{background-color:#00d1b2}.progress.is-primary::-moz-progress-bar{background-color:#00d1b2}.progress.is-primary::-ms-fill{background-color:#00d1b2}.progress.is-link::-webkit-progress-value{background-color:#3273dc}.progress.is-link::-moz-progress-bar{background-color:#3273dc}.progress.is-link::-ms-fill{background-color:#3273dc}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-success::-webkit-progress-value{background-color:#23d160}.progress.is-success::-moz-progress-bar{background-color:#23d160}.progress.is-success::-ms-fill{background-color:#23d160}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-danger::-webkit-progress-value{background-color:#ff3860}.progress.is-danger::-moz-progress-bar{background-color:#ff3860}.progress.is-danger::-ms-fill{background-color:#ff3860}.progress.is-small{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:.5em .75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#00d1b2;border-color:#00d1b2;color:#fff}.table td.is-link,.table th.is-link{background-color:#3273dc;border-color:#3273dc;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#23d160;border-color:#23d160;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,.7)}.table td.is-danger,.table th.is-danger{background-color:#ff3860;border-color:#ff3860;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#00d1b2;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#363636;text-align:left}.table tr.is-selected{background-color:#00d1b2;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead td,.table thead th{border-width:0 0 2px;color:#363636}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#363636}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:.25em .5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag{margin-bottom:.5rem}.tags .tag:not(:last-child){margin-right:.5rem}.tags:last-child{margin-bottom:-.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.has-addons .tag{margin-right:0}.tags.has-addons .tag:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tags.is-centered{justify-content:center}.tags.is-centered .tag{margin-right:.25rem;margin-left:.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child){margin-left:.5rem}.tags.is-right .tag:not(:last-child){margin-right:0}.tag:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#4a4a4a;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:.75em;padding-right:.75em;white-space:nowrap}.tag:not(body) .delete{margin-left:.25rem;margin-right:-.375rem}.tag:not(body).is-white{background-color:#fff;color:#0a0a0a}.tag:not(body).is-black{background-color:#0a0a0a;color:#fff}.tag:not(body).is-light{background-color:#f5f5f5;color:#363636}.tag:not(body).is-dark{background-color:#363636;color:#f5f5f5}.tag:not(body).is-primary{background-color:#00d1b2;color:#fff}.tag:not(body).is-link{background-color:#3273dc;color:#fff}.tag:not(body).is-info{background-color:#209cee;color:#fff}.tag:not(body).is-success{background-color:#23d160;color:#fff}.tag:not(body).is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.tag:not(body).is-danger{background-color:#ff3860;color:#fff}.tag:not(body).is-medium{font-size:1rem}.tag:not(body).is-large{font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child){margin-left:-.375em;margin-right:.1875em}.tag:not(body) .icon:last-child:not(:first-child){margin-left:.1875em;margin-right:-.375em}.tag:not(body) .icon:first-child:last-child{margin-left:-.375em;margin-right:-.375em}.tag:not(body).is-delete{margin-left:1px;padding:0;position:relative;width:2em}.tag:not(body).is-delete::after,.tag:not(body).is-delete::before{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;-webkit-transform:translateX(-50%) translateY(-50%) rotate(45deg);transform:translateX(-50%) translateY(-50%) rotate(45deg);-webkit-transform-origin:center center;transform-origin:center center}.tag:not(body).is-delete::before{height:1px;width:50%}.tag:not(body).is-delete::after{height:50%;width:1px}.tag:not(body).is-delete:focus,.tag:not(body).is-delete:hover{background-color:#e8e8e8}.tag:not(body).is-delete:active{background-color:#dbdbdb}.tag:not(body).is-rounded{border-radius:290486px}a.tag:hover{text-decoration:underline}.subtitle,.title{word-break:break-word}.subtitle em,.subtitle span,.title em,.title span{font-weight:inherit}.subtitle sub,.title sub{font-size:.75em}.subtitle sup,.title sup{font-size:.75em}.subtitle .tag,.title .tag{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:.25rem .5rem;text-align:center;vertical-align:top}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#3273dc;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#363636;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ol,.breadcrumb ul{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:.5em}.breadcrumb .icon:last-child{margin-left:.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);color:#4a4a4a;max-width:100%;position:relative}.card-header{background-color:none;align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,.1);display:flex}.card-header-title{align-items:center;color:#363636;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:none;padding:1.5rem}.card-footer{background-color:none;border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:.75rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:.875rem;line-height:1.5;padding:.375rem 1rem;position:relative}a.dropdown-item{padding-right:3rem;white-space:nowrap}a.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active{background-color:#3273dc;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item{margin-right:.75rem}.level.is-mobile .level-item:not(:last-child){margin-bottom:0}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width:769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .subtitle,.level-item .title{margin-bottom:0}@media screen and (max-width:768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width:769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width:768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width:769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width:769px),print{.level-right{display:flex}}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:.75rem}.media .media{border-top:1px solid rgba(219,219,219,.5);display:flex;padding-top:.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:.5rem}.media .media .media{padding-top:.5rem}.media .media .media+.media{margin-top:.5rem}.media+.media{border-top:1px solid rgba(219,219,219,.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}.menu{font-size:1rem}.menu.is-small{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#4a4a4a;display:block;padding:.5em .75em}.menu-list a:hover{background-color:#f5f5f5;color:#363636}.menu-list a.is-active{background-color:#3273dc;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#7a7a7a;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag){color:currentColor;text-decoration:underline}.message.is-small{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark{background-color:#fafafa}.message.is-dark .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary{background-color:#f5fffd}.message.is-primary .message-header{background-color:#00d1b2;color:#fff}.message.is-primary .message-body{border-color:#00d1b2;color:#021310}.message.is-link{background-color:#f6f9fe}.message.is-link .message-header{background-color:#3273dc;color:#fff}.message.is-link .message-body{border-color:#3273dc;color:#22509a}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537e}.message.is-success{background-color:#f6fef9}.message.is-success .message-header{background-color:#23d160;color:#fff}.message.is-success .message-body{border-color:#23d160;color:#0e301a}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3b3108}.message.is-danger{background-color:#fff5f7}.message.is-danger .message-header{background-color:#ff3860;color:#fff}.message.is-danger .message-body{border-color:#ff3860;color:#cd0930}.message-header{align-items:center;background-color:#4a4a4a;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#4a4a4a;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:transparent}.modal{align-items:center;display:none;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,.86)}.modal-card,.modal-content{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width:769px),print{.modal-card,.modal-content{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:0 0;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden}.modal-card-foot,.modal-card-head{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#363636;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:10px}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link,.navbar.is-white .navbar-brand>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link.is-active,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}@media screen and (min-width:1088px){.navbar.is-white .navbar-end .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-start>.navbar-item{color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link.is-active,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start>a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-end .navbar-link::after,.navbar.is-white .navbar-start .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand .navbar-link,.navbar.is-black .navbar-brand>.navbar-item{color:#fff}.navbar.is-black .navbar-brand .navbar-link.is-active,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-black .navbar-end .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-start>.navbar-item{color:#fff}.navbar.is-black .navbar-end .navbar-link.is-active,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start>a.navbar-item:hover{background-color:#000;color:#fff}.navbar.is-black .navbar-end .navbar-link::after,.navbar.is-black .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand .navbar-link,.navbar.is-light .navbar-brand>.navbar-item{color:#363636}.navbar.is-light .navbar-brand .navbar-link.is-active,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand>a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}@media screen and (min-width:1088px){.navbar.is-light .navbar-end .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-start>.navbar-item{color:#363636}.navbar.is-light .navbar-end .navbar-link.is-active,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start>a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-end .navbar-link::after,.navbar.is-light .navbar-start .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link,.navbar.is-dark .navbar-brand>.navbar-item{color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link.is-active,.navbar.is-dark .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand>a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after{border-color:#f5f5f5}@media screen and (min-width:1088px){.navbar.is-dark .navbar-end .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.navbar.is-dark .navbar-start>.navbar-item{color:#f5f5f5}.navbar.is-dark .navbar-end .navbar-link.is-active,.navbar.is-dark .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start>a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-end .navbar-link::after,.navbar.is-dark .navbar-start .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary{background-color:#00d1b2;color:#fff}.navbar.is-primary .navbar-brand .navbar-link,.navbar.is-primary .navbar-brand>.navbar-item{color:#fff}.navbar.is-primary .navbar-brand .navbar-link.is-active,.navbar.is-primary .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-primary .navbar-end .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.navbar.is-primary .navbar-start>.navbar-item{color:#fff}.navbar.is-primary .navbar-end .navbar-link.is-active,.navbar.is-primary .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start>a.navbar-item:hover{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-end .navbar-link::after,.navbar.is-primary .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link{background-color:#00b89c;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active{background-color:#00d1b2;color:#fff}}.navbar.is-link{background-color:#3273dc;color:#fff}.navbar.is-link .navbar-brand .navbar-link,.navbar.is-link .navbar-brand>.navbar-item{color:#fff}.navbar.is-link .navbar-brand .navbar-link.is-active,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-link .navbar-end .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-start>.navbar-item{color:#fff}.navbar.is-link .navbar-end .navbar-link.is-active,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start>a.navbar-item:hover{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-end .navbar-link::after,.navbar.is-link .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link{background-color:#2366d1;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#3273dc;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand .navbar-link,.navbar.is-info .navbar-brand>.navbar-item{color:#fff}.navbar.is-info .navbar-brand .navbar-link.is-active,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand>a.navbar-item:hover{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-info .navbar-end .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-start>.navbar-item{color:#fff}.navbar.is-info .navbar-end .navbar-link.is-active,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start>a.navbar-item:hover{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-end .navbar-link::after,.navbar.is-info .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link{background-color:#118fe4;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#23d160;color:#fff}.navbar.is-success .navbar-brand .navbar-link,.navbar.is-success .navbar-brand>.navbar-item{color:#fff}.navbar.is-success .navbar-brand .navbar-link.is-active,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand>a.navbar-item:hover{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-success .navbar-end .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-start>.navbar-item{color:#fff}.navbar.is-success .navbar-end .navbar-link.is-active,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start>a.navbar-item:hover{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-end .navbar-link::after,.navbar.is-success .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link{background-color:#20bc56;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#23d160;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link,.navbar.is-warning .navbar-brand>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link.is-active,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,.7)}@media screen and (min-width:1088px){.navbar.is-warning .navbar-end .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-start>.navbar-item{color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link.is-active,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start>a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-end .navbar-link::after,.navbar.is-warning .navbar-start .navbar-link::after{border-color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link{background-color:#ffd83d;color:rgba(0,0,0,.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,.7)}}.navbar.is-danger{background-color:#ff3860;color:#fff}.navbar.is-danger .navbar-brand .navbar-link,.navbar.is-danger .navbar-brand>.navbar-item{color:#fff}.navbar.is-danger .navbar-brand .navbar-link.is-active,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand>a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}@media screen and (min-width:1088px){.navbar.is-danger .navbar-end .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-start>.navbar-item{color:#fff}.navbar.is-danger .navbar-end .navbar-link.is-active,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start>a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-end .navbar-link::after,.navbar.is-danger .navbar-start .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link{background-color:#ff1f4b;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#ff3860;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}body.has-navbar-fixed-top,html.has-navbar-fixed-top{padding-top:3.25rem}body.has-navbar-fixed-bottom,html.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;-webkit-transform-origin:center;transform-origin:center;transition-duration:86ms;transition-property:background-color,opacity,-webkit-transform;transition-property:background-color,opacity,transform;transition-property:background-color,opacity,transform,-webkit-transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,.05)}.navbar-burger.is-active span:nth-child(1){-webkit-transform:translateY(5px) rotate(45deg);transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){-webkit-transform:translateY(-5px) rotate(-45deg);transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:.5rem .75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-.25rem;margin-right:-.25rem}.navbar-link,a.navbar-item{cursor:pointer}.navbar-link.is-active,.navbar-link:hover,a.navbar-item.is-active,a.navbar-item:hover{background-color:#fafafa;color:#3273dc}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(.5rem - 1px)}.navbar-item.is-tab:hover{background-color:transparent;border-bottom-color:#3273dc}.navbar-item.is-tab.is-active{background-color:transparent;border-bottom-color:#3273dc;border-bottom-style:solid;border-bottom-width:3px;color:#3273dc;padding-bottom:calc(.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link{padding-right:2.5em}.navbar-link::after{border-color:#3273dc;margin-top:-.375em;right:1.125em}.navbar-dropdown{font-size:.875rem;padding-bottom:.5rem;padding-top:.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:.5rem 0}@media screen and (max-width:1087px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,.1);padding:.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}body.has-navbar-fixed-top-touch,html.has-navbar-fixed-top-touch{padding-top:3.25rem}body.has-navbar-fixed-bottom-touch,html.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width:1088px){.navbar,.navbar-end,.navbar-menu,.navbar-start{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-end,.navbar.is-spaced .navbar-start{align-items:center}.navbar.is-spaced .navbar-link,.navbar.is-spaced a.navbar-item{border-radius:4px}.navbar.is-transparent .navbar-link.is-active,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent a.navbar-item:hover{background-color:transparent!important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent!important}.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{-webkit-transform:rotate(135deg) translate(.25em,-.25em);transform:rotate(135deg) translate(.25em,-.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown{opacity:1;pointer-events:auto;-webkit-transform:translateY(0);transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,.1);display:none;font-size:.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#3273dc}.navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-dropdown{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,.1),0 0 0 1px rgba(10,10,10,.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));-webkit-transform:translateY(-5px);transform:translateY(-5px);transition-duration:86ms;transition-property:opacity,-webkit-transform;transition-property:opacity,transform;transition-property:opacity,transform,-webkit-transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.container>.navbar .navbar-brand,.navbar>.container .navbar-brand{margin-left:-1rem}.container>.navbar .navbar-menu,.navbar>.container .navbar-menu{margin-right:-1rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,.1)}.navbar.is-fixed-top-desktop{top:0}body.has-navbar-fixed-top-desktop,html.has-navbar-fixed-top-desktop{padding-top:3.25rem}body.has-navbar-fixed-bottom-desktop,html.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}body.has-spaced-navbar-fixed-top,html.has-spaced-navbar-fixed-top{padding-top:5.25rem}body.has-spaced-navbar-fixed-bottom,html.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}.navbar-link.is-active,a.navbar-item.is-active{color:#0a0a0a}.navbar-link.is-active:not(:hover),a.navbar-item.is-active:not(:hover){background-color:transparent}.navbar-item.has-dropdown.is-active .navbar-link,.navbar-item.has-dropdown:hover .navbar-link{background-color:#fafafa}}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-next,.pagination.is-rounded .pagination-previous{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-ellipsis,.pagination-link,.pagination-next,.pagination-previous{font-size:1em;padding-left:.5em;padding-right:.5em;justify-content:center;margin:.25rem;text-align:center}.pagination-link,.pagination-next,.pagination-previous{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-link:hover,.pagination-next:hover,.pagination-previous:hover{border-color:#b5b5b5;color:#363636}.pagination-link:focus,.pagination-next:focus,.pagination-previous:focus{border-color:#3273dc}.pagination-link:active,.pagination-next:active,.pagination-previous:active{box-shadow:inset 0 1px 2px rgba(10,10,10,.2)}.pagination-link[disabled],.pagination-next[disabled],.pagination-previous[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#7a7a7a;opacity:.5}.pagination-next,.pagination-previous{padding-left:.75em;padding-right:.75em;white-space:nowrap}.pagination-link.is-current{background-color:#3273dc;border-color:#3273dc;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width:768px){.pagination{flex-wrap:wrap}.pagination-next,.pagination-previous{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width:769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-block,.panel-heading,.panel-tabs{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-block:first-child,.panel-heading:first-child,.panel-tabs:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#363636;font-size:1.25em;font-weight:300;line-height:1.25;padding:.5em .75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#4a4a4a}.panel-list a:hover{color:#3273dc}.panel-block{align-items:center;color:#363636;display:flex;justify-content:flex-start;padding:.5em .75em}.panel-block input[type=checkbox]{margin-right:.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#3273dc;color:#363636}.panel-block.is-active .panel-icon{color:#3273dc}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#7a7a7a;margin-right:.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#4a4a4a;display:flex;justify-content:center;margin-bottom:-1px;padding:.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#363636;color:#363636}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#3273dc;color:#3273dc}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:.75em;padding-right:.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:.75em}.tabs .icon:first-child{margin-right:.5em}.tabs .icon:last-child{margin-left:.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:transparent!important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#3273dc;border-color:#3273dc;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-1{flex:none;width:8.33333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.33333%}.columns.is-mobile>.column.is-2{flex:none;width:16.66667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.66667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.33333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.33333%}.columns.is-mobile>.column.is-5{flex:none;width:41.66667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.66667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.33333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.33333%}.columns.is-mobile>.column.is-8{flex:none;width:66.66667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.66667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.33333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.33333%}.columns.is-mobile>.column.is-11{flex:none;width:91.66667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.66667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width:768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-1-mobile{flex:none;width:8.33333%}.column.is-offset-1-mobile{margin-left:8.33333%}.column.is-2-mobile{flex:none;width:16.66667%}.column.is-offset-2-mobile{margin-left:16.66667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.33333%}.column.is-offset-4-mobile{margin-left:33.33333%}.column.is-5-mobile{flex:none;width:41.66667%}.column.is-offset-5-mobile{margin-left:41.66667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.33333%}.column.is-offset-7-mobile{margin-left:58.33333%}.column.is-8-mobile{flex:none;width:66.66667%}.column.is-offset-8-mobile{margin-left:66.66667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.33333%}.column.is-offset-10-mobile{margin-left:83.33333%}.column.is-11-mobile{flex:none;width:91.66667%}.column.is-offset-11-mobile{margin-left:91.66667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width:769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-1,.column.is-1-tablet{flex:none;width:8.33333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.33333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.66667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.66667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.33333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.33333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.66667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.66667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.33333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.33333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.66667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.66667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.33333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.33333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.66667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.66667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width:1087px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-1-touch{flex:none;width:8.33333%}.column.is-offset-1-touch{margin-left:8.33333%}.column.is-2-touch{flex:none;width:16.66667%}.column.is-offset-2-touch{margin-left:16.66667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.33333%}.column.is-offset-4-touch{margin-left:33.33333%}.column.is-5-touch{flex:none;width:41.66667%}.column.is-offset-5-touch{margin-left:41.66667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.33333%}.column.is-offset-7-touch{margin-left:58.33333%}.column.is-8-touch{flex:none;width:66.66667%}.column.is-offset-8-touch{margin-left:66.66667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.33333%}.column.is-offset-10-touch{margin-left:83.33333%}.column.is-11-touch{flex:none;width:91.66667%}.column.is-offset-11-touch{margin-left:91.66667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width:1088px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-1-desktop{flex:none;width:8.33333%}.column.is-offset-1-desktop{margin-left:8.33333%}.column.is-2-desktop{flex:none;width:16.66667%}.column.is-offset-2-desktop{margin-left:16.66667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.33333%}.column.is-offset-4-desktop{margin-left:33.33333%}.column.is-5-desktop{flex:none;width:41.66667%}.column.is-offset-5-desktop{margin-left:41.66667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.33333%}.column.is-offset-7-desktop{margin-left:58.33333%}.column.is-8-desktop{flex:none;width:66.66667%}.column.is-offset-8-desktop{margin-left:66.66667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.33333%}.column.is-offset-10-desktop{margin-left:83.33333%}.column.is-11-desktop{flex:none;width:91.66667%}.column.is-offset-11-desktop{margin-left:91.66667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width:1280px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-1-widescreen{flex:none;width:8.33333%}.column.is-offset-1-widescreen{margin-left:8.33333%}.column.is-2-widescreen{flex:none;width:16.66667%}.column.is-offset-2-widescreen{margin-left:16.66667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.33333%}.column.is-offset-4-widescreen{margin-left:33.33333%}.column.is-5-widescreen{flex:none;width:41.66667%}.column.is-offset-5-widescreen{margin-left:41.66667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.33333%}.column.is-offset-7-widescreen{margin-left:58.33333%}.column.is-8-widescreen{flex:none;width:66.66667%}.column.is-offset-8-widescreen{margin-left:66.66667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.33333%}.column.is-offset-10-widescreen{margin-left:83.33333%}.column.is-11-widescreen{flex:none;width:91.66667%}.column.is-offset-11-widescreen{margin-left:91.66667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width:1472px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-1-fullhd{flex:none;width:8.33333%}.column.is-offset-1-fullhd{margin-left:8.33333%}.column.is-2-fullhd{flex:none;width:16.66667%}.column.is-offset-2-fullhd{margin-left:16.66667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.33333%}.column.is-offset-4-fullhd{margin-left:33.33333%}.column.is-5-fullhd{flex:none;width:41.66667%}.column.is-offset-5-fullhd{margin-left:41.66667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.33333%}.column.is-offset-7-fullhd{margin-left:58.33333%}.column.is-8-fullhd{flex:none;width:66.66667%}.column.is-offset-8-fullhd{margin-left:66.66667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.33333%}.column.is-offset-10-fullhd{margin-left:83.33333%}.column.is-11-fullhd{flex:none;width:91.66667%}.column.is-offset-11-fullhd{margin-left:91.66667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0!important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width:769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width:1088px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap:0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap:0rem}.columns.is-variable.is-1{--columnGap:0.25rem}.columns.is-variable.is-2{--columnGap:0.5rem}.columns.is-variable.is-3{--columnGap:0.75rem}.columns.is-variable.is-4{--columnGap:1rem}.columns.is-variable.is-5{--columnGap:1.25rem}.columns.is-variable.is-6{--columnGap:1.5rem}.columns.is-variable.is-7{--columnGap:1.75rem}.columns.is-variable.is-8{--columnGap:2rem}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:-webkit-min-content;min-height:-moz-min-content;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0!important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem!important}@media screen and (min-width:769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.33333%}.tile.is-2{flex:none;width:16.66667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.33333%}.tile.is-5{flex:none;width:41.66667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.33333%}.tile.is-8{flex:none;width:66.66667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.33333%}.tile.is-11{flex:none;width:91.66667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:0 0}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width:1087px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,.7)}.hero.is-white .navbar-link.is-active,.hero.is-white .navbar-link:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white a.navbar-item:hover{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg,#e6e6e6 0,#fff 71%,#fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,.7)}.hero.is-black .navbar-link.is-active,.hero.is-black .navbar-link:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black a.navbar-item:hover{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}@media screen and (max-width:768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg,#000 0,#0a0a0a 71%,#181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width:1087px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,.7)}.hero.is-light .navbar-link.is-active,.hero.is-light .navbar-link:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light a.navbar-item:hover{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}@media screen and (max-width:768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg,#dfd8d9 0,#f5f5f5 71%,#fff 100%)}}.hero.is-dark{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag),.hero.is-dark strong{color:inherit}.hero.is-dark .title{color:#f5f5f5}.hero.is-dark .subtitle{color:rgba(245,245,245,.9)}.hero.is-dark .subtitle a:not(.button),.hero.is-dark .subtitle strong{color:#f5f5f5}@media screen and (max-width:1087px){.hero.is-dark .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.hero.is-dark .navbar-link{color:rgba(245,245,245,.7)}.hero.is-dark .navbar-link.is-active,.hero.is-dark .navbar-link:hover,.hero.is-dark a.navbar-item.is-active,.hero.is-dark a.navbar-item:hover{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a{color:#f5f5f5;opacity:.9}.hero.is-dark .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}@media screen and (max-width:768px){.hero.is-dark.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1f191a 0,#363636 71%,#46403f 100%)}}.hero.is-primary{background-color:#00d1b2;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag),.hero.is-primary strong{color:inherit}.hero.is-primary .title{color:#fff}.hero.is-primary .subtitle{color:rgba(255,255,255,.9)}.hero.is-primary .subtitle a:not(.button),.hero.is-primary .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-primary .navbar-menu{background-color:#00d1b2}}.hero.is-primary .navbar-item,.hero.is-primary .navbar-link{color:rgba(255,255,255,.7)}.hero.is-primary .navbar-link.is-active,.hero.is-primary .navbar-link:hover,.hero.is-primary a.navbar-item.is-active,.hero.is-primary a.navbar-item:hover{background-color:#00b89c;color:#fff}.hero.is-primary .tabs a{color:#fff;opacity:.9}.hero.is-primary .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#00d1b2}.hero.is-primary.is-bold{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}@media screen and (max-width:768px){.hero.is-primary.is-bold .navbar-menu{background-image:linear-gradient(141deg,#009e6c 0,#00d1b2 71%,#00e7eb 100%)}}.hero.is-link{background-color:#3273dc;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-link .navbar-menu{background-color:#3273dc}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,.7)}.hero.is-link .navbar-link.is-active,.hero.is-link .navbar-link:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link a.navbar-item:hover{background-color:#2366d1;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#3273dc}.hero.is-link.is-bold{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}@media screen and (max-width:768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg,#1577c6 0,#3273dc 71%,#4366e5 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,.7)}.hero.is-info .navbar-link.is-active,.hero.is-info .navbar-link:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info a.navbar-item:hover{background-color:#118fe4;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg,#04a6d7 0,#209cee 71%,#3287f5 100%)}@media screen and (max-width:768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg,#04a6d7 0,#209cee 71%,#3287f5 100%)}}.hero.is-success{background-color:#23d160;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-success .navbar-menu{background-color:#23d160}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,.7)}.hero.is-success .navbar-link.is-active,.hero.is-success .navbar-link:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success a.navbar-item:hover{background-color:#20bc56;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#23d160}.hero.is-success.is-bold{background-image:linear-gradient(141deg,#12af2f 0,#23d160 71%,#2ce28a 100%)}@media screen and (max-width:768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg,#12af2f 0,#23d160 71%,#2ce28a 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,.7)}@media screen and (max-width:1087px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,.7)}.hero.is-warning .navbar-link.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning a.navbar-item:hover{background-color:#ffd83d;color:rgba(0,0,0,.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,.7);opacity:.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,.7);border-color:rgba(0,0,0,.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}@media screen and (max-width:768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ffaf24 0,#ffdd57 71%,#fffa70 100%)}}.hero.is-danger{background-color:#ff3860;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width:1087px){.hero.is-danger .navbar-menu{background-color:#ff3860}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,.7)}.hero.is-danger .navbar-link.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger a.navbar-item:hover{background-color:#ff1f4b;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ff3860}.hero.is-danger.is-bold{background-image:linear-gradient(141deg,#ff0561 0,#ff3860 71%,#ff5257 100%)}@media screen and (max-width:768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg,#ff0561 0,#ff3860 71%,#ff5257 100%)}}.hero.is-small .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width:769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width:769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-fullheight .hero-body,.hero.is-halfheight .hero-body{align-items:center;display:flex}.hero.is-fullheight .hero-body>.container,.hero.is-halfheight .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;-webkit-transform:translate3d(-50%,-50%,0);transform:translate3d(-50%,-50%,0)}.hero-video.is-transparent{opacity:.3}@media screen and (max-width:768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width:768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:.75rem}}@media screen and (min-width:769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-foot,.hero-head{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width:1088px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}
+ web/css/font-awesome.min.css view
@@ -0,0 +1,4 @@+/*!+ * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome+ * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
+ web/css/toodles.css view
@@ -0,0 +1,130 @@+.navbar {+ background-color: #346df0;+ width: 100%;+}++.navbar-item {+ margin-left: 1em;+ color: white;+}++.side-bar {+ padding-left: 2em;+}++.content-container {+ margin-top: 1em;+}++.main-container {+ padding-right: 2%;+}++.todo-item-location {+ font-size: .7em;+ color: grey;+}++.filter-todos {+ width: 95%;+}++.loading-spinner {+ line-height: 2em;+}++.loading-spinner a {+ border: none;+}++.navbar-item {+ cursor: pointer;+}++.navbar-item:active {+ color: grey;+}++.priority-number {+ width: 5em;+}++.todo-source-link {+ font-size: .75em;+}++.todo-source-link a:link, .todo-source-link a:visited {+ color: grey !important;+}++.sortable {+ cursor: pointer;+}++.tag-block{+ margin-top: .3em;+ max-width: 200px;+}++.tag-item {+ /* background-color: #E9F1F7; */+ background-color: #4F6D7A;+ line-height: 2;+ color: white;+ font-size: .75em;+ margin-right: .2em;+ padding: .3em;+ text-align: center;+}++.todo-item-body {+ word-wrap: break-word;+}++td, th {+ word-wrap: break-word;+}++.attribute-block{+}++.attribute-item {+ background-color: #D6F6DD;+ margin-right: .2em;+ padding: .3em;+ line-height: 2;+ font-size: .75em;+}++.priority-column {+ min-width: 105px;+}++.modal-content {+ background-color: white;+ min-width: 50%;+ min-height: 20%;+}++.edit-todo-field-input {+ width: 50%;+}+.edit-todo-form{+ padding: 2em;+}++.navbar-burger {+ color: #363636;+}++.is-active .navbar-item {+ color: black;+}++.is-active .navbar-item:hover {+ background-color: #dbdbdb;+}++.top-div {+ overflow-x: scroll;+}
+ web/fonts/fontawesome-webfont.woff view
binary file changed (absent → 98024 bytes)
+ web/fonts/fontawesome-webfont.woff2 view
binary file changed (absent → 98024 bytes)
+ web/html/index.html view
@@ -0,0 +1,147 @@+<head>+ <script src="/static/js/vue.js"></script>+ <script src="/static/js/jquery-3.3.1.min.js"></script>+ <script src="/static/js/app.js"></script>+ <link rel="stylesheet" href="/static/css/bulma.min.css">+ <link rel="stylesheet" href="/static/css/toodles.css">+ <link rel="stylesheet" href="/static/css/font-awesome.min.css">+</head>++<body>+ <div id="top-div">+ <nav class="navbar" role="navigation" aria-label="main navigation">+ <div class="navbar-brand">+ <a class="navbar-item" href="#">+ Toodles+ </a>+ <a role="button" class="navbar-burger" aria-label="menu" aria-expanded="false" v-on:click="toggleMenuBurger">+ <span aria-hidden="true"></span>+ <span aria-hidden="true"></span>+ <span aria-hidden="true"></span>+ </a>+ </div>+ <div class="navbar-menu">+ <div class="navbar-end">+ <div class="navbar-item edit-todos" v-on:click="editSeletedTodos" v-show="todos.filter(t => t.selected).some(t => !!t)">+ <span class="icon">+ <i class="fa fa-edit"></i>+ </span>+ <span>Edit</span>+ </div>+ <div class="navbar-item delete-todo" v-on:click="deleteSeletedTodos" v-show="todos.filter(t => t.selected).some(t => !!t)">+ <span class="icon">+ <i class="fa fa-trash"></i>+ </span>+ <span>Delete</span>+ </div>+ <div class="select-all navbar-item" v-on:click="selectAll">+ <span class="icon">+ <i class="fa fa-check-square"></i>+ </span>+ <span>Select All</span>+ </div>+ <div class="refresh navbar-item" v-on:click="refresh(true)()">+ <span class="icon">+ <i class="fa fa-refresh"></i>+ </span>+ <span>Refresh</span>+ </div>+ </div>+ </div>+ </nav>+ <div class="modal">+ <div class="modal-background" @click="closeModal"></div>+ <div class="modal-content">+ <div class="edit-todo-form container">+ <div class="field edit-todo-field-input">+ <label class="label">Set Assignee</label>+ <div class="control">+ <input class="input" type="text" placeholder="Assignee" v-model="setAssignee">+ </div>+ </div>++ <div class="field edit-todo-field-input">+ <label class="label">Add Tag (comma separated)</label>+ <div class="control">+ <input class="input" type="text" placeholder="#bug,#techdebt,..." v-model="addTags">+ </div>+ </div>++ <div class="field edit-todo-field-input">+ <label class="label">Set Priority</label>+ <div class="control">+ <input class="input" type="number" placeholder="Number" v-model="setPriority">+ </div>+ </div>++ <button class="button is-primary submit-todo-edits" v-on:click="submitTodoEdits">Submit</button>+ </div>+ </div>+ <button class="modal-close is-large" aria-label="close" @click="closeModal"></button>+ </div>+ <div class="columns content-container">+ <div class="side-bar column is-one-quarter">+ <label for="todo-search">Filter</label>+ <input placeholder="Search text, assignee, tags" class="input filter-todos" name="todo-search" type="text" v-model="todoSearch">++ <br><br>++ <span>+ <div class="select">+ <select v-model="customSortSelected" @change="sortTodos">+ <option value="">Custom Attribute Sort</option>+ <option v-for="attrKey in customAttributeKeys">{{ attrKey }}</option>+ </select>+ </div>+ <button class="button" v-show="customSortSelected" v-on:click="sortTodos">+ <span class="icon">+ <i class="fa fa-sort"></i>+ </span>+ </button>+ </span>+ </div>+ <div class="main-container container content column is-three-quarters">+ <div class="loading-spinner" v-show="loading"><a class="button is-loading">Loading</a> Loading TODO's. If your project is large, this can take a few moments...</div>+ <table class="table todo-list is-striped is-hoverable">+ <thead>+ <tr>+ <td></td>+ <th v-on:click="sortTodos('priority')" class="sortable priority-column">+ Priority+ <span class="icon">+ <i class="fa fa-sort"></i>+ </span>+ </th>+ <th class="todo-item-body">Body</th>+ <th>Assignee</th>+ <th>Tags</th>+ </tr>+ </thead>+ <tr class="todo-item" v-for="todo in todos" v-if="todo.body.indexOf(todoSearch) !== -1 || (todo.assignee || '').indexOf(todoSearch) !== -1 || (todo.tags || []).toString().indexOf(todoSearch) !== -1" @change="updateTodo('top level')">+ <td><input type="checkbox" v-model="todo.selected"></td>+ <td class="todo-item-priority" >+ <div v-show="todo.priority !== undefined">{{ todo.priority }}</div>+ </td>+ <td class='todo-item-body'>+ <div class="todo-source-link"><a :href="'/source_file/' + todo.id + '#line-' + todo.lineNumber" target="_blank">{{ todo.sourceFile }}:{{ todo.lineNumber}}</a></div>+ <div>{{ todo.body }}</div>+ </td>+ <td class="todo-item-assignee" >{{ todo.assignee }}</td>+ <td class="todo-item-customAttributes">+ <div v-show="Object.keys(todo.customAttributes).length" class="attribute-block">+ <span v-for="entry in Object.entries(todo.customAttributes)" class="attribute-item" @change="updateTodo('here')">+ <span >{{entry[0]}}</span>: <span >{{entry[1]}}</span>+ </span>+ </div>+ <div class="tag-block" v-show="Object.keys(todo.tags).length">+ <span v-for="tag in todo.tags" class="tag-item">+ <span >{{tag}}</span>+ </span>+ </div>+ </td>+ </tr>+ </table>+ </div>+ </div>+ </div>+</body>
+ web/js/app.js view
@@ -0,0 +1,198 @@+$(document).ready(function() {+ new Vue({+ el: '#top-div',+ data: () => {+ return {+ todos: [],+ todoSearch: "",+ loading: true,+ priorityFilter: "any",+ sortMultiplier: {'priority': 1},+ customSortSelected: '',+ customAttributeKeys: [],+ setAssignee: "",+ addTags: "",+ setPriority: null+ }+ },+ created: function() {+ this.refresh()()+ },+ methods: {+ refresh: function(recompute) {+ return function() {+ this.loading = true+ $.ajax("/todos?recompute=" + !!recompute, {+ type: "GET",+ dataType: "json",+ success: function(data) {+ console.log("here", data)+ this.todos = data.todos.map(t => {+ return {+ id: t.id,+ assignee: t.assignee,+ body: t.body.join("\n"),+ lineNumber: t.lineNumber,+ sourceFile: t.sourceFile,+ priority: t.priority,+ tags: t.tags,+ customAttributes: t.customAttributes.reduce((acc, curr) => {+ console.log(acc, curr)+ acc[curr[0]] = curr[1]+ console.log(acc, curr)+ return acc+ }, {}),+ selected: false+ }+ })+ console.log("todos", this.todos)+ this.loading = false+ if (!recompute) {+ this.sortTodos('priority')+ }++ this.customAttributeKeys = Array.from(new Set([].concat.apply([], this.todos.map(t => {+ return Object.keys(t.customAttributes)+ }))))++ this.customAttributeKeys.sort()+ }.bind(this),+ error: function() {+ this.loading = false+ alert("Error! D: Check your connection to the server")+ }.bind(this)+ })+ }.bind(this)+ },+// TODO(avi|p=2|key=a val) - make sorts persist refreshes+// TODO(avi|p=2|key=a val) - make sorts persist refreshes+ sortTodos: function(sortField) {+ if (!sortField || typeof sortField !== 'string') {+ sortField = this.customSortSelected+ }+ // multiplier for custom sort val that does asc / desc sort+ const multiplier = this.sortMultiplier[sortField] || 1+ if (sortField === 'priority') {+ // so we keep nulls at the end always when sorting+ const valDefault = multiplier > 0 ? Number.MAX_SAFE_INTEGER : Number.MIN_SAFE_INTEGER+ this.todos.sort(function(a, b) {+ const _a = (a.priority !== null ? a.priority : valDefault)+ const _b = (b.priority !== null ? b.priority : valDefault)+ if (_a < _b) {+ return multiplier * -1+ } else if (_a > _b) {+ return multiplier * 1+ }+ return 0+ })+ } else { // custom+ // so we keep nulls at the end always when sorting+ const valDefault = multiplier > 0 ? "zzzzzzzzzz" : ""+ this.todos.sort(function(a, b) {+ const _a = (a.customAttributes[sortField] || valDefault)+ const _b = (b.customAttributes[sortField] || valDefault)+ if (_a < _b) {+ return multiplier * -1+ } else if (_a > _b) {+ return multiplier * 1+ }+ return 0+ })+ }++ this.sortMultiplier[sortField] = multiplier * -1++ return null+ },++ updateTodo: function(name) {+ return function() {+ console.log(name)+ }+ },++ editSeletedTodos: function() {+ $(".modal").addClass("is-active")+ },++ closeModal: function() {+ $(".modal").removeClass("is-active")+ },++ deleteSeletedTodos: function() {+ if (confirm("Are you sure you want to delete these todo's?")) {+ $.ajax({+ url: "/todos/delete",+ type: "POST",+ dataType: "json",+ contentType: 'application/json',+ data: JSON.stringify({+ ids: this.todos.filter(t => t.selected).map(t => t.id)+ }),+ success: function(data){+ this.todos = this.todos.filter(function(t) {+ return !t.selected+ }.bind(this))+ }.bind(this)+ })+ } else {+ console.log("no")+ }+ },++ selectAll: function() {+ this.todos.map(function(t) {+ t.selected = true+ })+ },++ toggleMenuBurger: function(ev) {+ $(".navbar-burger").toggleClass("is-active")+ $(".navbar-menu").toggleClass("is-active")+ },++ submitTodoEdits: function(){+ $.ajax({+ url: "/todos/edit",+ type: "POST",+ dataType: "json",+ contentType: 'application/json',+ data: JSON.stringify({+ editIds: this.todos.filter(t => t.selected).map(t => t.id),+ setAssignee: this.setAssignee,+ addTags: this.addTags.split(",").map(s => s.trim()).filter(s => !!s)+ .map(tag => {+ return tag[0] === "#" ?+ tag :+ "#" + tag++ }),+ setPriority: parseInt(this.setPriority)+ }),+ success: function(data){+ this.todos.filter(function(t) {+ return t.selected+ }.bind(this))+ .map(function(t) {+ if (this.setAssignee) {+ t.assignee = this.setAssignee+ }+ if (this.addTags) {+ t.tags = t.tags.concat(this.addTags)+ }+ if (this.setPriority) {+ t.priority = parseInt(this.setPriority)+ }+ }.bind(this))+ this.closeModal()+ this.todos.map(t => {+ t.selected = false+ })+ }.bind(this),+ error: console.log+ })+ }+ }+ })+})+
+ web/js/jquery-3.3.1.min.js view
@@ -0,0 +1,2 @@+/*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */+!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:n.sort,splice:n.splice},w.extend=w.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||g(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(e=arguments[s]))for(t in e)n=a[t],a!==(r=e[t])&&(l&&r&&(w.isPlainObject(r)||(i=Array.isArray(r)))?(i?(i=!1,o=n&&Array.isArray(n)?n:[]):o=n&&w.isPlainObject(n)?n:{},a[t]=w.extend(l,o,r)):void 0!==r&&(a[t]=r));return a},w.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isPlainObject:function(e){var t,n;return!(!e||"[object Object]"!==c.call(e))&&(!(t=i(e))||"function"==typeof(n=f.call(t,"constructor")&&t.constructor)&&p.call(n)===d)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},globalEval:function(e){m(e)},each:function(e,t){var n,r=0;if(C(e)){for(n=e.length;r<n;r++)if(!1===t.call(e[r],r,e[r]))break}else for(r in e)if(!1===t.call(e[r],r,e[r]))break;return e},trim:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(C(Object(e))?w.merge(n,"string"==typeof e?[e]:e):s.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:u.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)(r=!t(e[o],o))!==s&&i.push(e[o]);return i},map:function(e,t,n){var r,i,o=0,s=[];if(C(e))for(r=e.length;o<r;o++)null!=(i=t(e[o],o,n))&&s.push(i);else for(o in e)null!=(i=t(e[o],o,n))&&s.push(i);return a.apply([],s)},guid:1,support:h}),"function"==typeof Symbol&&(w.fn[Symbol.iterator]=n[Symbol.iterator]),w.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function C(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!g(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},P="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",I="\\["+M+"*("+R+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+R+"))|)"+M+"*\\]",W=":("+R+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+I+")*)|.*)\\)|)",$=new RegExp(M+"+","g"),B=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),F=new RegExp("^"+M+"*,"+M+"*"),_=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="<a id='"+b+"'></a><select id='"+b+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:he(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:he(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}}).pseudos.nth=r.pseudos.eq;for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})r.pseudos[t]=fe(t);for(t in{submit:!0,reset:!0})r.pseudos[t]=pe(t);function ye(){}ye.prototype=r.filters=r.pseudos,r.setFilters=new ye,a=oe.tokenize=function(e,t){var n,i,o,a,s,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=r.preFilter;while(s){n&&!(i=F.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),n=!1,(i=_.exec(s))&&(n=i.shift(),o.push({value:n,type:i[0].replace(B," ")}),s=s.slice(n.length));for(a in r.filter)!(i=V[a].exec(s))||l[a]&&!(i=l[a](i))||(n=i.shift(),o.push({value:n,type:a,matches:i}),s=s.slice(n.length));if(!n)break}return t?s.length:s?oe.error(e):k(e,u).slice(0)};function ve(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function me(e,t,n){var r=t.dir,i=t.next,o=i||r,a=n&&"parentNode"===o,s=C++;return t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||a)return e(t,n,i);return!1}:function(t,n,u){var l,c,f,p=[T,s];if(u){while(t=t[r])if((1===t.nodeType||a)&&e(t,n,u))return!0}else while(t=t[r])if(1===t.nodeType||a)if(f=t[b]||(t[b]={}),c=f[t.uniqueID]||(f[t.uniqueID]={}),i&&i===t.nodeName.toLowerCase())t=t[r]||t;else{if((l=c[o])&&l[0]===T&&l[1]===s)return p[2]=l[2];if(c[o]=p,p[2]=e(t,n,u))return!0}return!1}}function xe(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r<i;r++)oe(e,t[r],n);return n}function we(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function Te(e,t,n,r,i,o){return r&&!r[b]&&(r=Te(r)),i&&!i[b]&&(i=Te(i,o)),se(function(o,a,s,u){var l,c,f,p=[],d=[],h=a.length,g=o||be(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?g:we(g,p,e,s,u),v=n?i||(o?e:h||r)?[]:a:y;if(n&&n(y,v,s,u),r){l=we(v,d),r(l,[],s,u),c=l.length;while(c--)(f=l[c])&&(v[d[c]]=!(y[d[c]]=f))}if(o){if(i||e){if(i){l=[],c=v.length;while(c--)(f=v[c])&&l.push(y[c]=f);i(null,v=[],l,u)}c=v.length;while(c--)(f=v[c])&&(l=i?O(o,f):p[c])>-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u<o;u++)if(n=r.relative[e[u].type])p=[me(xe(p),n)];else{if((n=r.filter[e[u].type].apply(null,e[u].matches))[b]){for(i=++u;i<o;i++)if(r.relative[e[i].type])break;return Te(u>1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u<i&&Ce(e.slice(u,i)),i<o&&Ce(e=e.slice(i)),i<o&&ve(e))}p.push(n)}return xe(p)}function Ee(e,t){var n=t.length>0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t<r;t++)if(w.contains(i[t],this))return!0}));for(n=this.pushStack([]),t=0;t<r;t++)w.find(e,i[t],n);return r>1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e<n;e++)if(w.contains(this,t[e]))return!0})},closest:function(e,t){var n,r=0,i=this.length,o=[],a="string"!=typeof e&&w(e);if(!D.test(e))for(;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s<o.length)!1===o[s].apply(n[0],n[1])&&e.stopOnFalse&&(s=o.length,n=!1)}e.memory||(n=!1),t=!1,i&&(o=n?[]:"")},l={add:function(){return o&&(n&&!t&&(s=o.length-1,a.push(n)),function t(n){w.each(n,function(n,r){g(r)?e.unique&&l.has(r)||o.push(r):r&&r.length&&"string"!==x(r)&&t(r)})}(arguments),n&&!t&&u()),this},remove:function(){return w.each(arguments,function(e,t){var n;while((n=w.inArray(t,o,n))>-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t<o)){if((e=r.apply(s,u))===n.promise())throw new TypeError("Thenable self-resolution");l=e&&("object"==typeof e||"function"==typeof e)&&e.then,g(l)?i?l.call(e,a(o,n,I,i),a(o,n,W,i)):(o++,l.call(e,a(o,n,I,i),a(o,n,W,i),a(o,n,I,n.notifyWith))):(r!==I&&(s=void 0,u=[e]),(i||n.resolveWith)(s,u))}},c=i?l:function(){try{l()}catch(e){w.Deferred.exceptionHook&&w.Deferred.exceptionHook(e,c.stackTrace),t+1>=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},X=/^-ms-/,U=/-([a-z])/g;function V(e,t){return t.toUpperCase()}function G(e){return e.replace(X,"ms-").replace(U,V)}var Y=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};function Q(){this.expando=w.expando+Q.uid++}Q.uid=1,Q.prototype={cache:function(e){var t=e[this.expando];return t||(t={},Y(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,i=this.cache(e);if("string"==typeof t)i[G(t)]=n;else for(r in t)i[G(r)]=t[r];return i},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][G(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){n=(t=Array.isArray(t)?t.map(G):(t=G(t))in r?[t]:t.match(M)||[]).length;while(n--)delete r[t[n]]}(void 0===t||w.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!w.isEmptyObject(t)}};var J=new Q,K=new Q,Z=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ee=/[A-Z]/g;function te(e){return"true"===e||"false"!==e&&("null"===e?null:e===+e+""?+e:Z.test(e)?JSON.parse(e):e)}function ne(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ee,"-$&").toLowerCase(),"string"==typeof(n=e.getAttribute(r))){try{n=te(n)}catch(e){}K.set(e,t,n)}else n=void 0;return n}w.extend({hasData:function(e){return K.hasData(e)||J.hasData(e)},data:function(e,t,n){return K.access(e,t,n)},removeData:function(e,t){K.remove(e,t)},_data:function(e,t,n){return J.access(e,t,n)},_removeData:function(e,t){J.remove(e,t)}}),w.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=K.get(o),1===o.nodeType&&!J.get(o,"hasDataAttrs"))){n=a.length;while(n--)a[n]&&0===(r=a[n].name).indexOf("data-")&&(r=G(r.slice(5)),ne(o,r,i[r]));J.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){K.set(this,e)}):z(this,function(t){var n;if(o&&void 0===t){if(void 0!==(n=K.get(o,e)))return n;if(void 0!==(n=ne(o,e)))return n}else this.each(function(){K.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?w.queue(this[0],e):void 0===t?this:this.each(function(){var n=w.queue(this,e,t);w._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&w.dequeue(this,e)})},dequeue:function(e){return this.each(function(){w.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=w.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=void 0),e=e||"fx";while(a--)(n=J.get(o[a],e+"queueHooks"))&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}});var re=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ie=new RegExp("^(?:([+-])=|)("+re+")([a-z%]*)$","i"),oe=["Top","Right","Bottom","Left"],ae=function(e,t){return"none"===(e=t||e).style.display||""===e.style.display&&w.contains(e.ownerDocument,e)&&"none"===w.css(e,"display")},se=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i};function ue(e,t,n,r){var i,o,a=20,s=r?function(){return r.cur()}:function(){return w.css(e,t,"")},u=s(),l=n&&n[3]||(w.cssNumber[t]?"":"px"),c=(w.cssNumber[t]||"px"!==l&&+u)&&ie.exec(w.css(e,t));if(c&&c[3]!==l){u/=2,l=l||c[3],c=+u||1;while(a--)w.style(e,t,c+l),(1-o)*(1-(o=s()/u||.5))<=0&&(a=0),c/=o;c*=2,w.style(e,t,c+l),n=n||[]}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}var le={};function ce(e){var t,n=e.ownerDocument,r=e.nodeName,i=le[r];return i||(t=n.body.appendChild(n.createElement(r)),i=w.css(t,"display"),t.parentNode.removeChild(t),"none"===i&&(i="block"),le[r]=i,i)}function fe(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)(r=e[o]).style&&(n=r.style.display,t?("none"===n&&(i[o]=J.get(r,"display")||null,i[o]||(r.style.display="")),""===r.style.display&&ae(r)&&(i[o]=ce(r))):"none"!==n&&(i[o]="none",J.set(r,"display",n)));for(o=0;o<a;o++)null!=i[o]&&(e[o].style.display=i[o]);return e}w.fn.extend({show:function(){return fe(this,!0)},hide:function(){return fe(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){ae(this)?w(this).show():w(this).hide()})}});var pe=/^(?:checkbox|radio)$/i,de=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n<r;n++)J.set(e[n],"globalEval",!t||J.get(t[n],"globalEval"))}var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d<h;d++)if((o=e[d])||0===o)if("object"===x(o))w.merge(p,o.nodeType?[o]:o);else if(me.test(o)){a=a||f.appendChild(t.createElement("div")),s=(de.exec(o)||["",""])[1].toLowerCase(),u=ge[s]||ge._default,a.innerHTML=u[1]+w.htmlPrefilter(o)+u[2],c=u[0];while(c--)a=a.lastChild;w.merge(p,a.childNodes),(a=f.firstChild).textContent=""}else p.push(t.createTextNode(o));f.textContent="",d=0;while(o=p[d++])if(r&&w.inArray(o,r)>-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n<arguments.length;n++)u[n]=arguments[n];if(t.delegateTarget=this,!c.preDispatch||!1!==c.preDispatch.call(this,t)){s=w.event.handlers.call(this,t,l),n=0;while((o=s[n++])&&!t.isPropagationStopped()){t.currentTarget=o.elem,r=0;while((a=o.handlers[r++])&&!t.isImmediatePropagationStopped())t.rnamespace&&!t.rnamespace.test(a.namespace)||(t.handleObj=a,t.data=a.data,void 0!==(i=((w.event.special[a.origType]||{}).handle||a.handler).apply(o.elem,u))&&!1===(t.result=i)&&(t.preventDefault(),t.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,t),t.result}},handlers:function(e,t){var n,r,i,o,a,s=[],u=t.delegateCount,l=e.target;if(u&&l.nodeType&&!("click"===e.type&&e.button>=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n<u;n++)void 0===a[i=(r=t[n]).selector+" "]&&(a[i]=r.needsContext?w(i,this).index(l)>-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u<t.length&&s.push({elem:l,handlers:t.slice(u)}),s},addProp:function(e,t){Object.defineProperty(w.Event.prototype,e,{enumerable:!0,configurable:!0,get:g(t)?function(){if(this.originalEvent)return t(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[e]},set:function(t){Object.defineProperty(this,e,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(e){return e[w.expando]?e:new w.Event(e)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==Se()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===Se()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&N(this,"input"))return this.click(),!1},_default:function(e){return N(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}}},w.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)},w.Event=function(e,t){if(!(this instanceof w.Event))return new w.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&!1===e.returnValue?Ee:ke,this.target=e.target&&3===e.target.nodeType?e.target.parentNode:e.target,this.currentTarget=e.currentTarget,this.relatedTarget=e.relatedTarget):this.type=e,t&&w.extend(this,t),this.timeStamp=e&&e.timeStamp||Date.now(),this[w.expando]=!0},w.Event.prototype={constructor:w.Event,isDefaultPrevented:ke,isPropagationStopped:ke,isImmediatePropagationStopped:ke,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=Ee,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=Ee,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=Ee,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},w.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(e){var t=e.button;return null==e.which&&we.test(e.type)?null!=e.charCode?e.charCode:e.keyCode:!e.which&&void 0!==t&&Te.test(e.type)?1&t?1:2&t?3:4&t?2:0:e.which}},w.event.addProp),w.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){w.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||w.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),w.fn.extend({on:function(e,t,n,r){return De(this,e,t,n,r)},one:function(e,t,n,r){return De(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,w(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return!1!==t&&"function"!=typeof t||(n=t,t=void 0),!1===n&&(n=ke),this.each(function(){w.event.remove(this,e,n,t)})}});var Ne=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/<script|<style|<link/i,je=/checked\s*(?:[^=]|=\s*.checked.)/i,qe=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n<r;n++)w.event.add(t,i,l[i][n])}K.hasData(e)&&(s=K.access(e),u=w.extend({},s),K.set(t,u))}}function Me(e,t){var n=t.nodeName.toLowerCase();"input"===n&&pe.test(e.type)?t.checked=e.checked:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}function Re(e,t,n,r){t=a.apply([],t);var i,o,s,u,l,c,f=0,p=e.length,d=p-1,y=t[0],v=g(y);if(v||p>1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f<p;f++)l=i,f!==d&&(l=w.clone(l,!0,!0),u&&w.merge(s,ye(l,"script"))),n.call(e[f],l,f);if(u)for(c=s[s.length-1].ownerDocument,w.map(s,Oe),f=0;f<u;f++)l=s[f],he.test(l.type||"")&&!J.access(l,"globalEval")&&w.contains(c,l)&&(l.src&&"module"!==(l.type||"").toLowerCase()?w._evalUrl&&w._evalUrl(l.src):m(l.textContent.replace(qe,""),c,l))}return e}function Ie(e,t,n){for(var r,i=t?w.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||w.cleanData(ye(r)),r.parentNode&&(n&&w.contains(r.ownerDocument,r)&&ve(ye(r,"script")),r.parentNode.removeChild(r));return e}w.extend({htmlPrefilter:function(e){return e.replace(Ne,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r<i;r++)Me(o[r],a[r]);if(t)if(n)for(o=o||ye(e),a=a||ye(s),r=0,i=o.length;r<i;r++)Pe(o[r],a[r]);else Pe(e,s);return(a=ye(s,"script")).length>0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n<r;n++)1===(t=this[n]||{}).nodeType&&(w.cleanData(ye(t,!1)),t.innerHTML=e);t=0}catch(e){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return Re(this,arguments,function(t){var n=this.parentNode;w.inArray(this,e)<0&&(w.cleanData(ye(this)),n&&n.replaceChild(t,this))},e)}}),w.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){w.fn[e]=function(e){for(var n,r=[],i=w(e),o=i.length-1,a=0;a<=o;a++)n=a===o?this:this.clone(!0),w(i[a])[t](n),s.apply(r,n.get());return this.pushStack(r)}});var We=new RegExp("^("+re+")(?!px)[a-z%]+$","i"),$e=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},Be=new RegExp(oe.join("|"),"i");!function(){function t(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",be.appendChild(l).appendChild(c);var t=e.getComputedStyle(c);i="1%"!==t.top,u=12===n(t.marginLeft),c.style.right="60%",s=36===n(t.right),o=36===n(t.width),c.style.position="absolute",a=36===c.offsetWidth||"absolute",be.removeChild(l),c=null}}function n(e){return Math.round(parseFloat(e))}var i,o,a,s,u,l=r.createElement("div"),c=r.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",h.clearCloneStyle="content-box"===c.style.backgroundClip,w.extend(h,{boxSizingReliable:function(){return t(),o},pixelBoxStyles:function(){return t(),s},pixelPosition:function(){return t(),i},reliableMarginLeft:function(){return t(),u},scrollboxSize:function(){return t(),a}}))}();function Fe(e,t,n){var r,i,o,a,s=e.style;return(n=n||$e(e))&&(""!==(a=n.getPropertyValue(t)||n[t])||w.contains(e.ownerDocument,e)||(a=w.style(e,t)),!h.pixelBoxStyles()&&We.test(a)&&Be.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o)),void 0!==a?a+"":a}function _e(e,t){return{get:function(){if(!e())return(this.get=t).apply(this,arguments);delete this.get}}}var ze=/^(none|table(?!-c[ea]).+)/,Xe=/^--/,Ue={position:"absolute",visibility:"hidden",display:"block"},Ve={letterSpacing:"0",fontWeight:"400"},Ge=["Webkit","Moz","ms"],Ye=r.createElement("div").style;function Qe(e){if(e in Ye)return e;var t=e[0].toUpperCase()+e.slice(1),n=Ge.length;while(n--)if((e=Ge[n]+t)in Ye)return e}function Je(e){var t=w.cssProps[e];return t||(t=w.cssProps[e]=Qe(e)||e),t}function Ke(e,t,n){var r=ie.exec(t);return r?Math.max(0,r[2]-(n||0))+(r[3]||"px"):t}function Ze(e,t,n,r,i,o){var a="width"===t?1:0,s=0,u=0;if(n===(r?"border":"content"))return 0;for(;a<4;a+=2)"margin"===n&&(u+=w.css(e,n+oe[a],!0,i)),r?("content"===n&&(u-=w.css(e,"padding"+oe[a],!0,i)),"margin"!==n&&(u-=w.css(e,"border"+oe[a]+"Width",!0,i))):(u+=w.css(e,"padding"+oe[a],!0,i),"padding"!==n?u+=w.css(e,"border"+oe[a]+"Width",!0,i):s+=w.css(e,"border"+oe[a]+"Width",!0,i));return!r&&o>=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a<i;a++)o[t[a]]=w.css(e,t[a],!1,r);return o}return void 0!==n?w.style(e,t,n):w.css(e,t)},e,t,arguments.length>1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function ct(e,t,n){var r,i,o,a,s,u,l,c,f="width"in t||"height"in t,p=this,d={},h=e.style,g=e.nodeType&&ae(e),y=J.get(e,"fxshow");n.queue||(null==(a=w._queueHooks(e,"fx")).unqueued&&(a.unqueued=0,s=a.empty.fire,a.empty.fire=function(){a.unqueued||s()}),a.unqueued++,p.always(function(){p.always(function(){a.unqueued--,w.queue(e,"fx").length||a.empty.fire()})}));for(r in t)if(i=t[r],it.test(i)){if(delete t[r],o=o||"toggle"===i,i===(g?"hide":"show")){if("show"!==i||!y||void 0===y[r])continue;g=!0}d[r]=y&&y[r]||w.style(e,r)}if((u=!w.isEmptyObject(t))||!w.isEmptyObject(d)){f&&1===e.nodeType&&(n.overflow=[h.overflow,h.overflowX,h.overflowY],null==(l=y&&y.display)&&(l=J.get(e,"display")),"none"===(c=w.css(e,"display"))&&(l?c=l:(fe([e],!0),l=e.style.display||l,c=w.css(e,"display"),fe([e]))),("inline"===c||"inline-block"===c&&null!=l)&&"none"===w.css(e,"float")&&(u||(p.done(function(){h.display=l}),null==l&&(c=h.display,l="none"===c?"":c)),h.display="inline-block")),n.overflow&&(h.overflow="hidden",p.always(function(){h.overflow=n.overflow[0],h.overflowX=n.overflow[1],h.overflowY=n.overflow[2]})),u=!1;for(r in d)u||(y?"hidden"in y&&(g=y.hidden):y=J.access(e,"fxshow",{display:l}),o&&(y.hidden=!g),g&&fe([e],!0),p.done(function(){g||fe([e]),J.remove(e,"fxshow");for(r in d)w.style(e,r,d[r])})),u=lt(g?y[r]:0,r,p),r in y||(y[r]=u.start,g&&(u.end=u.start,u.start=0))}}function ft(e,t){var n,r,i,o,a;for(n in e)if(r=G(n),i=t[r],o=e[n],Array.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),(a=w.cssHooks[r])&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function pt(e,t,n){var r,i,o=0,a=pt.prefilters.length,s=w.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=nt||st(),n=Math.max(0,l.startTime+l.duration-t),r=1-(n/l.duration||0),o=0,a=l.tweens.length;o<a;o++)l.tweens[o].run(r);return s.notifyWith(e,[l,r,n]),r<1&&a?n:(a||s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:w.extend({},t),opts:w.extend(!0,{specialEasing:{},easing:w.easing._default},n),originalProperties:t,originalOptions:n,startTime:nt||st(),duration:n.duration,tweens:[],createTween:function(t,n){var r=w.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(ft(c,l.opts.specialEasing);o<a;o++)if(r=pt.prefilters[o].call(l,e,c,l.opts))return g(r.stop)&&(w._queueHooks(l.elem,l.opts.queue).stop=r.stop.bind(r)),r;return w.map(c,lt,l),g(l.opts.start)&&l.opts.start.call(e,l),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always),w.fx.timer(w.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l}w.Animation=w.extend(pt,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return ue(n.elem,e,ie.exec(t),n),n}]},tweener:function(e,t){g(e)?(t=e,e=["*"]):e=e.match(M);for(var n,r=0,i=e.length;r<i;r++)n=e[r],pt.tweeners[n]=pt.tweeners[n]||[],pt.tweeners[n].unshift(t)},prefilters:[ct],prefilter:function(e,t){t?pt.prefilters.unshift(e):pt.prefilters.push(e)}}),w.speed=function(e,t,n){var r=e&&"object"==typeof e?w.extend({},e):{complete:n||!n&&t||g(e)&&e,duration:e,easing:n&&t||t&&!g(t)&&t};return w.fx.off?r.duration=0:"number"!=typeof r.duration&&(r.duration in w.fx.speeds?r.duration=w.fx.speeds[r.duration]:r.duration=w.fx.speeds._default),null!=r.queue&&!0!==r.queue||(r.queue="fx"),r.old=r.complete,r.complete=function(){g(r.old)&&r.old.call(this),r.queue&&w.dequeue(this,r.queue)},r},w.fn.extend({fadeTo:function(e,t,n,r){return this.filter(ae).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=w.isEmptyObject(e),o=w.speed(t,n,r),a=function(){var t=pt(this,w.extend({},e),o);(i||J.get(this,"finish"))&&t.stop(!0)};return a.finish=a,i||!1===o.queue?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&!1!==e&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=w.timers,a=J.get(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&ot.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||w.dequeue(this,e)})},finish:function(e){return!1!==e&&(e=e||"fx"),this.each(function(){var t,n=J.get(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=w.timers,a=r?r.length:0;for(n.finish=!0,w.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),w.each(["toggle","show","hide"],function(e,t){var n=w.fn[t];w.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ut(t,!0),e,r,i)}}),w.each({slideDown:ut("show"),slideUp:ut("hide"),slideToggle:ut("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){w.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),w.timers=[],w.fx.tick=function(){var e,t=0,n=w.timers;for(nt=Date.now();t<n.length;t++)(e=n[t])()||n[t]!==e||n.splice(t--,1);n.length||w.fx.stop(),nt=void 0},w.fx.timer=function(e){w.timers.push(e),w.fx.start()},w.fx.interval=13,w.fx.start=function(){rt||(rt=!0,at())},w.fx.stop=function(){rt=null},w.fx.speeds={slow:600,fast:200,_default:400},w.fn.delay=function(t,n){return t=w.fx?w.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e=r.createElement("input"),t=r.createElement("select").appendChild(r.createElement("option"));e.type="checkbox",h.checkOn=""!==e.value,h.optSelected=t.selected,(e=r.createElement("input")).value="t",e.type="radio",h.radioValue="t"===e.value}();var dt,ht=w.expr.attrHandle;w.fn.extend({attr:function(e,t){return z(this,w.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r<u;r++)if(((n=i[r]).selected||r===o)&&!n.disabled&&(!n.parentNode.disabled||!N(n.parentNode,"optgroup"))){if(t=w(n).val(),a)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=w.makeArray(t),a=i.length;while(a--)((r=i[a]).selected=w.inArray(w.valHooks.option.get(r),o)>-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("<script>").prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),r.head.appendChild(t[0])},abort:function(){n&&n()}}}});var Yt=[],Qt=/(=)\?(?=&|$)|\?\?/;w.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Yt.pop()||w.expando+"_"+Et++;return this[e]=!0,e}}),w.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=!1!==t.jsonp&&(Qt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Qt.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=g(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(Qt,"$1"+i):!1!==t.jsonp&&(t.url+=(kt.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||w.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?w(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,Yt.push(i)),a&&g(o)&&o(a[0]),a=o=void 0}),"script"}),h.createHTMLDocument=function(){var e=r.implementation.createHTMLDocument("").body;return e.innerHTML="<form></form><form></form>",2===e.childNodes.length}(),w.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1);var i,o,a;return t||(h.createHTMLDocument?((i=(t=r.implementation.createHTMLDocument("")).createElement("base")).href=r.location.href,t.head.appendChild(i)):t=r),o=A.exec(e),a=!n&&[],o?[t.createElement(o[1])]:(o=xe([e],t,a),a&&a.length&&w(a).remove(),w.merge([],o.childNodes))},w.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=vt(e.slice(s)),e=e.slice(0,s)),g(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&w.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?w("<div>").append(w.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},w.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){w.fn[t]=function(e){return this.on(t,e)}}),w.expr.pseudos.animated=function(e){return w.grep(w.timers,function(t){return e===t.elem}).length},w.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=w.css(e,"position"),f=w(e),p={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=w.css(e,"top"),u=w.css(e,"left"),(l=("absolute"===c||"fixed"===c)&&(o+u).indexOf("auto")>-1)?(a=(r=f.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),g(t)&&(t=t.call(e,n,w.extend({},s))),null!=t.top&&(p.top=t.top-s.top+a),null!=t.left&&(p.left=t.left-s.left+i),"using"in t?t.using.call(e,p):f.css(p)}},w.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){w.offset.setOffset(this,e,t)});var t,n,r=this[0];if(r)return r.getClientRects().length?(t=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===w.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===w.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=w(e).offset()).top+=w.css(e,"borderTopWidth",!0),i.left+=w.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-w.css(r,"marginTop",!0),left:t.left-i.left-w.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===w.css(e,"position"))e=e.offsetParent;return e||be})}}),w.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;w.fn[e]=function(r){return z(this,function(e,r,i){var o;if(y(e)?o=e:9===e.nodeType&&(o=e.defaultView),void 0===i)return o?o[t]:e[r];o?o.scrollTo(n?o.pageXOffset:i,n?i:o.pageYOffset):e[r]=i},e,r,arguments.length)}}),w.each(["top","left"],function(e,t){w.cssHooks[t]=_e(h.pixelPosition,function(e,n){if(n)return n=Fe(e,t),We.test(n)?w(e).position()[t]+"px":n})}),w.each({Height:"height",Width:"width"},function(e,t){w.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){w.fn[r]=function(i,o){var a=arguments.length&&(n||"boolean"!=typeof i),s=n||(!0===i||!0===o?"margin":"border");return z(this,function(t,n,i){var o;return y(t)?0===r.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(o=t.documentElement,Math.max(t.body["scroll"+e],o["scroll"+e],t.body["offset"+e],o["offset"+e],o["client"+e])):void 0===i?w.css(t,n,s):w.style(t,n,i,s)},t,a?i:void 0,a)}})}),w.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){w.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),w.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),w.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),w.proxy=function(e,t){var n,r,i;if("string"==typeof t&&(n=e[t],t=e,e=n),g(e))return r=o.call(arguments,2),i=function(){return e.apply(t||this,r.concat(o.call(arguments)))},i.guid=e.guid=e.guid||w.guid++,i},w.holdReady=function(e){e?w.readyWait++:w.ready(!0)},w.isArray=Array.isArray,w.parseJSON=JSON.parse,w.nodeName=N,w.isFunction=g,w.isWindow=y,w.camelCase=G,w.type=x,w.now=Date.now,w.isNumeric=function(e){var t=w.type(e);return("number"===t||"string"===t)&&!isNaN(e-parseFloat(e))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return w});var Jt=e.jQuery,Kt=e.$;return w.noConflict=function(t){return e.$===w&&(e.$=Kt),t&&e.jQuery===w&&(e.jQuery=Jt),w},t||(e.jQuery=e.$=w),w});
+ web/js/vue.js view
@@ -0,0 +1,10947 @@+/*!+ * Vue.js v2.5.17+ * (c) 2014-2018 Evan You+ * Released under the MIT License.+ */+(function (global, factory) {+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :+ typeof define === 'function' && define.amd ? define(factory) :+ (global.Vue = factory());+}(this, (function () { 'use strict';++/* */++var emptyObject = Object.freeze({});++// these helpers produces better vm code in JS engines due to their+// explicitness and function inlining+function isUndef (v) {+ return v === undefined || v === null+}++function isDef (v) {+ return v !== undefined && v !== null+}++function isTrue (v) {+ return v === true+}++function isFalse (v) {+ return v === false+}++/**+ * Check if value is primitive+ */+function isPrimitive (value) {+ return (+ typeof value === 'string' ||+ typeof value === 'number' ||+ // $flow-disable-line+ typeof value === 'symbol' ||+ typeof value === 'boolean'+ )+}++/**+ * Quick object check - this is primarily used to tell+ * Objects from primitive values when we know the value+ * is a JSON-compliant type.+ */+function isObject (obj) {+ return obj !== null && typeof obj === 'object'+}++/**+ * Get the raw type string of a value e.g. [object Object]+ */+var _toString = Object.prototype.toString;++function toRawType (value) {+ return _toString.call(value).slice(8, -1)+}++/**+ * Strict object type check. Only returns true+ * for plain JavaScript objects.+ */+function isPlainObject (obj) {+ return _toString.call(obj) === '[object Object]'+}++function isRegExp (v) {+ return _toString.call(v) === '[object RegExp]'+}++/**+ * Check if val is a valid array index.+ */+function isValidArrayIndex (val) {+ var n = parseFloat(String(val));+ return n >= 0 && Math.floor(n) === n && isFinite(val)+}++/**+ * Convert a value to a string that is actually rendered.+ */+function toString (val) {+ return val == null+ ? ''+ : typeof val === 'object'+ ? JSON.stringify(val, null, 2)+ : String(val)+}++/**+ * Convert a input value to a number for persistence.+ * If the conversion fails, return original string.+ */+function toNumber (val) {+ var n = parseFloat(val);+ return isNaN(n) ? val : n+}++/**+ * Make a map and return a function for checking if a key+ * is in that map.+ */+function makeMap (+ str,+ expectsLowerCase+) {+ var map = Object.create(null);+ var list = str.split(',');+ for (var i = 0; i < list.length; i++) {+ map[list[i]] = true;+ }+ return expectsLowerCase+ ? function (val) { return map[val.toLowerCase()]; }+ : function (val) { return map[val]; }+}++/**+ * Check if a tag is a built-in tag.+ */+var isBuiltInTag = makeMap('slot,component', true);++/**+ * Check if a attribute is a reserved attribute.+ */+var isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');++/**+ * Remove an item from an array+ */+function remove (arr, item) {+ if (arr.length) {+ var index = arr.indexOf(item);+ if (index > -1) {+ return arr.splice(index, 1)+ }+ }+}++/**+ * Check whether the object has the property.+ */+var hasOwnProperty = Object.prototype.hasOwnProperty;+function hasOwn (obj, key) {+ return hasOwnProperty.call(obj, key)+}++/**+ * Create a cached version of a pure function.+ */+function cached (fn) {+ var cache = Object.create(null);+ return (function cachedFn (str) {+ var hit = cache[str];+ return hit || (cache[str] = fn(str))+ })+}++/**+ * Camelize a hyphen-delimited string.+ */+var camelizeRE = /-(\w)/g;+var camelize = cached(function (str) {+ return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })+});++/**+ * Capitalize a string.+ */+var capitalize = cached(function (str) {+ return str.charAt(0).toUpperCase() + str.slice(1)+});++/**+ * Hyphenate a camelCase string.+ */+var hyphenateRE = /\B([A-Z])/g;+var hyphenate = cached(function (str) {+ return str.replace(hyphenateRE, '-$1').toLowerCase()+});++/**+ * Simple bind polyfill for environments that do not support it... e.g.+ * PhantomJS 1.x. Technically we don't need this anymore since native bind is+ * now more performant in most browsers, but removing it would be breaking for+ * code that was able to run in PhantomJS 1.x, so this must be kept for+ * backwards compatibility.+ */++/* istanbul ignore next */+function polyfillBind (fn, ctx) {+ function boundFn (a) {+ var l = arguments.length;+ return l+ ? l > 1+ ? fn.apply(ctx, arguments)+ : fn.call(ctx, a)+ : fn.call(ctx)+ }++ boundFn._length = fn.length;+ return boundFn+}++function nativeBind (fn, ctx) {+ return fn.bind(ctx)+}++var bind = Function.prototype.bind+ ? nativeBind+ : polyfillBind;++/**+ * Convert an Array-like object to a real Array.+ */+function toArray (list, start) {+ start = start || 0;+ var i = list.length - start;+ var ret = new Array(i);+ while (i--) {+ ret[i] = list[i + start];+ }+ return ret+}++/**+ * Mix properties into target object.+ */+function extend (to, _from) {+ for (var key in _from) {+ to[key] = _from[key];+ }+ return to+}++/**+ * Merge an Array of Objects into a single Object.+ */+function toObject (arr) {+ var res = {};+ for (var i = 0; i < arr.length; i++) {+ if (arr[i]) {+ extend(res, arr[i]);+ }+ }+ return res+}++/**+ * Perform no operation.+ * Stubbing args to make Flow happy without leaving useless transpiled code+ * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)+ */+function noop (a, b, c) {}++/**+ * Always return false.+ */+var no = function (a, b, c) { return false; };++/**+ * Return same value+ */+var identity = function (_) { return _; };++/**+ * Generate a static keys string from compiler modules.+ */+function genStaticKeys (modules) {+ return modules.reduce(function (keys, m) {+ return keys.concat(m.staticKeys || [])+ }, []).join(',')+}++/**+ * Check if two values are loosely equal - that is,+ * if they are plain objects, do they have the same shape?+ */+function looseEqual (a, b) {+ if (a === b) { return true }+ var isObjectA = isObject(a);+ var isObjectB = isObject(b);+ if (isObjectA && isObjectB) {+ try {+ var isArrayA = Array.isArray(a);+ var isArrayB = Array.isArray(b);+ if (isArrayA && isArrayB) {+ return a.length === b.length && a.every(function (e, i) {+ return looseEqual(e, b[i])+ })+ } else if (!isArrayA && !isArrayB) {+ var keysA = Object.keys(a);+ var keysB = Object.keys(b);+ return keysA.length === keysB.length && keysA.every(function (key) {+ return looseEqual(a[key], b[key])+ })+ } else {+ /* istanbul ignore next */+ return false+ }+ } catch (e) {+ /* istanbul ignore next */+ return false+ }+ } else if (!isObjectA && !isObjectB) {+ return String(a) === String(b)+ } else {+ return false+ }+}++function looseIndexOf (arr, val) {+ for (var i = 0; i < arr.length; i++) {+ if (looseEqual(arr[i], val)) { return i }+ }+ return -1+}++/**+ * Ensure a function is called only once.+ */+function once (fn) {+ var called = false;+ return function () {+ if (!called) {+ called = true;+ fn.apply(this, arguments);+ }+ }+}++var SSR_ATTR = 'data-server-rendered';++var ASSET_TYPES = [+ 'component',+ 'directive',+ 'filter'+];++var LIFECYCLE_HOOKS = [+ 'beforeCreate',+ 'created',+ 'beforeMount',+ 'mounted',+ 'beforeUpdate',+ 'updated',+ 'beforeDestroy',+ 'destroyed',+ 'activated',+ 'deactivated',+ 'errorCaptured'+];++/* */++var config = ({+ /**+ * Option merge strategies (used in core/util/options)+ */+ // $flow-disable-line+ optionMergeStrategies: Object.create(null),++ /**+ * Whether to suppress warnings.+ */+ silent: false,++ /**+ * Show production mode tip message on boot?+ */+ productionTip: "development" !== 'production',++ /**+ * Whether to enable devtools+ */+ devtools: "development" !== 'production',++ /**+ * Whether to record perf+ */+ performance: false,++ /**+ * Error handler for watcher errors+ */+ errorHandler: null,++ /**+ * Warn handler for watcher warns+ */+ warnHandler: null,++ /**+ * Ignore certain custom elements+ */+ ignoredElements: [],++ /**+ * Custom user key aliases for v-on+ */+ // $flow-disable-line+ keyCodes: Object.create(null),++ /**+ * Check if a tag is reserved so that it cannot be registered as a+ * component. This is platform-dependent and may be overwritten.+ */+ isReservedTag: no,++ /**+ * Check if an attribute is reserved so that it cannot be used as a component+ * prop. This is platform-dependent and may be overwritten.+ */+ isReservedAttr: no,++ /**+ * Check if a tag is an unknown element.+ * Platform-dependent.+ */+ isUnknownElement: no,++ /**+ * Get the namespace of an element+ */+ getTagNamespace: noop,++ /**+ * Parse the real tag name for the specific platform.+ */+ parsePlatformTagName: identity,++ /**+ * Check if an attribute must be bound using property, e.g. value+ * Platform-dependent.+ */+ mustUseProp: no,++ /**+ * Exposed for legacy reasons+ */+ _lifecycleHooks: LIFECYCLE_HOOKS+})++/* */++/**+ * Check if a string starts with $ or _+ */+function isReserved (str) {+ var c = (str + '').charCodeAt(0);+ return c === 0x24 || c === 0x5F+}++/**+ * Define a property.+ */+function def (obj, key, val, enumerable) {+ Object.defineProperty(obj, key, {+ value: val,+ enumerable: !!enumerable,+ writable: true,+ configurable: true+ });+}++/**+ * Parse simple path.+ */+var bailRE = /[^\w.$]/;+function parsePath (path) {+ if (bailRE.test(path)) {+ return+ }+ var segments = path.split('.');+ return function (obj) {+ for (var i = 0; i < segments.length; i++) {+ if (!obj) { return }+ obj = obj[segments[i]];+ }+ return obj+ }+}++/* */++// can we use __proto__?+var hasProto = '__proto__' in {};++// Browser environment sniffing+var inBrowser = typeof window !== 'undefined';+var inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;+var weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();+var UA = inBrowser && window.navigator.userAgent.toLowerCase();+var isIE = UA && /msie|trident/.test(UA);+var isIE9 = UA && UA.indexOf('msie 9.0') > 0;+var isEdge = UA && UA.indexOf('edge/') > 0;+var isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');+var isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');+var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;++// Firefox has a "watch" function on Object.prototype...+var nativeWatch = ({}).watch;++var supportsPassive = false;+if (inBrowser) {+ try {+ var opts = {};+ Object.defineProperty(opts, 'passive', ({+ get: function get () {+ /* istanbul ignore next */+ supportsPassive = true;+ }+ })); // https://github.com/facebook/flow/issues/285+ window.addEventListener('test-passive', null, opts);+ } catch (e) {}+}++// this needs to be lazy-evaled because vue may be required before+// vue-server-renderer can set VUE_ENV+var _isServer;+var isServerRendering = function () {+ if (_isServer === undefined) {+ /* istanbul ignore if */+ if (!inBrowser && !inWeex && typeof global !== 'undefined') {+ // detect presence of vue-server-renderer and avoid+ // Webpack shimming the process+ _isServer = global['process'].env.VUE_ENV === 'server';+ } else {+ _isServer = false;+ }+ }+ return _isServer+};++// detect devtools+var devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;++/* istanbul ignore next */+function isNative (Ctor) {+ return typeof Ctor === 'function' && /native code/.test(Ctor.toString())+}++var hasSymbol =+ typeof Symbol !== 'undefined' && isNative(Symbol) &&+ typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);++var _Set;+/* istanbul ignore if */ // $flow-disable-line+if (typeof Set !== 'undefined' && isNative(Set)) {+ // use native Set when available.+ _Set = Set;+} else {+ // a non-standard Set polyfill that only works with primitive keys.+ _Set = (function () {+ function Set () {+ this.set = Object.create(null);+ }+ Set.prototype.has = function has (key) {+ return this.set[key] === true+ };+ Set.prototype.add = function add (key) {+ this.set[key] = true;+ };+ Set.prototype.clear = function clear () {+ this.set = Object.create(null);+ };++ return Set;+ }());+}++/* */++var warn = noop;+var tip = noop;+var generateComponentTrace = (noop); // work around flow check+var formatComponentName = (noop);++{+ var hasConsole = typeof console !== 'undefined';+ var classifyRE = /(?:^|[-_])(\w)/g;+ var classify = function (str) { return str+ .replace(classifyRE, function (c) { return c.toUpperCase(); })+ .replace(/[-_]/g, ''); };++ warn = function (msg, vm) {+ var trace = vm ? generateComponentTrace(vm) : '';++ if (config.warnHandler) {+ config.warnHandler.call(null, msg, vm, trace);+ } else if (hasConsole && (!config.silent)) {+ console.error(("[Vue warn]: " + msg + trace));+ }+ };++ tip = function (msg, vm) {+ if (hasConsole && (!config.silent)) {+ console.warn("[Vue tip]: " + msg + (+ vm ? generateComponentTrace(vm) : ''+ ));+ }+ };++ formatComponentName = function (vm, includeFile) {+ if (vm.$root === vm) {+ return '<Root>'+ }+ var options = typeof vm === 'function' && vm.cid != null+ ? vm.options+ : vm._isVue+ ? vm.$options || vm.constructor.options+ : vm || {};+ var name = options.name || options._componentTag;+ var file = options.__file;+ if (!name && file) {+ var match = file.match(/([^/\\]+)\.vue$/);+ name = match && match[1];+ }++ return (+ (name ? ("<" + (classify(name)) + ">") : "<Anonymous>") ++ (file && includeFile !== false ? (" at " + file) : '')+ )+ };++ var repeat = function (str, n) {+ var res = '';+ while (n) {+ if (n % 2 === 1) { res += str; }+ if (n > 1) { str += str; }+ n >>= 1;+ }+ return res+ };++ generateComponentTrace = function (vm) {+ if (vm._isVue && vm.$parent) {+ var tree = [];+ var currentRecursiveSequence = 0;+ while (vm) {+ if (tree.length > 0) {+ var last = tree[tree.length - 1];+ if (last.constructor === vm.constructor) {+ currentRecursiveSequence++;+ vm = vm.$parent;+ continue+ } else if (currentRecursiveSequence > 0) {+ tree[tree.length - 1] = [last, currentRecursiveSequence];+ currentRecursiveSequence = 0;+ }+ }+ tree.push(vm);+ vm = vm.$parent;+ }+ return '\n\nfound in\n\n' + tree+ .map(function (vm, i) { return ("" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)+ ? ((formatComponentName(vm[0])) + "... (" + (vm[1]) + " recursive calls)")+ : formatComponentName(vm))); })+ .join('\n')+ } else {+ return ("\n\n(found in " + (formatComponentName(vm)) + ")")+ }+ };+}++/* */+++var uid = 0;++/**+ * A dep is an observable that can have multiple+ * directives subscribing to it.+ */+var Dep = function Dep () {+ this.id = uid++;+ this.subs = [];+};++Dep.prototype.addSub = function addSub (sub) {+ this.subs.push(sub);+};++Dep.prototype.removeSub = function removeSub (sub) {+ remove(this.subs, sub);+};++Dep.prototype.depend = function depend () {+ if (Dep.target) {+ Dep.target.addDep(this);+ }+};++Dep.prototype.notify = function notify () {+ // stabilize the subscriber list first+ var subs = this.subs.slice();+ for (var i = 0, l = subs.length; i < l; i++) {+ subs[i].update();+ }+};++// the current target watcher being evaluated.+// this is globally unique because there could be only one+// watcher being evaluated at any time.+Dep.target = null;+var targetStack = [];++function pushTarget (_target) {+ if (Dep.target) { targetStack.push(Dep.target); }+ Dep.target = _target;+}++function popTarget () {+ Dep.target = targetStack.pop();+}++/* */++var VNode = function VNode (+ tag,+ data,+ children,+ text,+ elm,+ context,+ componentOptions,+ asyncFactory+) {+ this.tag = tag;+ this.data = data;+ this.children = children;+ this.text = text;+ this.elm = elm;+ this.ns = undefined;+ this.context = context;+ this.fnContext = undefined;+ this.fnOptions = undefined;+ this.fnScopeId = undefined;+ this.key = data && data.key;+ this.componentOptions = componentOptions;+ this.componentInstance = undefined;+ this.parent = undefined;+ this.raw = false;+ this.isStatic = false;+ this.isRootInsert = true;+ this.isComment = false;+ this.isCloned = false;+ this.isOnce = false;+ this.asyncFactory = asyncFactory;+ this.asyncMeta = undefined;+ this.isAsyncPlaceholder = false;+};++var prototypeAccessors = { child: { configurable: true } };++// DEPRECATED: alias for componentInstance for backwards compat.+/* istanbul ignore next */+prototypeAccessors.child.get = function () {+ return this.componentInstance+};++Object.defineProperties( VNode.prototype, prototypeAccessors );++var createEmptyVNode = function (text) {+ if ( text === void 0 ) text = '';++ var node = new VNode();+ node.text = text;+ node.isComment = true;+ return node+};++function createTextVNode (val) {+ return new VNode(undefined, undefined, undefined, String(val))+}++// optimized shallow clone+// used for static nodes and slot nodes because they may be reused across+// multiple renders, cloning them avoids errors when DOM manipulations rely+// on their elm reference.+function cloneVNode (vnode) {+ var cloned = new VNode(+ vnode.tag,+ vnode.data,+ vnode.children,+ vnode.text,+ vnode.elm,+ vnode.context,+ vnode.componentOptions,+ vnode.asyncFactory+ );+ cloned.ns = vnode.ns;+ cloned.isStatic = vnode.isStatic;+ cloned.key = vnode.key;+ cloned.isComment = vnode.isComment;+ cloned.fnContext = vnode.fnContext;+ cloned.fnOptions = vnode.fnOptions;+ cloned.fnScopeId = vnode.fnScopeId;+ cloned.isCloned = true;+ return cloned+}++/*+ * not type checking this file because flow doesn't play well with+ * dynamically accessing methods on Array prototype+ */++var arrayProto = Array.prototype;+var arrayMethods = Object.create(arrayProto);++var methodsToPatch = [+ 'push',+ 'pop',+ 'shift',+ 'unshift',+ 'splice',+ 'sort',+ 'reverse'+];++/**+ * Intercept mutating methods and emit events+ */+methodsToPatch.forEach(function (method) {+ // cache original method+ var original = arrayProto[method];+ def(arrayMethods, method, function mutator () {+ var args = [], len = arguments.length;+ while ( len-- ) args[ len ] = arguments[ len ];++ var result = original.apply(this, args);+ var ob = this.__ob__;+ var inserted;+ switch (method) {+ case 'push':+ case 'unshift':+ inserted = args;+ break+ case 'splice':+ inserted = args.slice(2);+ break+ }+ if (inserted) { ob.observeArray(inserted); }+ // notify change+ ob.dep.notify();+ return result+ });+});++/* */++var arrayKeys = Object.getOwnPropertyNames(arrayMethods);++/**+ * In some cases we may want to disable observation inside a component's+ * update computation.+ */+var shouldObserve = true;++function toggleObserving (value) {+ shouldObserve = value;+}++/**+ * Observer class that is attached to each observed+ * object. Once attached, the observer converts the target+ * object's property keys into getter/setters that+ * collect dependencies and dispatch updates.+ */+var Observer = function Observer (value) {+ this.value = value;+ this.dep = new Dep();+ this.vmCount = 0;+ def(value, '__ob__', this);+ if (Array.isArray(value)) {+ var augment = hasProto+ ? protoAugment+ : copyAugment;+ augment(value, arrayMethods, arrayKeys);+ this.observeArray(value);+ } else {+ this.walk(value);+ }+};++/**+ * Walk through each property and convert them into+ * getter/setters. This method should only be called when+ * value type is Object.+ */+Observer.prototype.walk = function walk (obj) {+ var keys = Object.keys(obj);+ for (var i = 0; i < keys.length; i++) {+ defineReactive(obj, keys[i]);+ }+};++/**+ * Observe a list of Array items.+ */+Observer.prototype.observeArray = function observeArray (items) {+ for (var i = 0, l = items.length; i < l; i++) {+ observe(items[i]);+ }+};++// helpers++/**+ * Augment an target Object or Array by intercepting+ * the prototype chain using __proto__+ */+function protoAugment (target, src, keys) {+ /* eslint-disable no-proto */+ target.__proto__ = src;+ /* eslint-enable no-proto */+}++/**+ * Augment an target Object or Array by defining+ * hidden properties.+ */+/* istanbul ignore next */+function copyAugment (target, src, keys) {+ for (var i = 0, l = keys.length; i < l; i++) {+ var key = keys[i];+ def(target, key, src[key]);+ }+}++/**+ * Attempt to create an observer instance for a value,+ * returns the new observer if successfully observed,+ * or the existing observer if the value already has one.+ */+function observe (value, asRootData) {+ if (!isObject(value) || value instanceof VNode) {+ return+ }+ var ob;+ if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {+ ob = value.__ob__;+ } else if (+ shouldObserve &&+ !isServerRendering() &&+ (Array.isArray(value) || isPlainObject(value)) &&+ Object.isExtensible(value) &&+ !value._isVue+ ) {+ ob = new Observer(value);+ }+ if (asRootData && ob) {+ ob.vmCount++;+ }+ return ob+}++/**+ * Define a reactive property on an Object.+ */+function defineReactive (+ obj,+ key,+ val,+ customSetter,+ shallow+) {+ var dep = new Dep();++ var property = Object.getOwnPropertyDescriptor(obj, key);+ if (property && property.configurable === false) {+ return+ }++ // cater for pre-defined getter/setters+ var getter = property && property.get;+ if (!getter && arguments.length === 2) {+ val = obj[key];+ }+ var setter = property && property.set;++ var childOb = !shallow && observe(val);+ Object.defineProperty(obj, key, {+ enumerable: true,+ configurable: true,+ get: function reactiveGetter () {+ var value = getter ? getter.call(obj) : val;+ if (Dep.target) {+ dep.depend();+ if (childOb) {+ childOb.dep.depend();+ if (Array.isArray(value)) {+ dependArray(value);+ }+ }+ }+ return value+ },+ set: function reactiveSetter (newVal) {+ var value = getter ? getter.call(obj) : val;+ /* eslint-disable no-self-compare */+ if (newVal === value || (newVal !== newVal && value !== value)) {+ return+ }+ /* eslint-enable no-self-compare */+ if ("development" !== 'production' && customSetter) {+ customSetter();+ }+ if (setter) {+ setter.call(obj, newVal);+ } else {+ val = newVal;+ }+ childOb = !shallow && observe(newVal);+ dep.notify();+ }+ });+}++/**+ * Set a property on an object. Adds the new property and+ * triggers change notification if the property doesn't+ * already exist.+ */+function set (target, key, val) {+ if ("development" !== 'production' &&+ (isUndef(target) || isPrimitive(target))+ ) {+ warn(("Cannot set reactive property on undefined, null, or primitive value: " + ((target))));+ }+ if (Array.isArray(target) && isValidArrayIndex(key)) {+ target.length = Math.max(target.length, key);+ target.splice(key, 1, val);+ return val+ }+ if (key in target && !(key in Object.prototype)) {+ target[key] = val;+ return val+ }+ var ob = (target).__ob__;+ if (target._isVue || (ob && ob.vmCount)) {+ "development" !== 'production' && warn(+ 'Avoid adding reactive properties to a Vue instance or its root $data ' ++ 'at runtime - declare it upfront in the data option.'+ );+ return val+ }+ if (!ob) {+ target[key] = val;+ return val+ }+ defineReactive(ob.value, key, val);+ ob.dep.notify();+ return val+}++/**+ * Delete a property and trigger change if necessary.+ */+function del (target, key) {+ if ("development" !== 'production' &&+ (isUndef(target) || isPrimitive(target))+ ) {+ warn(("Cannot delete reactive property on undefined, null, or primitive value: " + ((target))));+ }+ if (Array.isArray(target) && isValidArrayIndex(key)) {+ target.splice(key, 1);+ return+ }+ var ob = (target).__ob__;+ if (target._isVue || (ob && ob.vmCount)) {+ "development" !== 'production' && warn(+ 'Avoid deleting properties on a Vue instance or its root $data ' ++ '- just set it to null.'+ );+ return+ }+ if (!hasOwn(target, key)) {+ return+ }+ delete target[key];+ if (!ob) {+ return+ }+ ob.dep.notify();+}++/**+ * Collect dependencies on array elements when the array is touched, since+ * we cannot intercept array element access like property getters.+ */+function dependArray (value) {+ for (var e = (void 0), i = 0, l = value.length; i < l; i++) {+ e = value[i];+ e && e.__ob__ && e.__ob__.dep.depend();+ if (Array.isArray(e)) {+ dependArray(e);+ }+ }+}++/* */++/**+ * Option overwriting strategies are functions that handle+ * how to merge a parent option value and a child option+ * value into the final value.+ */+var strats = config.optionMergeStrategies;++/**+ * Options with restrictions+ */+{+ strats.el = strats.propsData = function (parent, child, vm, key) {+ if (!vm) {+ warn(+ "option \"" + key + "\" can only be used during instance " ++ 'creation with the `new` keyword.'+ );+ }+ return defaultStrat(parent, child)+ };+}++/**+ * Helper that recursively merges two data objects together.+ */+function mergeData (to, from) {+ if (!from) { return to }+ var key, toVal, fromVal;+ var keys = Object.keys(from);+ for (var i = 0; i < keys.length; i++) {+ key = keys[i];+ toVal = to[key];+ fromVal = from[key];+ if (!hasOwn(to, key)) {+ set(to, key, fromVal);+ } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {+ mergeData(toVal, fromVal);+ }+ }+ return to+}++/**+ * Data+ */+function mergeDataOrFn (+ parentVal,+ childVal,+ vm+) {+ if (!vm) {+ // in a Vue.extend merge, both should be functions+ if (!childVal) {+ return parentVal+ }+ if (!parentVal) {+ return childVal+ }+ // when parentVal & childVal are both present,+ // we need to return a function that returns the+ // merged result of both functions... no need to+ // check if parentVal is a function here because+ // it has to be a function to pass previous merges.+ return function mergedDataFn () {+ return mergeData(+ typeof childVal === 'function' ? childVal.call(this, this) : childVal,+ typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal+ )+ }+ } else {+ return function mergedInstanceDataFn () {+ // instance merge+ var instanceData = typeof childVal === 'function'+ ? childVal.call(vm, vm)+ : childVal;+ var defaultData = typeof parentVal === 'function'+ ? parentVal.call(vm, vm)+ : parentVal;+ if (instanceData) {+ return mergeData(instanceData, defaultData)+ } else {+ return defaultData+ }+ }+ }+}++strats.data = function (+ parentVal,+ childVal,+ vm+) {+ if (!vm) {+ if (childVal && typeof childVal !== 'function') {+ "development" !== 'production' && warn(+ 'The "data" option should be a function ' ++ 'that returns a per-instance value in component ' ++ 'definitions.',+ vm+ );++ return parentVal+ }+ return mergeDataOrFn(parentVal, childVal)+ }++ return mergeDataOrFn(parentVal, childVal, vm)+};++/**+ * Hooks and props are merged as arrays.+ */+function mergeHook (+ parentVal,+ childVal+) {+ return childVal+ ? parentVal+ ? parentVal.concat(childVal)+ : Array.isArray(childVal)+ ? childVal+ : [childVal]+ : parentVal+}++LIFECYCLE_HOOKS.forEach(function (hook) {+ strats[hook] = mergeHook;+});++/**+ * Assets+ *+ * When a vm is present (instance creation), we need to do+ * a three-way merge between constructor options, instance+ * options and parent options.+ */+function mergeAssets (+ parentVal,+ childVal,+ vm,+ key+) {+ var res = Object.create(parentVal || null);+ if (childVal) {+ "development" !== 'production' && assertObjectType(key, childVal, vm);+ return extend(res, childVal)+ } else {+ return res+ }+}++ASSET_TYPES.forEach(function (type) {+ strats[type + 's'] = mergeAssets;+});++/**+ * Watchers.+ *+ * Watchers hashes should not overwrite one+ * another, so we merge them as arrays.+ */+strats.watch = function (+ parentVal,+ childVal,+ vm,+ key+) {+ // work around Firefox's Object.prototype.watch...+ if (parentVal === nativeWatch) { parentVal = undefined; }+ if (childVal === nativeWatch) { childVal = undefined; }+ /* istanbul ignore if */+ if (!childVal) { return Object.create(parentVal || null) }+ {+ assertObjectType(key, childVal, vm);+ }+ if (!parentVal) { return childVal }+ var ret = {};+ extend(ret, parentVal);+ for (var key$1 in childVal) {+ var parent = ret[key$1];+ var child = childVal[key$1];+ if (parent && !Array.isArray(parent)) {+ parent = [parent];+ }+ ret[key$1] = parent+ ? parent.concat(child)+ : Array.isArray(child) ? child : [child];+ }+ return ret+};++/**+ * Other object hashes.+ */+strats.props =+strats.methods =+strats.inject =+strats.computed = function (+ parentVal,+ childVal,+ vm,+ key+) {+ if (childVal && "development" !== 'production') {+ assertObjectType(key, childVal, vm);+ }+ if (!parentVal) { return childVal }+ var ret = Object.create(null);+ extend(ret, parentVal);+ if (childVal) { extend(ret, childVal); }+ return ret+};+strats.provide = mergeDataOrFn;++/**+ * Default strategy.+ */+var defaultStrat = function (parentVal, childVal) {+ return childVal === undefined+ ? parentVal+ : childVal+};++/**+ * Validate component names+ */+function checkComponents (options) {+ for (var key in options.components) {+ validateComponentName(key);+ }+}++function validateComponentName (name) {+ if (!/^[a-zA-Z][\w-]*$/.test(name)) {+ warn(+ 'Invalid component name: "' + name + '". Component names ' ++ 'can only contain alphanumeric characters and the hyphen, ' ++ 'and must start with a letter.'+ );+ }+ if (isBuiltInTag(name) || config.isReservedTag(name)) {+ warn(+ 'Do not use built-in or reserved HTML elements as component ' ++ 'id: ' + name+ );+ }+}++/**+ * Ensure all props option syntax are normalized into the+ * Object-based format.+ */+function normalizeProps (options, vm) {+ var props = options.props;+ if (!props) { return }+ var res = {};+ var i, val, name;+ if (Array.isArray(props)) {+ i = props.length;+ while (i--) {+ val = props[i];+ if (typeof val === 'string') {+ name = camelize(val);+ res[name] = { type: null };+ } else {+ warn('props must be strings when using array syntax.');+ }+ }+ } else if (isPlainObject(props)) {+ for (var key in props) {+ val = props[key];+ name = camelize(key);+ res[name] = isPlainObject(val)+ ? val+ : { type: val };+ }+ } else {+ warn(+ "Invalid value for option \"props\": expected an Array or an Object, " ++ "but got " + (toRawType(props)) + ".",+ vm+ );+ }+ options.props = res;+}++/**+ * Normalize all injections into Object-based format+ */+function normalizeInject (options, vm) {+ var inject = options.inject;+ if (!inject) { return }+ var normalized = options.inject = {};+ if (Array.isArray(inject)) {+ for (var i = 0; i < inject.length; i++) {+ normalized[inject[i]] = { from: inject[i] };+ }+ } else if (isPlainObject(inject)) {+ for (var key in inject) {+ var val = inject[key];+ normalized[key] = isPlainObject(val)+ ? extend({ from: key }, val)+ : { from: val };+ }+ } else {+ warn(+ "Invalid value for option \"inject\": expected an Array or an Object, " ++ "but got " + (toRawType(inject)) + ".",+ vm+ );+ }+}++/**+ * Normalize raw function directives into object format.+ */+function normalizeDirectives (options) {+ var dirs = options.directives;+ if (dirs) {+ for (var key in dirs) {+ var def = dirs[key];+ if (typeof def === 'function') {+ dirs[key] = { bind: def, update: def };+ }+ }+ }+}++function assertObjectType (name, value, vm) {+ if (!isPlainObject(value)) {+ warn(+ "Invalid value for option \"" + name + "\": expected an Object, " ++ "but got " + (toRawType(value)) + ".",+ vm+ );+ }+}++/**+ * Merge two option objects into a new one.+ * Core utility used in both instantiation and inheritance.+ */+function mergeOptions (+ parent,+ child,+ vm+) {+ {+ checkComponents(child);+ }++ if (typeof child === 'function') {+ child = child.options;+ }++ normalizeProps(child, vm);+ normalizeInject(child, vm);+ normalizeDirectives(child);+ var extendsFrom = child.extends;+ if (extendsFrom) {+ parent = mergeOptions(parent, extendsFrom, vm);+ }+ if (child.mixins) {+ for (var i = 0, l = child.mixins.length; i < l; i++) {+ parent = mergeOptions(parent, child.mixins[i], vm);+ }+ }+ var options = {};+ var key;+ for (key in parent) {+ mergeField(key);+ }+ for (key in child) {+ if (!hasOwn(parent, key)) {+ mergeField(key);+ }+ }+ function mergeField (key) {+ var strat = strats[key] || defaultStrat;+ options[key] = strat(parent[key], child[key], vm, key);+ }+ return options+}++/**+ * Resolve an asset.+ * This function is used because child instances need access+ * to assets defined in its ancestor chain.+ */+function resolveAsset (+ options,+ type,+ id,+ warnMissing+) {+ /* istanbul ignore if */+ if (typeof id !== 'string') {+ return+ }+ var assets = options[type];+ // check local registration variations first+ if (hasOwn(assets, id)) { return assets[id] }+ var camelizedId = camelize(id);+ if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }+ var PascalCaseId = capitalize(camelizedId);+ if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }+ // fallback to prototype chain+ var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];+ if ("development" !== 'production' && warnMissing && !res) {+ warn(+ 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,+ options+ );+ }+ return res+}++/* */++function validateProp (+ key,+ propOptions,+ propsData,+ vm+) {+ var prop = propOptions[key];+ var absent = !hasOwn(propsData, key);+ var value = propsData[key];+ // boolean casting+ var booleanIndex = getTypeIndex(Boolean, prop.type);+ if (booleanIndex > -1) {+ if (absent && !hasOwn(prop, 'default')) {+ value = false;+ } else if (value === '' || value === hyphenate(key)) {+ // only cast empty string / same name to boolean if+ // boolean has higher priority+ var stringIndex = getTypeIndex(String, prop.type);+ if (stringIndex < 0 || booleanIndex < stringIndex) {+ value = true;+ }+ }+ }+ // check default value+ if (value === undefined) {+ value = getPropDefaultValue(vm, prop, key);+ // since the default value is a fresh copy,+ // make sure to observe it.+ var prevShouldObserve = shouldObserve;+ toggleObserving(true);+ observe(value);+ toggleObserving(prevShouldObserve);+ }+ {+ assertProp(prop, key, value, vm, absent);+ }+ return value+}++/**+ * Get the default value of a prop.+ */+function getPropDefaultValue (vm, prop, key) {+ // no default, return undefined+ if (!hasOwn(prop, 'default')) {+ return undefined+ }+ var def = prop.default;+ // warn against non-factory defaults for Object & Array+ if ("development" !== 'production' && isObject(def)) {+ warn(+ 'Invalid default value for prop "' + key + '": ' ++ 'Props with type Object/Array must use a factory function ' ++ 'to return the default value.',+ vm+ );+ }+ // the raw prop value was also undefined from previous render,+ // return previous default value to avoid unnecessary watcher trigger+ if (vm && vm.$options.propsData &&+ vm.$options.propsData[key] === undefined &&+ vm._props[key] !== undefined+ ) {+ return vm._props[key]+ }+ // call factory function for non-Function types+ // a value is Function if its prototype is function even across different execution context+ return typeof def === 'function' && getType(prop.type) !== 'Function'+ ? def.call(vm)+ : def+}++/**+ * Assert whether a prop is valid.+ */+function assertProp (+ prop,+ name,+ value,+ vm,+ absent+) {+ if (prop.required && absent) {+ warn(+ 'Missing required prop: "' + name + '"',+ vm+ );+ return+ }+ if (value == null && !prop.required) {+ return+ }+ var type = prop.type;+ var valid = !type || type === true;+ var expectedTypes = [];+ if (type) {+ if (!Array.isArray(type)) {+ type = [type];+ }+ for (var i = 0; i < type.length && !valid; i++) {+ var assertedType = assertType(value, type[i]);+ expectedTypes.push(assertedType.expectedType || '');+ valid = assertedType.valid;+ }+ }+ if (!valid) {+ warn(+ "Invalid prop: type check failed for prop \"" + name + "\"." ++ " Expected " + (expectedTypes.map(capitalize).join(', ')) ++ ", got " + (toRawType(value)) + ".",+ vm+ );+ return+ }+ var validator = prop.validator;+ if (validator) {+ if (!validator(value)) {+ warn(+ 'Invalid prop: custom validator check failed for prop "' + name + '".',+ vm+ );+ }+ }+}++var simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;++function assertType (value, type) {+ var valid;+ var expectedType = getType(type);+ if (simpleCheckRE.test(expectedType)) {+ var t = typeof value;+ valid = t === expectedType.toLowerCase();+ // for primitive wrapper objects+ if (!valid && t === 'object') {+ valid = value instanceof type;+ }+ } else if (expectedType === 'Object') {+ valid = isPlainObject(value);+ } else if (expectedType === 'Array') {+ valid = Array.isArray(value);+ } else {+ valid = value instanceof type;+ }+ return {+ valid: valid,+ expectedType: expectedType+ }+}++/**+ * Use function string name to check built-in types,+ * because a simple equality check will fail when running+ * across different vms / iframes.+ */+function getType (fn) {+ var match = fn && fn.toString().match(/^\s*function (\w+)/);+ return match ? match[1] : ''+}++function isSameType (a, b) {+ return getType(a) === getType(b)+}++function getTypeIndex (type, expectedTypes) {+ if (!Array.isArray(expectedTypes)) {+ return isSameType(expectedTypes, type) ? 0 : -1+ }+ for (var i = 0, len = expectedTypes.length; i < len; i++) {+ if (isSameType(expectedTypes[i], type)) {+ return i+ }+ }+ return -1+}++/* */++function handleError (err, vm, info) {+ if (vm) {+ var cur = vm;+ while ((cur = cur.$parent)) {+ var hooks = cur.$options.errorCaptured;+ if (hooks) {+ for (var i = 0; i < hooks.length; i++) {+ try {+ var capture = hooks[i].call(cur, err, vm, info) === false;+ if (capture) { return }+ } catch (e) {+ globalHandleError(e, cur, 'errorCaptured hook');+ }+ }+ }+ }+ }+ globalHandleError(err, vm, info);+}++function globalHandleError (err, vm, info) {+ if (config.errorHandler) {+ try {+ return config.errorHandler.call(null, err, vm, info)+ } catch (e) {+ logError(e, null, 'config.errorHandler');+ }+ }+ logError(err, vm, info);+}++function logError (err, vm, info) {+ {+ warn(("Error in " + info + ": \"" + (err.toString()) + "\""), vm);+ }+ /* istanbul ignore else */+ if ((inBrowser || inWeex) && typeof console !== 'undefined') {+ console.error(err);+ } else {+ throw err+ }+}++/* */+/* globals MessageChannel */++var callbacks = [];+var pending = false;++function flushCallbacks () {+ pending = false;+ var copies = callbacks.slice(0);+ callbacks.length = 0;+ for (var i = 0; i < copies.length; i++) {+ copies[i]();+ }+}++// Here we have async deferring wrappers using both microtasks and (macro) tasks.+// In < 2.4 we used microtasks everywhere, but there are some scenarios where+// microtasks have too high a priority and fire in between supposedly+// sequential events (e.g. #4521, #6690) or even between bubbling of the same+// event (#6566). However, using (macro) tasks everywhere also has subtle problems+// when state is changed right before repaint (e.g. #6813, out-in transitions).+// Here we use microtask by default, but expose a way to force (macro) task when+// needed (e.g. in event handlers attached by v-on).+var microTimerFunc;+var macroTimerFunc;+var useMacroTask = false;++// Determine (macro) task defer implementation.+// Technically setImmediate should be the ideal choice, but it's only available+// in IE. The only polyfill that consistently queues the callback after all DOM+// events triggered in the same loop is by using MessageChannel.+/* istanbul ignore if */+if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {+ macroTimerFunc = function () {+ setImmediate(flushCallbacks);+ };+} else if (typeof MessageChannel !== 'undefined' && (+ isNative(MessageChannel) ||+ // PhantomJS+ MessageChannel.toString() === '[object MessageChannelConstructor]'+)) {+ var channel = new MessageChannel();+ var port = channel.port2;+ channel.port1.onmessage = flushCallbacks;+ macroTimerFunc = function () {+ port.postMessage(1);+ };+} else {+ /* istanbul ignore next */+ macroTimerFunc = function () {+ setTimeout(flushCallbacks, 0);+ };+}++// Determine microtask defer implementation.+/* istanbul ignore next, $flow-disable-line */+if (typeof Promise !== 'undefined' && isNative(Promise)) {+ var p = Promise.resolve();+ microTimerFunc = function () {+ p.then(flushCallbacks);+ // in problematic UIWebViews, Promise.then doesn't completely break, but+ // it can get stuck in a weird state where callbacks are pushed into the+ // microtask queue but the queue isn't being flushed, until the browser+ // needs to do some other work, e.g. handle a timer. Therefore we can+ // "force" the microtask queue to be flushed by adding an empty timer.+ if (isIOS) { setTimeout(noop); }+ };+} else {+ // fallback to macro+ microTimerFunc = macroTimerFunc;+}++/**+ * Wrap a function so that if any code inside triggers state change,+ * the changes are queued using a (macro) task instead of a microtask.+ */+function withMacroTask (fn) {+ return fn._withTask || (fn._withTask = function () {+ useMacroTask = true;+ var res = fn.apply(null, arguments);+ useMacroTask = false;+ return res+ })+}++function nextTick (cb, ctx) {+ var _resolve;+ callbacks.push(function () {+ if (cb) {+ try {+ cb.call(ctx);+ } catch (e) {+ handleError(e, ctx, 'nextTick');+ }+ } else if (_resolve) {+ _resolve(ctx);+ }+ });+ if (!pending) {+ pending = true;+ if (useMacroTask) {+ macroTimerFunc();+ } else {+ microTimerFunc();+ }+ }+ // $flow-disable-line+ if (!cb && typeof Promise !== 'undefined') {+ return new Promise(function (resolve) {+ _resolve = resolve;+ })+ }+}++/* */++var mark;+var measure;++{+ var perf = inBrowser && window.performance;+ /* istanbul ignore if */+ if (+ perf &&+ perf.mark &&+ perf.measure &&+ perf.clearMarks &&+ perf.clearMeasures+ ) {+ mark = function (tag) { return perf.mark(tag); };+ measure = function (name, startTag, endTag) {+ perf.measure(name, startTag, endTag);+ perf.clearMarks(startTag);+ perf.clearMarks(endTag);+ perf.clearMeasures(name);+ };+ }+}++/* not type checking this file because flow doesn't play well with Proxy */++var initProxy;++{+ var allowedGlobals = makeMap(+ 'Infinity,undefined,NaN,isFinite,isNaN,' ++ 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' ++ 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' ++ 'require' // for Webpack/Browserify+ );++ var warnNonPresent = function (target, key) {+ warn(+ "Property or method \"" + key + "\" is not defined on the instance but " ++ 'referenced during render. Make sure that this property is reactive, ' ++ 'either in the data option, or for class-based components, by ' ++ 'initializing the property. ' ++ 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',+ target+ );+ };++ var hasProxy =+ typeof Proxy !== 'undefined' && isNative(Proxy);++ if (hasProxy) {+ var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');+ config.keyCodes = new Proxy(config.keyCodes, {+ set: function set (target, key, value) {+ if (isBuiltInModifier(key)) {+ warn(("Avoid overwriting built-in modifier in config.keyCodes: ." + key));+ return false+ } else {+ target[key] = value;+ return true+ }+ }+ });+ }++ var hasHandler = {+ has: function has (target, key) {+ var has = key in target;+ var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';+ if (!has && !isAllowed) {+ warnNonPresent(target, key);+ }+ return has || !isAllowed+ }+ };++ var getHandler = {+ get: function get (target, key) {+ if (typeof key === 'string' && !(key in target)) {+ warnNonPresent(target, key);+ }+ return target[key]+ }+ };++ initProxy = function initProxy (vm) {+ if (hasProxy) {+ // determine which proxy handler to use+ var options = vm.$options;+ var handlers = options.render && options.render._withStripped+ ? getHandler+ : hasHandler;+ vm._renderProxy = new Proxy(vm, handlers);+ } else {+ vm._renderProxy = vm;+ }+ };+}++/* */++var seenObjects = new _Set();++/**+ * Recursively traverse an object to evoke all converted+ * getters, so that every nested property inside the object+ * is collected as a "deep" dependency.+ */+function traverse (val) {+ _traverse(val, seenObjects);+ seenObjects.clear();+}++function _traverse (val, seen) {+ var i, keys;+ var isA = Array.isArray(val);+ if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {+ return+ }+ if (val.__ob__) {+ var depId = val.__ob__.dep.id;+ if (seen.has(depId)) {+ return+ }+ seen.add(depId);+ }+ if (isA) {+ i = val.length;+ while (i--) { _traverse(val[i], seen); }+ } else {+ keys = Object.keys(val);+ i = keys.length;+ while (i--) { _traverse(val[keys[i]], seen); }+ }+}++/* */++var normalizeEvent = cached(function (name) {+ var passive = name.charAt(0) === '&';+ name = passive ? name.slice(1) : name;+ var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first+ name = once$$1 ? name.slice(1) : name;+ var capture = name.charAt(0) === '!';+ name = capture ? name.slice(1) : name;+ return {+ name: name,+ once: once$$1,+ capture: capture,+ passive: passive+ }+});++function createFnInvoker (fns) {+ function invoker () {+ var arguments$1 = arguments;++ var fns = invoker.fns;+ if (Array.isArray(fns)) {+ var cloned = fns.slice();+ for (var i = 0; i < cloned.length; i++) {+ cloned[i].apply(null, arguments$1);+ }+ } else {+ // return handler return value for single handlers+ return fns.apply(null, arguments)+ }+ }+ invoker.fns = fns;+ return invoker+}++function updateListeners (+ on,+ oldOn,+ add,+ remove$$1,+ vm+) {+ var name, def, cur, old, event;+ for (name in on) {+ def = cur = on[name];+ old = oldOn[name];+ event = normalizeEvent(name);+ /* istanbul ignore if */+ if (isUndef(cur)) {+ "development" !== 'production' && warn(+ "Invalid handler for event \"" + (event.name) + "\": got " + String(cur),+ vm+ );+ } else if (isUndef(old)) {+ if (isUndef(cur.fns)) {+ cur = on[name] = createFnInvoker(cur);+ }+ add(event.name, cur, event.once, event.capture, event.passive, event.params);+ } else if (cur !== old) {+ old.fns = cur;+ on[name] = old;+ }+ }+ for (name in oldOn) {+ if (isUndef(on[name])) {+ event = normalizeEvent(name);+ remove$$1(event.name, oldOn[name], event.capture);+ }+ }+}++/* */++function mergeVNodeHook (def, hookKey, hook) {+ if (def instanceof VNode) {+ def = def.data.hook || (def.data.hook = {});+ }+ var invoker;+ var oldHook = def[hookKey];++ function wrappedHook () {+ hook.apply(this, arguments);+ // important: remove merged hook to ensure it's called only once+ // and prevent memory leak+ remove(invoker.fns, wrappedHook);+ }++ if (isUndef(oldHook)) {+ // no existing hook+ invoker = createFnInvoker([wrappedHook]);+ } else {+ /* istanbul ignore if */+ if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {+ // already a merged invoker+ invoker = oldHook;+ invoker.fns.push(wrappedHook);+ } else {+ // existing plain hook+ invoker = createFnInvoker([oldHook, wrappedHook]);+ }+ }++ invoker.merged = true;+ def[hookKey] = invoker;+}++/* */++function extractPropsFromVNodeData (+ data,+ Ctor,+ tag+) {+ // we are only extracting raw values here.+ // validation and default values are handled in the child+ // component itself.+ var propOptions = Ctor.options.props;+ if (isUndef(propOptions)) {+ return+ }+ var res = {};+ var attrs = data.attrs;+ var props = data.props;+ if (isDef(attrs) || isDef(props)) {+ for (var key in propOptions) {+ var altKey = hyphenate(key);+ {+ var keyInLowerCase = key.toLowerCase();+ if (+ key !== keyInLowerCase &&+ attrs && hasOwn(attrs, keyInLowerCase)+ ) {+ tip(+ "Prop \"" + keyInLowerCase + "\" is passed to component " ++ (formatComponentName(tag || Ctor)) + ", but the declared prop name is" ++ " \"" + key + "\". " ++ "Note that HTML attributes are case-insensitive and camelCased " ++ "props need to use their kebab-case equivalents when using in-DOM " ++ "templates. You should probably use \"" + altKey + "\" instead of \"" + key + "\"."+ );+ }+ }+ checkProp(res, props, key, altKey, true) ||+ checkProp(res, attrs, key, altKey, false);+ }+ }+ return res+}++function checkProp (+ res,+ hash,+ key,+ altKey,+ preserve+) {+ if (isDef(hash)) {+ if (hasOwn(hash, key)) {+ res[key] = hash[key];+ if (!preserve) {+ delete hash[key];+ }+ return true+ } else if (hasOwn(hash, altKey)) {+ res[key] = hash[altKey];+ if (!preserve) {+ delete hash[altKey];+ }+ return true+ }+ }+ return false+}++/* */++// The template compiler attempts to minimize the need for normalization by+// statically analyzing the template at compile time.+//+// For plain HTML markup, normalization can be completely skipped because the+// generated render function is guaranteed to return Array<VNode>. There are+// two cases where extra normalization is needed:++// 1. When the children contains components - because a functional component+// may return an Array instead of a single root. In this case, just a simple+// normalization is needed - if any child is an Array, we flatten the whole+// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep+// because functional components already normalize their own children.+function simpleNormalizeChildren (children) {+ for (var i = 0; i < children.length; i++) {+ if (Array.isArray(children[i])) {+ return Array.prototype.concat.apply([], children)+ }+ }+ return children+}++// 2. When the children contains constructs that always generated nested Arrays,+// e.g. <template>, <slot>, v-for, or when the children is provided by user+// with hand-written render functions / JSX. In such cases a full normalization+// is needed to cater to all possible types of children values.+function normalizeChildren (children) {+ return isPrimitive(children)+ ? [createTextVNode(children)]+ : Array.isArray(children)+ ? normalizeArrayChildren(children)+ : undefined+}++function isTextNode (node) {+ return isDef(node) && isDef(node.text) && isFalse(node.isComment)+}++function normalizeArrayChildren (children, nestedIndex) {+ var res = [];+ var i, c, lastIndex, last;+ for (i = 0; i < children.length; i++) {+ c = children[i];+ if (isUndef(c) || typeof c === 'boolean') { continue }+ lastIndex = res.length - 1;+ last = res[lastIndex];+ // nested+ if (Array.isArray(c)) {+ if (c.length > 0) {+ c = normalizeArrayChildren(c, ((nestedIndex || '') + "_" + i));+ // merge adjacent text nodes+ if (isTextNode(c[0]) && isTextNode(last)) {+ res[lastIndex] = createTextVNode(last.text + (c[0]).text);+ c.shift();+ }+ res.push.apply(res, c);+ }+ } else if (isPrimitive(c)) {+ if (isTextNode(last)) {+ // merge adjacent text nodes+ // this is necessary for SSR hydration because text nodes are+ // essentially merged when rendered to HTML strings+ res[lastIndex] = createTextVNode(last.text + c);+ } else if (c !== '') {+ // convert primitive to vnode+ res.push(createTextVNode(c));+ }+ } else {+ if (isTextNode(c) && isTextNode(last)) {+ // merge adjacent text nodes+ res[lastIndex] = createTextVNode(last.text + c.text);+ } else {+ // default key for nested array children (likely generated by v-for)+ if (isTrue(children._isVList) &&+ isDef(c.tag) &&+ isUndef(c.key) &&+ isDef(nestedIndex)) {+ c.key = "__vlist" + nestedIndex + "_" + i + "__";+ }+ res.push(c);+ }+ }+ }+ return res+}++/* */++function ensureCtor (comp, base) {+ if (+ comp.__esModule ||+ (hasSymbol && comp[Symbol.toStringTag] === 'Module')+ ) {+ comp = comp.default;+ }+ return isObject(comp)+ ? base.extend(comp)+ : comp+}++function createAsyncPlaceholder (+ factory,+ data,+ context,+ children,+ tag+) {+ var node = createEmptyVNode();+ node.asyncFactory = factory;+ node.asyncMeta = { data: data, context: context, children: children, tag: tag };+ return node+}++function resolveAsyncComponent (+ factory,+ baseCtor,+ context+) {+ if (isTrue(factory.error) && isDef(factory.errorComp)) {+ return factory.errorComp+ }++ if (isDef(factory.resolved)) {+ return factory.resolved+ }++ if (isTrue(factory.loading) && isDef(factory.loadingComp)) {+ return factory.loadingComp+ }++ if (isDef(factory.contexts)) {+ // already pending+ factory.contexts.push(context);+ } else {+ var contexts = factory.contexts = [context];+ var sync = true;++ var forceRender = function () {+ for (var i = 0, l = contexts.length; i < l; i++) {+ contexts[i].$forceUpdate();+ }+ };++ var resolve = once(function (res) {+ // cache resolved+ factory.resolved = ensureCtor(res, baseCtor);+ // invoke callbacks only if this is not a synchronous resolve+ // (async resolves are shimmed as synchronous during SSR)+ if (!sync) {+ forceRender();+ }+ });++ var reject = once(function (reason) {+ "development" !== 'production' && warn(+ "Failed to resolve async component: " + (String(factory)) ++ (reason ? ("\nReason: " + reason) : '')+ );+ if (isDef(factory.errorComp)) {+ factory.error = true;+ forceRender();+ }+ });++ var res = factory(resolve, reject);++ if (isObject(res)) {+ if (typeof res.then === 'function') {+ // () => Promise+ if (isUndef(factory.resolved)) {+ res.then(resolve, reject);+ }+ } else if (isDef(res.component) && typeof res.component.then === 'function') {+ res.component.then(resolve, reject);++ if (isDef(res.error)) {+ factory.errorComp = ensureCtor(res.error, baseCtor);+ }++ if (isDef(res.loading)) {+ factory.loadingComp = ensureCtor(res.loading, baseCtor);+ if (res.delay === 0) {+ factory.loading = true;+ } else {+ setTimeout(function () {+ if (isUndef(factory.resolved) && isUndef(factory.error)) {+ factory.loading = true;+ forceRender();+ }+ }, res.delay || 200);+ }+ }++ if (isDef(res.timeout)) {+ setTimeout(function () {+ if (isUndef(factory.resolved)) {+ reject(+ "timeout (" + (res.timeout) + "ms)"+ );+ }+ }, res.timeout);+ }+ }+ }++ sync = false;+ // return in case resolved synchronously+ return factory.loading+ ? factory.loadingComp+ : factory.resolved+ }+}++/* */++function isAsyncPlaceholder (node) {+ return node.isComment && node.asyncFactory+}++/* */++function getFirstComponentChild (children) {+ if (Array.isArray(children)) {+ for (var i = 0; i < children.length; i++) {+ var c = children[i];+ if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {+ return c+ }+ }+ }+}++/* */++/* */++function initEvents (vm) {+ vm._events = Object.create(null);+ vm._hasHookEvent = false;+ // init parent attached events+ var listeners = vm.$options._parentListeners;+ if (listeners) {+ updateComponentListeners(vm, listeners);+ }+}++var target;++function add (event, fn, once) {+ if (once) {+ target.$once(event, fn);+ } else {+ target.$on(event, fn);+ }+}++function remove$1 (event, fn) {+ target.$off(event, fn);+}++function updateComponentListeners (+ vm,+ listeners,+ oldListeners+) {+ target = vm;+ updateListeners(listeners, oldListeners || {}, add, remove$1, vm);+ target = undefined;+}++function eventsMixin (Vue) {+ var hookRE = /^hook:/;+ Vue.prototype.$on = function (event, fn) {+ var this$1 = this;++ var vm = this;+ if (Array.isArray(event)) {+ for (var i = 0, l = event.length; i < l; i++) {+ this$1.$on(event[i], fn);+ }+ } else {+ (vm._events[event] || (vm._events[event] = [])).push(fn);+ // optimize hook:event cost by using a boolean flag marked at registration+ // instead of a hash lookup+ if (hookRE.test(event)) {+ vm._hasHookEvent = true;+ }+ }+ return vm+ };++ Vue.prototype.$once = function (event, fn) {+ var vm = this;+ function on () {+ vm.$off(event, on);+ fn.apply(vm, arguments);+ }+ on.fn = fn;+ vm.$on(event, on);+ return vm+ };++ Vue.prototype.$off = function (event, fn) {+ var this$1 = this;++ var vm = this;+ // all+ if (!arguments.length) {+ vm._events = Object.create(null);+ return vm+ }+ // array of events+ if (Array.isArray(event)) {+ for (var i = 0, l = event.length; i < l; i++) {+ this$1.$off(event[i], fn);+ }+ return vm+ }+ // specific event+ var cbs = vm._events[event];+ if (!cbs) {+ return vm+ }+ if (!fn) {+ vm._events[event] = null;+ return vm+ }+ if (fn) {+ // specific handler+ var cb;+ var i$1 = cbs.length;+ while (i$1--) {+ cb = cbs[i$1];+ if (cb === fn || cb.fn === fn) {+ cbs.splice(i$1, 1);+ break+ }+ }+ }+ return vm+ };++ Vue.prototype.$emit = function (event) {+ var vm = this;+ {+ var lowerCaseEvent = event.toLowerCase();+ if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {+ tip(+ "Event \"" + lowerCaseEvent + "\" is emitted in component " ++ (formatComponentName(vm)) + " but the handler is registered for \"" + event + "\". " ++ "Note that HTML attributes are case-insensitive and you cannot use " ++ "v-on to listen to camelCase events when using in-DOM templates. " ++ "You should probably use \"" + (hyphenate(event)) + "\" instead of \"" + event + "\"."+ );+ }+ }+ var cbs = vm._events[event];+ if (cbs) {+ cbs = cbs.length > 1 ? toArray(cbs) : cbs;+ var args = toArray(arguments, 1);+ for (var i = 0, l = cbs.length; i < l; i++) {+ try {+ cbs[i].apply(vm, args);+ } catch (e) {+ handleError(e, vm, ("event handler for \"" + event + "\""));+ }+ }+ }+ return vm+ };+}++/* */++++/**+ * Runtime helper for resolving raw children VNodes into a slot object.+ */+function resolveSlots (+ children,+ context+) {+ var slots = {};+ if (!children) {+ return slots+ }+ for (var i = 0, l = children.length; i < l; i++) {+ var child = children[i];+ var data = child.data;+ // remove slot attribute if the node is resolved as a Vue slot node+ if (data && data.attrs && data.attrs.slot) {+ delete data.attrs.slot;+ }+ // named slots should only be respected if the vnode was rendered in the+ // same context.+ if ((child.context === context || child.fnContext === context) &&+ data && data.slot != null+ ) {+ var name = data.slot;+ var slot = (slots[name] || (slots[name] = []));+ if (child.tag === 'template') {+ slot.push.apply(slot, child.children || []);+ } else {+ slot.push(child);+ }+ } else {+ (slots.default || (slots.default = [])).push(child);+ }+ }+ // ignore slots that contains only whitespace+ for (var name$1 in slots) {+ if (slots[name$1].every(isWhitespace)) {+ delete slots[name$1];+ }+ }+ return slots+}++function isWhitespace (node) {+ return (node.isComment && !node.asyncFactory) || node.text === ' '+}++function resolveScopedSlots (+ fns, // see flow/vnode+ res+) {+ res = res || {};+ for (var i = 0; i < fns.length; i++) {+ if (Array.isArray(fns[i])) {+ resolveScopedSlots(fns[i], res);+ } else {+ res[fns[i].key] = fns[i].fn;+ }+ }+ return res+}++/* */++var activeInstance = null;+var isUpdatingChildComponent = false;++function initLifecycle (vm) {+ var options = vm.$options;++ // locate first non-abstract parent+ var parent = options.parent;+ if (parent && !options.abstract) {+ while (parent.$options.abstract && parent.$parent) {+ parent = parent.$parent;+ }+ parent.$children.push(vm);+ }++ vm.$parent = parent;+ vm.$root = parent ? parent.$root : vm;++ vm.$children = [];+ vm.$refs = {};++ vm._watcher = null;+ vm._inactive = null;+ vm._directInactive = false;+ vm._isMounted = false;+ vm._isDestroyed = false;+ vm._isBeingDestroyed = false;+}++function lifecycleMixin (Vue) {+ Vue.prototype._update = function (vnode, hydrating) {+ var vm = this;+ if (vm._isMounted) {+ callHook(vm, 'beforeUpdate');+ }+ var prevEl = vm.$el;+ var prevVnode = vm._vnode;+ var prevActiveInstance = activeInstance;+ activeInstance = vm;+ vm._vnode = vnode;+ // Vue.prototype.__patch__ is injected in entry points+ // based on the rendering backend used.+ if (!prevVnode) {+ // initial render+ vm.$el = vm.__patch__(+ vm.$el, vnode, hydrating, false /* removeOnly */,+ vm.$options._parentElm,+ vm.$options._refElm+ );+ // no need for the ref nodes after initial patch+ // this prevents keeping a detached DOM tree in memory (#5851)+ vm.$options._parentElm = vm.$options._refElm = null;+ } else {+ // updates+ vm.$el = vm.__patch__(prevVnode, vnode);+ }+ activeInstance = prevActiveInstance;+ // update __vue__ reference+ if (prevEl) {+ prevEl.__vue__ = null;+ }+ if (vm.$el) {+ vm.$el.__vue__ = vm;+ }+ // if parent is an HOC, update its $el as well+ if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {+ vm.$parent.$el = vm.$el;+ }+ // updated hook is called by the scheduler to ensure that children are+ // updated in a parent's updated hook.+ };++ Vue.prototype.$forceUpdate = function () {+ var vm = this;+ if (vm._watcher) {+ vm._watcher.update();+ }+ };++ Vue.prototype.$destroy = function () {+ var vm = this;+ if (vm._isBeingDestroyed) {+ return+ }+ callHook(vm, 'beforeDestroy');+ vm._isBeingDestroyed = true;+ // remove self from parent+ var parent = vm.$parent;+ if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {+ remove(parent.$children, vm);+ }+ // teardown watchers+ if (vm._watcher) {+ vm._watcher.teardown();+ }+ var i = vm._watchers.length;+ while (i--) {+ vm._watchers[i].teardown();+ }+ // remove reference from data ob+ // frozen object may not have observer.+ if (vm._data.__ob__) {+ vm._data.__ob__.vmCount--;+ }+ // call the last hook...+ vm._isDestroyed = true;+ // invoke destroy hooks on current rendered tree+ vm.__patch__(vm._vnode, null);+ // fire destroyed hook+ callHook(vm, 'destroyed');+ // turn off all instance listeners.+ vm.$off();+ // remove __vue__ reference+ if (vm.$el) {+ vm.$el.__vue__ = null;+ }+ // release circular reference (#6759)+ if (vm.$vnode) {+ vm.$vnode.parent = null;+ }+ };+}++function mountComponent (+ vm,+ el,+ hydrating+) {+ vm.$el = el;+ if (!vm.$options.render) {+ vm.$options.render = createEmptyVNode;+ {+ /* istanbul ignore if */+ if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||+ vm.$options.el || el) {+ warn(+ 'You are using the runtime-only build of Vue where the template ' ++ 'compiler is not available. Either pre-compile the templates into ' ++ 'render functions, or use the compiler-included build.',+ vm+ );+ } else {+ warn(+ 'Failed to mount component: template or render function not defined.',+ vm+ );+ }+ }+ }+ callHook(vm, 'beforeMount');++ var updateComponent;+ /* istanbul ignore if */+ if ("development" !== 'production' && config.performance && mark) {+ updateComponent = function () {+ var name = vm._name;+ var id = vm._uid;+ var startTag = "vue-perf-start:" + id;+ var endTag = "vue-perf-end:" + id;++ mark(startTag);+ var vnode = vm._render();+ mark(endTag);+ measure(("vue " + name + " render"), startTag, endTag);++ mark(startTag);+ vm._update(vnode, hydrating);+ mark(endTag);+ measure(("vue " + name + " patch"), startTag, endTag);+ };+ } else {+ updateComponent = function () {+ vm._update(vm._render(), hydrating);+ };+ }++ // we set this to vm._watcher inside the watcher's constructor+ // since the watcher's initial patch may call $forceUpdate (e.g. inside child+ // component's mounted hook), which relies on vm._watcher being already defined+ new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);+ hydrating = false;++ // manually mounted instance, call mounted on self+ // mounted is called for render-created child components in its inserted hook+ if (vm.$vnode == null) {+ vm._isMounted = true;+ callHook(vm, 'mounted');+ }+ return vm+}++function updateChildComponent (+ vm,+ propsData,+ listeners,+ parentVnode,+ renderChildren+) {+ {+ isUpdatingChildComponent = true;+ }++ // determine whether component has slot children+ // we need to do this before overwriting $options._renderChildren+ var hasChildren = !!(+ renderChildren || // has new static slots+ vm.$options._renderChildren || // has old static slots+ parentVnode.data.scopedSlots || // has new scoped slots+ vm.$scopedSlots !== emptyObject // has old scoped slots+ );++ vm.$options._parentVnode = parentVnode;+ vm.$vnode = parentVnode; // update vm's placeholder node without re-render++ if (vm._vnode) { // update child tree's parent+ vm._vnode.parent = parentVnode;+ }+ vm.$options._renderChildren = renderChildren;++ // update $attrs and $listeners hash+ // these are also reactive so they may trigger child update if the child+ // used them during render+ vm.$attrs = parentVnode.data.attrs || emptyObject;+ vm.$listeners = listeners || emptyObject;++ // update props+ if (propsData && vm.$options.props) {+ toggleObserving(false);+ var props = vm._props;+ var propKeys = vm.$options._propKeys || [];+ for (var i = 0; i < propKeys.length; i++) {+ var key = propKeys[i];+ var propOptions = vm.$options.props; // wtf flow?+ props[key] = validateProp(key, propOptions, propsData, vm);+ }+ toggleObserving(true);+ // keep a copy of raw propsData+ vm.$options.propsData = propsData;+ }++ // update listeners+ listeners = listeners || emptyObject;+ var oldListeners = vm.$options._parentListeners;+ vm.$options._parentListeners = listeners;+ updateComponentListeners(vm, listeners, oldListeners);++ // resolve slots + force update if has children+ if (hasChildren) {+ vm.$slots = resolveSlots(renderChildren, parentVnode.context);+ vm.$forceUpdate();+ }++ {+ isUpdatingChildComponent = false;+ }+}++function isInInactiveTree (vm) {+ while (vm && (vm = vm.$parent)) {+ if (vm._inactive) { return true }+ }+ return false+}++function activateChildComponent (vm, direct) {+ if (direct) {+ vm._directInactive = false;+ if (isInInactiveTree(vm)) {+ return+ }+ } else if (vm._directInactive) {+ return+ }+ if (vm._inactive || vm._inactive === null) {+ vm._inactive = false;+ for (var i = 0; i < vm.$children.length; i++) {+ activateChildComponent(vm.$children[i]);+ }+ callHook(vm, 'activated');+ }+}++function deactivateChildComponent (vm, direct) {+ if (direct) {+ vm._directInactive = true;+ if (isInInactiveTree(vm)) {+ return+ }+ }+ if (!vm._inactive) {+ vm._inactive = true;+ for (var i = 0; i < vm.$children.length; i++) {+ deactivateChildComponent(vm.$children[i]);+ }+ callHook(vm, 'deactivated');+ }+}++function callHook (vm, hook) {+ // #7573 disable dep collection when invoking lifecycle hooks+ pushTarget();+ var handlers = vm.$options[hook];+ if (handlers) {+ for (var i = 0, j = handlers.length; i < j; i++) {+ try {+ handlers[i].call(vm);+ } catch (e) {+ handleError(e, vm, (hook + " hook"));+ }+ }+ }+ if (vm._hasHookEvent) {+ vm.$emit('hook:' + hook);+ }+ popTarget();+}++/* */+++var MAX_UPDATE_COUNT = 100;++var queue = [];+var activatedChildren = [];+var has = {};+var circular = {};+var waiting = false;+var flushing = false;+var index = 0;++/**+ * Reset the scheduler's state.+ */+function resetSchedulerState () {+ index = queue.length = activatedChildren.length = 0;+ has = {};+ {+ circular = {};+ }+ waiting = flushing = false;+}++/**+ * Flush both queues and run the watchers.+ */+function flushSchedulerQueue () {+ flushing = true;+ var watcher, id;++ // Sort queue before flush.+ // This ensures that:+ // 1. Components are updated from parent to child. (because parent is always+ // created before the child)+ // 2. A component's user watchers are run before its render watcher (because+ // user watchers are created before the render watcher)+ // 3. If a component is destroyed during a parent component's watcher run,+ // its watchers can be skipped.+ queue.sort(function (a, b) { return a.id - b.id; });++ // do not cache length because more watchers might be pushed+ // as we run existing watchers+ for (index = 0; index < queue.length; index++) {+ watcher = queue[index];+ id = watcher.id;+ has[id] = null;+ watcher.run();+ // in dev build, check and stop circular updates.+ if ("development" !== 'production' && has[id] != null) {+ circular[id] = (circular[id] || 0) + 1;+ if (circular[id] > MAX_UPDATE_COUNT) {+ warn(+ 'You may have an infinite update loop ' + (+ watcher.user+ ? ("in watcher with expression \"" + (watcher.expression) + "\"")+ : "in a component render function."+ ),+ watcher.vm+ );+ break+ }+ }+ }++ // keep copies of post queues before resetting state+ var activatedQueue = activatedChildren.slice();+ var updatedQueue = queue.slice();++ resetSchedulerState();++ // call component updated and activated hooks+ callActivatedHooks(activatedQueue);+ callUpdatedHooks(updatedQueue);++ // devtool hook+ /* istanbul ignore if */+ if (devtools && config.devtools) {+ devtools.emit('flush');+ }+}++function callUpdatedHooks (queue) {+ var i = queue.length;+ while (i--) {+ var watcher = queue[i];+ var vm = watcher.vm;+ if (vm._watcher === watcher && vm._isMounted) {+ callHook(vm, 'updated');+ }+ }+}++/**+ * Queue a kept-alive component that was activated during patch.+ * The queue will be processed after the entire tree has been patched.+ */+function queueActivatedComponent (vm) {+ // setting _inactive to false here so that a render function can+ // rely on checking whether it's in an inactive tree (e.g. router-view)+ vm._inactive = false;+ activatedChildren.push(vm);+}++function callActivatedHooks (queue) {+ for (var i = 0; i < queue.length; i++) {+ queue[i]._inactive = true;+ activateChildComponent(queue[i], true /* true */);+ }+}++/**+ * Push a watcher into the watcher queue.+ * Jobs with duplicate IDs will be skipped unless it's+ * pushed when the queue is being flushed.+ */+function queueWatcher (watcher) {+ var id = watcher.id;+ if (has[id] == null) {+ has[id] = true;+ if (!flushing) {+ queue.push(watcher);+ } else {+ // if already flushing, splice the watcher based on its id+ // if already past its id, it will be run next immediately.+ var i = queue.length - 1;+ while (i > index && queue[i].id > watcher.id) {+ i--;+ }+ queue.splice(i + 1, 0, watcher);+ }+ // queue the flush+ if (!waiting) {+ waiting = true;+ nextTick(flushSchedulerQueue);+ }+ }+}++/* */++var uid$1 = 0;++/**+ * A watcher parses an expression, collects dependencies,+ * and fires callback when the expression value changes.+ * This is used for both the $watch() api and directives.+ */+var Watcher = function Watcher (+ vm,+ expOrFn,+ cb,+ options,+ isRenderWatcher+) {+ this.vm = vm;+ if (isRenderWatcher) {+ vm._watcher = this;+ }+ vm._watchers.push(this);+ // options+ if (options) {+ this.deep = !!options.deep;+ this.user = !!options.user;+ this.lazy = !!options.lazy;+ this.sync = !!options.sync;+ } else {+ this.deep = this.user = this.lazy = this.sync = false;+ }+ this.cb = cb;+ this.id = ++uid$1; // uid for batching+ this.active = true;+ this.dirty = this.lazy; // for lazy watchers+ this.deps = [];+ this.newDeps = [];+ this.depIds = new _Set();+ this.newDepIds = new _Set();+ this.expression = expOrFn.toString();+ // parse expression for getter+ if (typeof expOrFn === 'function') {+ this.getter = expOrFn;+ } else {+ this.getter = parsePath(expOrFn);+ if (!this.getter) {+ this.getter = function () {};+ "development" !== 'production' && warn(+ "Failed watching path: \"" + expOrFn + "\" " ++ 'Watcher only accepts simple dot-delimited paths. ' ++ 'For full control, use a function instead.',+ vm+ );+ }+ }+ this.value = this.lazy+ ? undefined+ : this.get();+};++/**+ * Evaluate the getter, and re-collect dependencies.+ */+Watcher.prototype.get = function get () {+ pushTarget(this);+ var value;+ var vm = this.vm;+ try {+ value = this.getter.call(vm, vm);+ } catch (e) {+ if (this.user) {+ handleError(e, vm, ("getter for watcher \"" + (this.expression) + "\""));+ } else {+ throw e+ }+ } finally {+ // "touch" every property so they are all tracked as+ // dependencies for deep watching+ if (this.deep) {+ traverse(value);+ }+ popTarget();+ this.cleanupDeps();+ }+ return value+};++/**+ * Add a dependency to this directive.+ */+Watcher.prototype.addDep = function addDep (dep) {+ var id = dep.id;+ if (!this.newDepIds.has(id)) {+ this.newDepIds.add(id);+ this.newDeps.push(dep);+ if (!this.depIds.has(id)) {+ dep.addSub(this);+ }+ }+};++/**+ * Clean up for dependency collection.+ */+Watcher.prototype.cleanupDeps = function cleanupDeps () {+ var this$1 = this;++ var i = this.deps.length;+ while (i--) {+ var dep = this$1.deps[i];+ if (!this$1.newDepIds.has(dep.id)) {+ dep.removeSub(this$1);+ }+ }+ var tmp = this.depIds;+ this.depIds = this.newDepIds;+ this.newDepIds = tmp;+ this.newDepIds.clear();+ tmp = this.deps;+ this.deps = this.newDeps;+ this.newDeps = tmp;+ this.newDeps.length = 0;+};++/**+ * Subscriber interface.+ * Will be called when a dependency changes.+ */+Watcher.prototype.update = function update () {+ /* istanbul ignore else */+ if (this.lazy) {+ this.dirty = true;+ } else if (this.sync) {+ this.run();+ } else {+ queueWatcher(this);+ }+};++/**+ * Scheduler job interface.+ * Will be called by the scheduler.+ */+Watcher.prototype.run = function run () {+ if (this.active) {+ var value = this.get();+ if (+ value !== this.value ||+ // Deep watchers and watchers on Object/Arrays should fire even+ // when the value is the same, because the value may+ // have mutated.+ isObject(value) ||+ this.deep+ ) {+ // set new value+ var oldValue = this.value;+ this.value = value;+ if (this.user) {+ try {+ this.cb.call(this.vm, value, oldValue);+ } catch (e) {+ handleError(e, this.vm, ("callback for watcher \"" + (this.expression) + "\""));+ }+ } else {+ this.cb.call(this.vm, value, oldValue);+ }+ }+ }+};++/**+ * Evaluate the value of the watcher.+ * This only gets called for lazy watchers.+ */+Watcher.prototype.evaluate = function evaluate () {+ this.value = this.get();+ this.dirty = false;+};++/**+ * Depend on all deps collected by this watcher.+ */+Watcher.prototype.depend = function depend () {+ var this$1 = this;++ var i = this.deps.length;+ while (i--) {+ this$1.deps[i].depend();+ }+};++/**+ * Remove self from all dependencies' subscriber list.+ */+Watcher.prototype.teardown = function teardown () {+ var this$1 = this;++ if (this.active) {+ // remove self from vm's watcher list+ // this is a somewhat expensive operation so we skip it+ // if the vm is being destroyed.+ if (!this.vm._isBeingDestroyed) {+ remove(this.vm._watchers, this);+ }+ var i = this.deps.length;+ while (i--) {+ this$1.deps[i].removeSub(this$1);+ }+ this.active = false;+ }+};++/* */++var sharedPropertyDefinition = {+ enumerable: true,+ configurable: true,+ get: noop,+ set: noop+};++function proxy (target, sourceKey, key) {+ sharedPropertyDefinition.get = function proxyGetter () {+ return this[sourceKey][key]+ };+ sharedPropertyDefinition.set = function proxySetter (val) {+ this[sourceKey][key] = val;+ };+ Object.defineProperty(target, key, sharedPropertyDefinition);+}++function initState (vm) {+ vm._watchers = [];+ var opts = vm.$options;+ if (opts.props) { initProps(vm, opts.props); }+ if (opts.methods) { initMethods(vm, opts.methods); }+ if (opts.data) {+ initData(vm);+ } else {+ observe(vm._data = {}, true /* asRootData */);+ }+ if (opts.computed) { initComputed(vm, opts.computed); }+ if (opts.watch && opts.watch !== nativeWatch) {+ initWatch(vm, opts.watch);+ }+}++function initProps (vm, propsOptions) {+ var propsData = vm.$options.propsData || {};+ var props = vm._props = {};+ // cache prop keys so that future props updates can iterate using Array+ // instead of dynamic object key enumeration.+ var keys = vm.$options._propKeys = [];+ var isRoot = !vm.$parent;+ // root instance props should be converted+ if (!isRoot) {+ toggleObserving(false);+ }+ var loop = function ( key ) {+ keys.push(key);+ var value = validateProp(key, propsOptions, propsData, vm);+ /* istanbul ignore else */+ {+ var hyphenatedKey = hyphenate(key);+ if (isReservedAttribute(hyphenatedKey) ||+ config.isReservedAttr(hyphenatedKey)) {+ warn(+ ("\"" + hyphenatedKey + "\" is a reserved attribute and cannot be used as component prop."),+ vm+ );+ }+ defineReactive(props, key, value, function () {+ if (vm.$parent && !isUpdatingChildComponent) {+ warn(+ "Avoid mutating a prop directly since the value will be " ++ "overwritten whenever the parent component re-renders. " ++ "Instead, use a data or computed property based on the prop's " ++ "value. Prop being mutated: \"" + key + "\"",+ vm+ );+ }+ });+ }+ // static props are already proxied on the component's prototype+ // during Vue.extend(). We only need to proxy props defined at+ // instantiation here.+ if (!(key in vm)) {+ proxy(vm, "_props", key);+ }+ };++ for (var key in propsOptions) loop( key );+ toggleObserving(true);+}++function initData (vm) {+ var data = vm.$options.data;+ data = vm._data = typeof data === 'function'+ ? getData(data, vm)+ : data || {};+ if (!isPlainObject(data)) {+ data = {};+ "development" !== 'production' && warn(+ 'data functions should return an object:\n' ++ 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',+ vm+ );+ }+ // proxy data on instance+ var keys = Object.keys(data);+ var props = vm.$options.props;+ var methods = vm.$options.methods;+ var i = keys.length;+ while (i--) {+ var key = keys[i];+ {+ if (methods && hasOwn(methods, key)) {+ warn(+ ("Method \"" + key + "\" has already been defined as a data property."),+ vm+ );+ }+ }+ if (props && hasOwn(props, key)) {+ "development" !== 'production' && warn(+ "The data property \"" + key + "\" is already declared as a prop. " ++ "Use prop default value instead.",+ vm+ );+ } else if (!isReserved(key)) {+ proxy(vm, "_data", key);+ }+ }+ // observe data+ observe(data, true /* asRootData */);+}++function getData (data, vm) {+ // #7573 disable dep collection when invoking data getters+ pushTarget();+ try {+ return data.call(vm, vm)+ } catch (e) {+ handleError(e, vm, "data()");+ return {}+ } finally {+ popTarget();+ }+}++var computedWatcherOptions = { lazy: true };++function initComputed (vm, computed) {+ // $flow-disable-line+ var watchers = vm._computedWatchers = Object.create(null);+ // computed properties are just getters during SSR+ var isSSR = isServerRendering();++ for (var key in computed) {+ var userDef = computed[key];+ var getter = typeof userDef === 'function' ? userDef : userDef.get;+ if ("development" !== 'production' && getter == null) {+ warn(+ ("Getter is missing for computed property \"" + key + "\"."),+ vm+ );+ }++ if (!isSSR) {+ // create internal watcher for the computed property.+ watchers[key] = new Watcher(+ vm,+ getter || noop,+ noop,+ computedWatcherOptions+ );+ }++ // component-defined computed properties are already defined on the+ // component prototype. We only need to define computed properties defined+ // at instantiation here.+ if (!(key in vm)) {+ defineComputed(vm, key, userDef);+ } else {+ if (key in vm.$data) {+ warn(("The computed property \"" + key + "\" is already defined in data."), vm);+ } else if (vm.$options.props && key in vm.$options.props) {+ warn(("The computed property \"" + key + "\" is already defined as a prop."), vm);+ }+ }+ }+}++function defineComputed (+ target,+ key,+ userDef+) {+ var shouldCache = !isServerRendering();+ if (typeof userDef === 'function') {+ sharedPropertyDefinition.get = shouldCache+ ? createComputedGetter(key)+ : userDef;+ sharedPropertyDefinition.set = noop;+ } else {+ sharedPropertyDefinition.get = userDef.get+ ? shouldCache && userDef.cache !== false+ ? createComputedGetter(key)+ : userDef.get+ : noop;+ sharedPropertyDefinition.set = userDef.set+ ? userDef.set+ : noop;+ }+ if ("development" !== 'production' &&+ sharedPropertyDefinition.set === noop) {+ sharedPropertyDefinition.set = function () {+ warn(+ ("Computed property \"" + key + "\" was assigned to but it has no setter."),+ this+ );+ };+ }+ Object.defineProperty(target, key, sharedPropertyDefinition);+}++function createComputedGetter (key) {+ return function computedGetter () {+ var watcher = this._computedWatchers && this._computedWatchers[key];+ if (watcher) {+ if (watcher.dirty) {+ watcher.evaluate();+ }+ if (Dep.target) {+ watcher.depend();+ }+ return watcher.value+ }+ }+}++function initMethods (vm, methods) {+ var props = vm.$options.props;+ for (var key in methods) {+ {+ if (methods[key] == null) {+ warn(+ "Method \"" + key + "\" has an undefined value in the component definition. " ++ "Did you reference the function correctly?",+ vm+ );+ }+ if (props && hasOwn(props, key)) {+ warn(+ ("Method \"" + key + "\" has already been defined as a prop."),+ vm+ );+ }+ if ((key in vm) && isReserved(key)) {+ warn(+ "Method \"" + key + "\" conflicts with an existing Vue instance method. " ++ "Avoid defining component methods that start with _ or $."+ );+ }+ }+ vm[key] = methods[key] == null ? noop : bind(methods[key], vm);+ }+}++function initWatch (vm, watch) {+ for (var key in watch) {+ var handler = watch[key];+ if (Array.isArray(handler)) {+ for (var i = 0; i < handler.length; i++) {+ createWatcher(vm, key, handler[i]);+ }+ } else {+ createWatcher(vm, key, handler);+ }+ }+}++function createWatcher (+ vm,+ expOrFn,+ handler,+ options+) {+ if (isPlainObject(handler)) {+ options = handler;+ handler = handler.handler;+ }+ if (typeof handler === 'string') {+ handler = vm[handler];+ }+ return vm.$watch(expOrFn, handler, options)+}++function stateMixin (Vue) {+ // flow somehow has problems with directly declared definition object+ // when using Object.defineProperty, so we have to procedurally build up+ // the object here.+ var dataDef = {};+ dataDef.get = function () { return this._data };+ var propsDef = {};+ propsDef.get = function () { return this._props };+ {+ dataDef.set = function (newData) {+ warn(+ 'Avoid replacing instance root $data. ' ++ 'Use nested data properties instead.',+ this+ );+ };+ propsDef.set = function () {+ warn("$props is readonly.", this);+ };+ }+ Object.defineProperty(Vue.prototype, '$data', dataDef);+ Object.defineProperty(Vue.prototype, '$props', propsDef);++ Vue.prototype.$set = set;+ Vue.prototype.$delete = del;++ Vue.prototype.$watch = function (+ expOrFn,+ cb,+ options+ ) {+ var vm = this;+ if (isPlainObject(cb)) {+ return createWatcher(vm, expOrFn, cb, options)+ }+ options = options || {};+ options.user = true;+ var watcher = new Watcher(vm, expOrFn, cb, options);+ if (options.immediate) {+ cb.call(vm, watcher.value);+ }+ return function unwatchFn () {+ watcher.teardown();+ }+ };+}++/* */++function initProvide (vm) {+ var provide = vm.$options.provide;+ if (provide) {+ vm._provided = typeof provide === 'function'+ ? provide.call(vm)+ : provide;+ }+}++function initInjections (vm) {+ var result = resolveInject(vm.$options.inject, vm);+ if (result) {+ toggleObserving(false);+ Object.keys(result).forEach(function (key) {+ /* istanbul ignore else */+ {+ defineReactive(vm, key, result[key], function () {+ warn(+ "Avoid mutating an injected value directly since the changes will be " ++ "overwritten whenever the provided component re-renders. " ++ "injection being mutated: \"" + key + "\"",+ vm+ );+ });+ }+ });+ toggleObserving(true);+ }+}++function resolveInject (inject, vm) {+ if (inject) {+ // inject is :any because flow is not smart enough to figure out cached+ var result = Object.create(null);+ var keys = hasSymbol+ ? Reflect.ownKeys(inject).filter(function (key) {+ /* istanbul ignore next */+ return Object.getOwnPropertyDescriptor(inject, key).enumerable+ })+ : Object.keys(inject);++ for (var i = 0; i < keys.length; i++) {+ var key = keys[i];+ var provideKey = inject[key].from;+ var source = vm;+ while (source) {+ if (source._provided && hasOwn(source._provided, provideKey)) {+ result[key] = source._provided[provideKey];+ break+ }+ source = source.$parent;+ }+ if (!source) {+ if ('default' in inject[key]) {+ var provideDefault = inject[key].default;+ result[key] = typeof provideDefault === 'function'+ ? provideDefault.call(vm)+ : provideDefault;+ } else {+ warn(("Injection \"" + key + "\" not found"), vm);+ }+ }+ }+ return result+ }+}++/* */++/**+ * Runtime helper for rendering v-for lists.+ */+function renderList (+ val,+ render+) {+ var ret, i, l, keys, key;+ if (Array.isArray(val) || typeof val === 'string') {+ ret = new Array(val.length);+ for (i = 0, l = val.length; i < l; i++) {+ ret[i] = render(val[i], i);+ }+ } else if (typeof val === 'number') {+ ret = new Array(val);+ for (i = 0; i < val; i++) {+ ret[i] = render(i + 1, i);+ }+ } else if (isObject(val)) {+ keys = Object.keys(val);+ ret = new Array(keys.length);+ for (i = 0, l = keys.length; i < l; i++) {+ key = keys[i];+ ret[i] = render(val[key], key, i);+ }+ }+ if (isDef(ret)) {+ (ret)._isVList = true;+ }+ return ret+}++/* */++/**+ * Runtime helper for rendering <slot>+ */+function renderSlot (+ name,+ fallback,+ props,+ bindObject+) {+ var scopedSlotFn = this.$scopedSlots[name];+ var nodes;+ if (scopedSlotFn) { // scoped slot+ props = props || {};+ if (bindObject) {+ if ("development" !== 'production' && !isObject(bindObject)) {+ warn(+ 'slot v-bind without argument expects an Object',+ this+ );+ }+ props = extend(extend({}, bindObject), props);+ }+ nodes = scopedSlotFn(props) || fallback;+ } else {+ var slotNodes = this.$slots[name];+ // warn duplicate slot usage+ if (slotNodes) {+ if ("development" !== 'production' && slotNodes._rendered) {+ warn(+ "Duplicate presence of slot \"" + name + "\" found in the same render tree " ++ "- this will likely cause render errors.",+ this+ );+ }+ slotNodes._rendered = true;+ }+ nodes = slotNodes || fallback;+ }++ var target = props && props.slot;+ if (target) {+ return this.$createElement('template', { slot: target }, nodes)+ } else {+ return nodes+ }+}++/* */++/**+ * Runtime helper for resolving filters+ */+function resolveFilter (id) {+ return resolveAsset(this.$options, 'filters', id, true) || identity+}++/* */++function isKeyNotMatch (expect, actual) {+ if (Array.isArray(expect)) {+ return expect.indexOf(actual) === -1+ } else {+ return expect !== actual+ }+}++/**+ * Runtime helper for checking keyCodes from config.+ * exposed as Vue.prototype._k+ * passing in eventKeyName as last argument separately for backwards compat+ */+function checkKeyCodes (+ eventKeyCode,+ key,+ builtInKeyCode,+ eventKeyName,+ builtInKeyName+) {+ var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;+ if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {+ return isKeyNotMatch(builtInKeyName, eventKeyName)+ } else if (mappedKeyCode) {+ return isKeyNotMatch(mappedKeyCode, eventKeyCode)+ } else if (eventKeyName) {+ return hyphenate(eventKeyName) !== key+ }+}++/* */++/**+ * Runtime helper for merging v-bind="object" into a VNode's data.+ */+function bindObjectProps (+ data,+ tag,+ value,+ asProp,+ isSync+) {+ if (value) {+ if (!isObject(value)) {+ "development" !== 'production' && warn(+ 'v-bind without argument expects an Object or Array value',+ this+ );+ } else {+ if (Array.isArray(value)) {+ value = toObject(value);+ }+ var hash;+ var loop = function ( key ) {+ if (+ key === 'class' ||+ key === 'style' ||+ isReservedAttribute(key)+ ) {+ hash = data;+ } else {+ var type = data.attrs && data.attrs.type;+ hash = asProp || config.mustUseProp(tag, type, key)+ ? data.domProps || (data.domProps = {})+ : data.attrs || (data.attrs = {});+ }+ if (!(key in hash)) {+ hash[key] = value[key];++ if (isSync) {+ var on = data.on || (data.on = {});+ on[("update:" + key)] = function ($event) {+ value[key] = $event;+ };+ }+ }+ };++ for (var key in value) loop( key );+ }+ }+ return data+}++/* */++/**+ * Runtime helper for rendering static trees.+ */+function renderStatic (+ index,+ isInFor+) {+ var cached = this._staticTrees || (this._staticTrees = []);+ var tree = cached[index];+ // if has already-rendered static tree and not inside v-for,+ // we can reuse the same tree.+ if (tree && !isInFor) {+ return tree+ }+ // otherwise, render a fresh tree.+ tree = cached[index] = this.$options.staticRenderFns[index].call(+ this._renderProxy,+ null,+ this // for render fns generated for functional component templates+ );+ markStatic(tree, ("__static__" + index), false);+ return tree+}++/**+ * Runtime helper for v-once.+ * Effectively it means marking the node as static with a unique key.+ */+function markOnce (+ tree,+ index,+ key+) {+ markStatic(tree, ("__once__" + index + (key ? ("_" + key) : "")), true);+ return tree+}++function markStatic (+ tree,+ key,+ isOnce+) {+ if (Array.isArray(tree)) {+ for (var i = 0; i < tree.length; i++) {+ if (tree[i] && typeof tree[i] !== 'string') {+ markStaticNode(tree[i], (key + "_" + i), isOnce);+ }+ }+ } else {+ markStaticNode(tree, key, isOnce);+ }+}++function markStaticNode (node, key, isOnce) {+ node.isStatic = true;+ node.key = key;+ node.isOnce = isOnce;+}++/* */++function bindObjectListeners (data, value) {+ if (value) {+ if (!isPlainObject(value)) {+ "development" !== 'production' && warn(+ 'v-on without argument expects an Object value',+ this+ );+ } else {+ var on = data.on = data.on ? extend({}, data.on) : {};+ for (var key in value) {+ var existing = on[key];+ var ours = value[key];+ on[key] = existing ? [].concat(existing, ours) : ours;+ }+ }+ }+ return data+}++/* */++function installRenderHelpers (target) {+ target._o = markOnce;+ target._n = toNumber;+ target._s = toString;+ target._l = renderList;+ target._t = renderSlot;+ target._q = looseEqual;+ target._i = looseIndexOf;+ target._m = renderStatic;+ target._f = resolveFilter;+ target._k = checkKeyCodes;+ target._b = bindObjectProps;+ target._v = createTextVNode;+ target._e = createEmptyVNode;+ target._u = resolveScopedSlots;+ target._g = bindObjectListeners;+}++/* */++function FunctionalRenderContext (+ data,+ props,+ children,+ parent,+ Ctor+) {+ var options = Ctor.options;+ // ensure the createElement function in functional components+ // gets a unique context - this is necessary for correct named slot check+ var contextVm;+ if (hasOwn(parent, '_uid')) {+ contextVm = Object.create(parent);+ // $flow-disable-line+ contextVm._original = parent;+ } else {+ // the context vm passed in is a functional context as well.+ // in this case we want to make sure we are able to get a hold to the+ // real context instance.+ contextVm = parent;+ // $flow-disable-line+ parent = parent._original;+ }+ var isCompiled = isTrue(options._compiled);+ var needNormalization = !isCompiled;++ this.data = data;+ this.props = props;+ this.children = children;+ this.parent = parent;+ this.listeners = data.on || emptyObject;+ this.injections = resolveInject(options.inject, parent);+ this.slots = function () { return resolveSlots(children, parent); };++ // support for compiled functional template+ if (isCompiled) {+ // exposing $options for renderStatic()+ this.$options = options;+ // pre-resolve slots for renderSlot()+ this.$slots = this.slots();+ this.$scopedSlots = data.scopedSlots || emptyObject;+ }++ if (options._scopeId) {+ this._c = function (a, b, c, d) {+ var vnode = createElement(contextVm, a, b, c, d, needNormalization);+ if (vnode && !Array.isArray(vnode)) {+ vnode.fnScopeId = options._scopeId;+ vnode.fnContext = parent;+ }+ return vnode+ };+ } else {+ this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };+ }+}++installRenderHelpers(FunctionalRenderContext.prototype);++function createFunctionalComponent (+ Ctor,+ propsData,+ data,+ contextVm,+ children+) {+ var options = Ctor.options;+ var props = {};+ var propOptions = options.props;+ if (isDef(propOptions)) {+ for (var key in propOptions) {+ props[key] = validateProp(key, propOptions, propsData || emptyObject);+ }+ } else {+ if (isDef(data.attrs)) { mergeProps(props, data.attrs); }+ if (isDef(data.props)) { mergeProps(props, data.props); }+ }++ var renderContext = new FunctionalRenderContext(+ data,+ props,+ children,+ contextVm,+ Ctor+ );++ var vnode = options.render.call(null, renderContext._c, renderContext);++ if (vnode instanceof VNode) {+ return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)+ } else if (Array.isArray(vnode)) {+ var vnodes = normalizeChildren(vnode) || [];+ var res = new Array(vnodes.length);+ for (var i = 0; i < vnodes.length; i++) {+ res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);+ }+ return res+ }+}++function cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {+ // #7817 clone node before setting fnContext, otherwise if the node is reused+ // (e.g. it was from a cached normal slot) the fnContext causes named slots+ // that should not be matched to match.+ var clone = cloneVNode(vnode);+ clone.fnContext = contextVm;+ clone.fnOptions = options;+ if (data.slot) {+ (clone.data || (clone.data = {})).slot = data.slot;+ }+ return clone+}++function mergeProps (to, from) {+ for (var key in from) {+ to[camelize(key)] = from[key];+ }+}++/* */+++++// Register the component hook to weex native render engine.+// The hook will be triggered by native, not javascript.+++// Updates the state of the component to weex native render engine.++/* */++// https://github.com/Hanks10100/weex-native-directive/tree/master/component++// listening on native callback++/* */++/* */++// inline hooks to be invoked on component VNodes during patch+var componentVNodeHooks = {+ init: function init (+ vnode,+ hydrating,+ parentElm,+ refElm+ ) {+ if (+ vnode.componentInstance &&+ !vnode.componentInstance._isDestroyed &&+ vnode.data.keepAlive+ ) {+ // kept-alive components, treat as a patch+ var mountedNode = vnode; // work around flow+ componentVNodeHooks.prepatch(mountedNode, mountedNode);+ } else {+ var child = vnode.componentInstance = createComponentInstanceForVnode(+ vnode,+ activeInstance,+ parentElm,+ refElm+ );+ child.$mount(hydrating ? vnode.elm : undefined, hydrating);+ }+ },++ prepatch: function prepatch (oldVnode, vnode) {+ var options = vnode.componentOptions;+ var child = vnode.componentInstance = oldVnode.componentInstance;+ updateChildComponent(+ child,+ options.propsData, // updated props+ options.listeners, // updated listeners+ vnode, // new parent vnode+ options.children // new children+ );+ },++ insert: function insert (vnode) {+ var context = vnode.context;+ var componentInstance = vnode.componentInstance;+ if (!componentInstance._isMounted) {+ componentInstance._isMounted = true;+ callHook(componentInstance, 'mounted');+ }+ if (vnode.data.keepAlive) {+ if (context._isMounted) {+ // vue-router#1212+ // During updates, a kept-alive component's child components may+ // change, so directly walking the tree here may call activated hooks+ // on incorrect children. Instead we push them into a queue which will+ // be processed after the whole patch process ended.+ queueActivatedComponent(componentInstance);+ } else {+ activateChildComponent(componentInstance, true /* direct */);+ }+ }+ },++ destroy: function destroy (vnode) {+ var componentInstance = vnode.componentInstance;+ if (!componentInstance._isDestroyed) {+ if (!vnode.data.keepAlive) {+ componentInstance.$destroy();+ } else {+ deactivateChildComponent(componentInstance, true /* direct */);+ }+ }+ }+};++var hooksToMerge = Object.keys(componentVNodeHooks);++function createComponent (+ Ctor,+ data,+ context,+ children,+ tag+) {+ if (isUndef(Ctor)) {+ return+ }++ var baseCtor = context.$options._base;++ // plain options object: turn it into a constructor+ if (isObject(Ctor)) {+ Ctor = baseCtor.extend(Ctor);+ }++ // if at this stage it's not a constructor or an async component factory,+ // reject.+ if (typeof Ctor !== 'function') {+ {+ warn(("Invalid Component definition: " + (String(Ctor))), context);+ }+ return+ }++ // async component+ var asyncFactory;+ if (isUndef(Ctor.cid)) {+ asyncFactory = Ctor;+ Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);+ if (Ctor === undefined) {+ // return a placeholder node for async component, which is rendered+ // as a comment node but preserves all the raw information for the node.+ // the information will be used for async server-rendering and hydration.+ return createAsyncPlaceholder(+ asyncFactory,+ data,+ context,+ children,+ tag+ )+ }+ }++ data = data || {};++ // resolve constructor options in case global mixins are applied after+ // component constructor creation+ resolveConstructorOptions(Ctor);++ // transform component v-model data into props & events+ if (isDef(data.model)) {+ transformModel(Ctor.options, data);+ }++ // extract props+ var propsData = extractPropsFromVNodeData(data, Ctor, tag);++ // functional component+ if (isTrue(Ctor.options.functional)) {+ return createFunctionalComponent(Ctor, propsData, data, context, children)+ }++ // extract listeners, since these needs to be treated as+ // child component listeners instead of DOM listeners+ var listeners = data.on;+ // replace with listeners with .native modifier+ // so it gets processed during parent component patch.+ data.on = data.nativeOn;++ if (isTrue(Ctor.options.abstract)) {+ // abstract components do not keep anything+ // other than props & listeners & slot++ // work around flow+ var slot = data.slot;+ data = {};+ if (slot) {+ data.slot = slot;+ }+ }++ // install component management hooks onto the placeholder node+ installComponentHooks(data);++ // return a placeholder vnode+ var name = Ctor.options.name || tag;+ var vnode = new VNode(+ ("vue-component-" + (Ctor.cid) + (name ? ("-" + name) : '')),+ data, undefined, undefined, undefined, context,+ { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },+ asyncFactory+ );++ // Weex specific: invoke recycle-list optimized @render function for+ // extracting cell-slot template.+ // https://github.com/Hanks10100/weex-native-directive/tree/master/component+ /* istanbul ignore if */+ return vnode+}++function createComponentInstanceForVnode (+ vnode, // we know it's MountedComponentVNode but flow doesn't+ parent, // activeInstance in lifecycle state+ parentElm,+ refElm+) {+ var options = {+ _isComponent: true,+ parent: parent,+ _parentVnode: vnode,+ _parentElm: parentElm || null,+ _refElm: refElm || null+ };+ // check inline-template render functions+ var inlineTemplate = vnode.data.inlineTemplate;+ if (isDef(inlineTemplate)) {+ options.render = inlineTemplate.render;+ options.staticRenderFns = inlineTemplate.staticRenderFns;+ }+ return new vnode.componentOptions.Ctor(options)+}++function installComponentHooks (data) {+ var hooks = data.hook || (data.hook = {});+ for (var i = 0; i < hooksToMerge.length; i++) {+ var key = hooksToMerge[i];+ hooks[key] = componentVNodeHooks[key];+ }+}++// transform component v-model info (value and callback) into+// prop and event handler respectively.+function transformModel (options, data) {+ var prop = (options.model && options.model.prop) || 'value';+ var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;+ var on = data.on || (data.on = {});+ if (isDef(on[event])) {+ on[event] = [data.model.callback].concat(on[event]);+ } else {+ on[event] = data.model.callback;+ }+}++/* */++var SIMPLE_NORMALIZE = 1;+var ALWAYS_NORMALIZE = 2;++// wrapper function for providing a more flexible interface+// without getting yelled at by flow+function createElement (+ context,+ tag,+ data,+ children,+ normalizationType,+ alwaysNormalize+) {+ if (Array.isArray(data) || isPrimitive(data)) {+ normalizationType = children;+ children = data;+ data = undefined;+ }+ if (isTrue(alwaysNormalize)) {+ normalizationType = ALWAYS_NORMALIZE;+ }+ return _createElement(context, tag, data, children, normalizationType)+}++function _createElement (+ context,+ tag,+ data,+ children,+ normalizationType+) {+ if (isDef(data) && isDef((data).__ob__)) {+ "development" !== 'production' && warn(+ "Avoid using observed data object as vnode data: " + (JSON.stringify(data)) + "\n" ++ 'Always create fresh vnode data objects in each render!',+ context+ );+ return createEmptyVNode()+ }+ // object syntax in v-bind+ if (isDef(data) && isDef(data.is)) {+ tag = data.is;+ }+ if (!tag) {+ // in case of component :is set to falsy value+ return createEmptyVNode()+ }+ // warn against non-primitive key+ if ("development" !== 'production' &&+ isDef(data) && isDef(data.key) && !isPrimitive(data.key)+ ) {+ {+ warn(+ 'Avoid using non-primitive value as key, ' ++ 'use string/number value instead.',+ context+ );+ }+ }+ // support single function children as default scoped slot+ if (Array.isArray(children) &&+ typeof children[0] === 'function'+ ) {+ data = data || {};+ data.scopedSlots = { default: children[0] };+ children.length = 0;+ }+ if (normalizationType === ALWAYS_NORMALIZE) {+ children = normalizeChildren(children);+ } else if (normalizationType === SIMPLE_NORMALIZE) {+ children = simpleNormalizeChildren(children);+ }+ var vnode, ns;+ if (typeof tag === 'string') {+ var Ctor;+ ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);+ if (config.isReservedTag(tag)) {+ // platform built-in elements+ vnode = new VNode(+ config.parsePlatformTagName(tag), data, children,+ undefined, undefined, context+ );+ } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {+ // component+ vnode = createComponent(Ctor, data, context, children, tag);+ } else {+ // unknown or unlisted namespaced elements+ // check at runtime because it may get assigned a namespace when its+ // parent normalizes children+ vnode = new VNode(+ tag, data, children,+ undefined, undefined, context+ );+ }+ } else {+ // direct component options / constructor+ vnode = createComponent(tag, data, context, children);+ }+ if (Array.isArray(vnode)) {+ return vnode+ } else if (isDef(vnode)) {+ if (isDef(ns)) { applyNS(vnode, ns); }+ if (isDef(data)) { registerDeepBindings(data); }+ return vnode+ } else {+ return createEmptyVNode()+ }+}++function applyNS (vnode, ns, force) {+ vnode.ns = ns;+ if (vnode.tag === 'foreignObject') {+ // use default namespace inside foreignObject+ ns = undefined;+ force = true;+ }+ if (isDef(vnode.children)) {+ for (var i = 0, l = vnode.children.length; i < l; i++) {+ var child = vnode.children[i];+ if (isDef(child.tag) && (+ isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {+ applyNS(child, ns, force);+ }+ }+ }+}++// ref #5318+// necessary to ensure parent re-render when deep bindings like :style and+// :class are used on slot nodes+function registerDeepBindings (data) {+ if (isObject(data.style)) {+ traverse(data.style);+ }+ if (isObject(data.class)) {+ traverse(data.class);+ }+}++/* */++function initRender (vm) {+ vm._vnode = null; // the root of the child tree+ vm._staticTrees = null; // v-once cached trees+ var options = vm.$options;+ var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree+ var renderContext = parentVnode && parentVnode.context;+ vm.$slots = resolveSlots(options._renderChildren, renderContext);+ vm.$scopedSlots = emptyObject;+ // bind the createElement fn to this instance+ // so that we get proper render context inside it.+ // args order: tag, data, children, normalizationType, alwaysNormalize+ // internal version is used by render functions compiled from templates+ vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };+ // normalization is always applied for the public version, used in+ // user-written render functions.+ vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };++ // $attrs & $listeners are exposed for easier HOC creation.+ // they need to be reactive so that HOCs using them are always updated+ var parentData = parentVnode && parentVnode.data;++ /* istanbul ignore else */+ {+ defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {+ !isUpdatingChildComponent && warn("$attrs is readonly.", vm);+ }, true);+ defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {+ !isUpdatingChildComponent && warn("$listeners is readonly.", vm);+ }, true);+ }+}++function renderMixin (Vue) {+ // install runtime convenience helpers+ installRenderHelpers(Vue.prototype);++ Vue.prototype.$nextTick = function (fn) {+ return nextTick(fn, this)+ };++ Vue.prototype._render = function () {+ var vm = this;+ var ref = vm.$options;+ var render = ref.render;+ var _parentVnode = ref._parentVnode;++ // reset _rendered flag on slots for duplicate slot check+ {+ for (var key in vm.$slots) {+ // $flow-disable-line+ vm.$slots[key]._rendered = false;+ }+ }++ if (_parentVnode) {+ vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;+ }++ // set parent vnode. this allows render functions to have access+ // to the data on the placeholder node.+ vm.$vnode = _parentVnode;+ // render self+ var vnode;+ try {+ vnode = render.call(vm._renderProxy, vm.$createElement);+ } catch (e) {+ handleError(e, vm, "render");+ // return error render result,+ // or previous vnode to prevent render error causing blank component+ /* istanbul ignore else */+ {+ if (vm.$options.renderError) {+ try {+ vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);+ } catch (e) {+ handleError(e, vm, "renderError");+ vnode = vm._vnode;+ }+ } else {+ vnode = vm._vnode;+ }+ }+ }+ // return empty vnode in case the render function errored out+ if (!(vnode instanceof VNode)) {+ if ("development" !== 'production' && Array.isArray(vnode)) {+ warn(+ 'Multiple root nodes returned from render function. Render function ' ++ 'should return a single root node.',+ vm+ );+ }+ vnode = createEmptyVNode();+ }+ // set parent+ vnode.parent = _parentVnode;+ return vnode+ };+}++/* */++var uid$3 = 0;++function initMixin (Vue) {+ Vue.prototype._init = function (options) {+ var vm = this;+ // a uid+ vm._uid = uid$3++;++ var startTag, endTag;+ /* istanbul ignore if */+ if ("development" !== 'production' && config.performance && mark) {+ startTag = "vue-perf-start:" + (vm._uid);+ endTag = "vue-perf-end:" + (vm._uid);+ mark(startTag);+ }++ // a flag to avoid this being observed+ vm._isVue = true;+ // merge options+ if (options && options._isComponent) {+ // optimize internal component instantiation+ // since dynamic options merging is pretty slow, and none of the+ // internal component options needs special treatment.+ initInternalComponent(vm, options);+ } else {+ vm.$options = mergeOptions(+ resolveConstructorOptions(vm.constructor),+ options || {},+ vm+ );+ }+ /* istanbul ignore else */+ {+ initProxy(vm);+ }+ // expose real self+ vm._self = vm;+ initLifecycle(vm);+ initEvents(vm);+ initRender(vm);+ callHook(vm, 'beforeCreate');+ initInjections(vm); // resolve injections before data/props+ initState(vm);+ initProvide(vm); // resolve provide after data/props+ callHook(vm, 'created');++ /* istanbul ignore if */+ if ("development" !== 'production' && config.performance && mark) {+ vm._name = formatComponentName(vm, false);+ mark(endTag);+ measure(("vue " + (vm._name) + " init"), startTag, endTag);+ }++ if (vm.$options.el) {+ vm.$mount(vm.$options.el);+ }+ };+}++function initInternalComponent (vm, options) {+ var opts = vm.$options = Object.create(vm.constructor.options);+ // doing this because it's faster than dynamic enumeration.+ var parentVnode = options._parentVnode;+ opts.parent = options.parent;+ opts._parentVnode = parentVnode;+ opts._parentElm = options._parentElm;+ opts._refElm = options._refElm;++ var vnodeComponentOptions = parentVnode.componentOptions;+ opts.propsData = vnodeComponentOptions.propsData;+ opts._parentListeners = vnodeComponentOptions.listeners;+ opts._renderChildren = vnodeComponentOptions.children;+ opts._componentTag = vnodeComponentOptions.tag;++ if (options.render) {+ opts.render = options.render;+ opts.staticRenderFns = options.staticRenderFns;+ }+}++function resolveConstructorOptions (Ctor) {+ var options = Ctor.options;+ if (Ctor.super) {+ var superOptions = resolveConstructorOptions(Ctor.super);+ var cachedSuperOptions = Ctor.superOptions;+ if (superOptions !== cachedSuperOptions) {+ // super option changed,+ // need to resolve new options.+ Ctor.superOptions = superOptions;+ // check if there are any late-modified/attached options (#4976)+ var modifiedOptions = resolveModifiedOptions(Ctor);+ // update base extend options+ if (modifiedOptions) {+ extend(Ctor.extendOptions, modifiedOptions);+ }+ options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);+ if (options.name) {+ options.components[options.name] = Ctor;+ }+ }+ }+ return options+}++function resolveModifiedOptions (Ctor) {+ var modified;+ var latest = Ctor.options;+ var extended = Ctor.extendOptions;+ var sealed = Ctor.sealedOptions;+ for (var key in latest) {+ if (latest[key] !== sealed[key]) {+ if (!modified) { modified = {}; }+ modified[key] = dedupe(latest[key], extended[key], sealed[key]);+ }+ }+ return modified+}++function dedupe (latest, extended, sealed) {+ // compare latest and sealed to ensure lifecycle hooks won't be duplicated+ // between merges+ if (Array.isArray(latest)) {+ var res = [];+ sealed = Array.isArray(sealed) ? sealed : [sealed];+ extended = Array.isArray(extended) ? extended : [extended];+ for (var i = 0; i < latest.length; i++) {+ // push original options and not sealed options to exclude duplicated options+ if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {+ res.push(latest[i]);+ }+ }+ return res+ } else {+ return latest+ }+}++function Vue (options) {+ if ("development" !== 'production' &&+ !(this instanceof Vue)+ ) {+ warn('Vue is a constructor and should be called with the `new` keyword');+ }+ this._init(options);+}++initMixin(Vue);+stateMixin(Vue);+eventsMixin(Vue);+lifecycleMixin(Vue);+renderMixin(Vue);++/* */++function initUse (Vue) {+ Vue.use = function (plugin) {+ var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));+ if (installedPlugins.indexOf(plugin) > -1) {+ return this+ }++ // additional parameters+ var args = toArray(arguments, 1);+ args.unshift(this);+ if (typeof plugin.install === 'function') {+ plugin.install.apply(plugin, args);+ } else if (typeof plugin === 'function') {+ plugin.apply(null, args);+ }+ installedPlugins.push(plugin);+ return this+ };+}++/* */++function initMixin$1 (Vue) {+ Vue.mixin = function (mixin) {+ this.options = mergeOptions(this.options, mixin);+ return this+ };+}++/* */++function initExtend (Vue) {+ /**+ * Each instance constructor, including Vue, has a unique+ * cid. This enables us to create wrapped "child+ * constructors" for prototypal inheritance and cache them.+ */+ Vue.cid = 0;+ var cid = 1;++ /**+ * Class inheritance+ */+ Vue.extend = function (extendOptions) {+ extendOptions = extendOptions || {};+ var Super = this;+ var SuperId = Super.cid;+ var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});+ if (cachedCtors[SuperId]) {+ return cachedCtors[SuperId]+ }++ var name = extendOptions.name || Super.options.name;+ if ("development" !== 'production' && name) {+ validateComponentName(name);+ }++ var Sub = function VueComponent (options) {+ this._init(options);+ };+ Sub.prototype = Object.create(Super.prototype);+ Sub.prototype.constructor = Sub;+ Sub.cid = cid++;+ Sub.options = mergeOptions(+ Super.options,+ extendOptions+ );+ Sub['super'] = Super;++ // For props and computed properties, we define the proxy getters on+ // the Vue instances at extension time, on the extended prototype. This+ // avoids Object.defineProperty calls for each instance created.+ if (Sub.options.props) {+ initProps$1(Sub);+ }+ if (Sub.options.computed) {+ initComputed$1(Sub);+ }++ // allow further extension/mixin/plugin usage+ Sub.extend = Super.extend;+ Sub.mixin = Super.mixin;+ Sub.use = Super.use;++ // create asset registers, so extended classes+ // can have their private assets too.+ ASSET_TYPES.forEach(function (type) {+ Sub[type] = Super[type];+ });+ // enable recursive self-lookup+ if (name) {+ Sub.options.components[name] = Sub;+ }++ // keep a reference to the super options at extension time.+ // later at instantiation we can check if Super's options have+ // been updated.+ Sub.superOptions = Super.options;+ Sub.extendOptions = extendOptions;+ Sub.sealedOptions = extend({}, Sub.options);++ // cache constructor+ cachedCtors[SuperId] = Sub;+ return Sub+ };+}++function initProps$1 (Comp) {+ var props = Comp.options.props;+ for (var key in props) {+ proxy(Comp.prototype, "_props", key);+ }+}++function initComputed$1 (Comp) {+ var computed = Comp.options.computed;+ for (var key in computed) {+ defineComputed(Comp.prototype, key, computed[key]);+ }+}++/* */++function initAssetRegisters (Vue) {+ /**+ * Create asset registration methods.+ */+ ASSET_TYPES.forEach(function (type) {+ Vue[type] = function (+ id,+ definition+ ) {+ if (!definition) {+ return this.options[type + 's'][id]+ } else {+ /* istanbul ignore if */+ if ("development" !== 'production' && type === 'component') {+ validateComponentName(id);+ }+ if (type === 'component' && isPlainObject(definition)) {+ definition.name = definition.name || id;+ definition = this.options._base.extend(definition);+ }+ if (type === 'directive' && typeof definition === 'function') {+ definition = { bind: definition, update: definition };+ }+ this.options[type + 's'][id] = definition;+ return definition+ }+ };+ });+}++/* */++function getComponentName (opts) {+ return opts && (opts.Ctor.options.name || opts.tag)+}++function matches (pattern, name) {+ if (Array.isArray(pattern)) {+ return pattern.indexOf(name) > -1+ } else if (typeof pattern === 'string') {+ return pattern.split(',').indexOf(name) > -1+ } else if (isRegExp(pattern)) {+ return pattern.test(name)+ }+ /* istanbul ignore next */+ return false+}++function pruneCache (keepAliveInstance, filter) {+ var cache = keepAliveInstance.cache;+ var keys = keepAliveInstance.keys;+ var _vnode = keepAliveInstance._vnode;+ for (var key in cache) {+ var cachedNode = cache[key];+ if (cachedNode) {+ var name = getComponentName(cachedNode.componentOptions);+ if (name && !filter(name)) {+ pruneCacheEntry(cache, key, keys, _vnode);+ }+ }+ }+}++function pruneCacheEntry (+ cache,+ key,+ keys,+ current+) {+ var cached$$1 = cache[key];+ if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {+ cached$$1.componentInstance.$destroy();+ }+ cache[key] = null;+ remove(keys, key);+}++var patternTypes = [String, RegExp, Array];++var KeepAlive = {+ name: 'keep-alive',+ abstract: true,++ props: {+ include: patternTypes,+ exclude: patternTypes,+ max: [String, Number]+ },++ created: function created () {+ this.cache = Object.create(null);+ this.keys = [];+ },++ destroyed: function destroyed () {+ var this$1 = this;++ for (var key in this$1.cache) {+ pruneCacheEntry(this$1.cache, key, this$1.keys);+ }+ },++ mounted: function mounted () {+ var this$1 = this;++ this.$watch('include', function (val) {+ pruneCache(this$1, function (name) { return matches(val, name); });+ });+ this.$watch('exclude', function (val) {+ pruneCache(this$1, function (name) { return !matches(val, name); });+ });+ },++ render: function render () {+ var slot = this.$slots.default;+ var vnode = getFirstComponentChild(slot);+ var componentOptions = vnode && vnode.componentOptions;+ if (componentOptions) {+ // check pattern+ var name = getComponentName(componentOptions);+ var ref = this;+ var include = ref.include;+ var exclude = ref.exclude;+ if (+ // not included+ (include && (!name || !matches(include, name))) ||+ // excluded+ (exclude && name && matches(exclude, name))+ ) {+ return vnode+ }++ var ref$1 = this;+ var cache = ref$1.cache;+ var keys = ref$1.keys;+ var key = vnode.key == null+ // same constructor may get registered as different local components+ // so cid alone is not enough (#3269)+ ? componentOptions.Ctor.cid + (componentOptions.tag ? ("::" + (componentOptions.tag)) : '')+ : vnode.key;+ if (cache[key]) {+ vnode.componentInstance = cache[key].componentInstance;+ // make current key freshest+ remove(keys, key);+ keys.push(key);+ } else {+ cache[key] = vnode;+ keys.push(key);+ // prune oldest entry+ if (this.max && keys.length > parseInt(this.max)) {+ pruneCacheEntry(cache, keys[0], keys, this._vnode);+ }+ }++ vnode.data.keepAlive = true;+ }+ return vnode || (slot && slot[0])+ }+}++var builtInComponents = {+ KeepAlive: KeepAlive+}++/* */++function initGlobalAPI (Vue) {+ // config+ var configDef = {};+ configDef.get = function () { return config; };+ {+ configDef.set = function () {+ warn(+ 'Do not replace the Vue.config object, set individual fields instead.'+ );+ };+ }+ Object.defineProperty(Vue, 'config', configDef);++ // exposed util methods.+ // NOTE: these are not considered part of the public API - avoid relying on+ // them unless you are aware of the risk.+ Vue.util = {+ warn: warn,+ extend: extend,+ mergeOptions: mergeOptions,+ defineReactive: defineReactive+ };++ Vue.set = set;+ Vue.delete = del;+ Vue.nextTick = nextTick;++ Vue.options = Object.create(null);+ ASSET_TYPES.forEach(function (type) {+ Vue.options[type + 's'] = Object.create(null);+ });++ // this is used to identify the "base" constructor to extend all plain-object+ // components with in Weex's multi-instance scenarios.+ Vue.options._base = Vue;++ extend(Vue.options.components, builtInComponents);++ initUse(Vue);+ initMixin$1(Vue);+ initExtend(Vue);+ initAssetRegisters(Vue);+}++initGlobalAPI(Vue);++Object.defineProperty(Vue.prototype, '$isServer', {+ get: isServerRendering+});++Object.defineProperty(Vue.prototype, '$ssrContext', {+ get: function get () {+ /* istanbul ignore next */+ return this.$vnode && this.$vnode.ssrContext+ }+});++// expose FunctionalRenderContext for ssr runtime helper installation+Object.defineProperty(Vue, 'FunctionalRenderContext', {+ value: FunctionalRenderContext+});++Vue.version = '2.5.17';++/* */++// these are reserved for web because they are directly compiled away+// during template compilation+var isReservedAttr = makeMap('style,class');++// attributes that should be using props for binding+var acceptValue = makeMap('input,textarea,option,select,progress');+var mustUseProp = function (tag, type, attr) {+ return (+ (attr === 'value' && acceptValue(tag)) && type !== 'button' ||+ (attr === 'selected' && tag === 'option') ||+ (attr === 'checked' && tag === 'input') ||+ (attr === 'muted' && tag === 'video')+ )+};++var isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');++var isBooleanAttr = makeMap(+ 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' ++ 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' ++ 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' ++ 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' ++ 'required,reversed,scoped,seamless,selected,sortable,translate,' ++ 'truespeed,typemustmatch,visible'+);++var xlinkNS = 'http://www.w3.org/1999/xlink';++var isXlink = function (name) {+ return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'+};++var getXlinkProp = function (name) {+ return isXlink(name) ? name.slice(6, name.length) : ''+};++var isFalsyAttrValue = function (val) {+ return val == null || val === false+};++/* */++function genClassForVnode (vnode) {+ var data = vnode.data;+ var parentNode = vnode;+ var childNode = vnode;+ while (isDef(childNode.componentInstance)) {+ childNode = childNode.componentInstance._vnode;+ if (childNode && childNode.data) {+ data = mergeClassData(childNode.data, data);+ }+ }+ while (isDef(parentNode = parentNode.parent)) {+ if (parentNode && parentNode.data) {+ data = mergeClassData(data, parentNode.data);+ }+ }+ return renderClass(data.staticClass, data.class)+}++function mergeClassData (child, parent) {+ return {+ staticClass: concat(child.staticClass, parent.staticClass),+ class: isDef(child.class)+ ? [child.class, parent.class]+ : parent.class+ }+}++function renderClass (+ staticClass,+ dynamicClass+) {+ if (isDef(staticClass) || isDef(dynamicClass)) {+ return concat(staticClass, stringifyClass(dynamicClass))+ }+ /* istanbul ignore next */+ return ''+}++function concat (a, b) {+ return a ? b ? (a + ' ' + b) : a : (b || '')+}++function stringifyClass (value) {+ if (Array.isArray(value)) {+ return stringifyArray(value)+ }+ if (isObject(value)) {+ return stringifyObject(value)+ }+ if (typeof value === 'string') {+ return value+ }+ /* istanbul ignore next */+ return ''+}++function stringifyArray (value) {+ var res = '';+ var stringified;+ for (var i = 0, l = value.length; i < l; i++) {+ if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {+ if (res) { res += ' '; }+ res += stringified;+ }+ }+ return res+}++function stringifyObject (value) {+ var res = '';+ for (var key in value) {+ if (value[key]) {+ if (res) { res += ' '; }+ res += key;+ }+ }+ return res+}++/* */++var namespaceMap = {+ svg: 'http://www.w3.org/2000/svg',+ math: 'http://www.w3.org/1998/Math/MathML'+};++var isHTMLTag = makeMap(+ 'html,body,base,head,link,meta,style,title,' ++ 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' ++ 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' ++ 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' ++ 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' ++ 'embed,object,param,source,canvas,script,noscript,del,ins,' ++ 'caption,col,colgroup,table,thead,tbody,td,th,tr,' ++ 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' ++ 'output,progress,select,textarea,' ++ 'details,dialog,menu,menuitem,summary,' ++ 'content,element,shadow,template,blockquote,iframe,tfoot'+);++// this map is intentionally selective, only covering SVG elements that may+// contain child elements.+var isSVG = makeMap(+ 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' ++ 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' ++ 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',+ true+);++var isPreTag = function (tag) { return tag === 'pre'; };++var isReservedTag = function (tag) {+ return isHTMLTag(tag) || isSVG(tag)+};++function getTagNamespace (tag) {+ if (isSVG(tag)) {+ return 'svg'+ }+ // basic support for MathML+ // note it doesn't support other MathML elements being component roots+ if (tag === 'math') {+ return 'math'+ }+}++var unknownElementCache = Object.create(null);+function isUnknownElement (tag) {+ /* istanbul ignore if */+ if (!inBrowser) {+ return true+ }+ if (isReservedTag(tag)) {+ return false+ }+ tag = tag.toLowerCase();+ /* istanbul ignore if */+ if (unknownElementCache[tag] != null) {+ return unknownElementCache[tag]+ }+ var el = document.createElement(tag);+ if (tag.indexOf('-') > -1) {+ // http://stackoverflow.com/a/28210364/1070244+ return (unknownElementCache[tag] = (+ el.constructor === window.HTMLUnknownElement ||+ el.constructor === window.HTMLElement+ ))+ } else {+ return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))+ }+}++var isTextInputType = makeMap('text,number,password,search,email,tel,url');++/* */++/**+ * Query an element selector if it's not an element already.+ */+function query (el) {+ if (typeof el === 'string') {+ var selected = document.querySelector(el);+ if (!selected) {+ "development" !== 'production' && warn(+ 'Cannot find element: ' + el+ );+ return document.createElement('div')+ }+ return selected+ } else {+ return el+ }+}++/* */++function createElement$1 (tagName, vnode) {+ var elm = document.createElement(tagName);+ if (tagName !== 'select') {+ return elm+ }+ // false or null will remove the attribute but undefined will not+ if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {+ elm.setAttribute('multiple', 'multiple');+ }+ return elm+}++function createElementNS (namespace, tagName) {+ return document.createElementNS(namespaceMap[namespace], tagName)+}++function createTextNode (text) {+ return document.createTextNode(text)+}++function createComment (text) {+ return document.createComment(text)+}++function insertBefore (parentNode, newNode, referenceNode) {+ parentNode.insertBefore(newNode, referenceNode);+}++function removeChild (node, child) {+ node.removeChild(child);+}++function appendChild (node, child) {+ node.appendChild(child);+}++function parentNode (node) {+ return node.parentNode+}++function nextSibling (node) {+ return node.nextSibling+}++function tagName (node) {+ return node.tagName+}++function setTextContent (node, text) {+ node.textContent = text;+}++function setStyleScope (node, scopeId) {+ node.setAttribute(scopeId, '');+}+++var nodeOps = Object.freeze({+ createElement: createElement$1,+ createElementNS: createElementNS,+ createTextNode: createTextNode,+ createComment: createComment,+ insertBefore: insertBefore,+ removeChild: removeChild,+ appendChild: appendChild,+ parentNode: parentNode,+ nextSibling: nextSibling,+ tagName: tagName,+ setTextContent: setTextContent,+ setStyleScope: setStyleScope+});++/* */++var ref = {+ create: function create (_, vnode) {+ registerRef(vnode);+ },+ update: function update (oldVnode, vnode) {+ if (oldVnode.data.ref !== vnode.data.ref) {+ registerRef(oldVnode, true);+ registerRef(vnode);+ }+ },+ destroy: function destroy (vnode) {+ registerRef(vnode, true);+ }+}++function registerRef (vnode, isRemoval) {+ var key = vnode.data.ref;+ if (!isDef(key)) { return }++ var vm = vnode.context;+ var ref = vnode.componentInstance || vnode.elm;+ var refs = vm.$refs;+ if (isRemoval) {+ if (Array.isArray(refs[key])) {+ remove(refs[key], ref);+ } else if (refs[key] === ref) {+ refs[key] = undefined;+ }+ } else {+ if (vnode.data.refInFor) {+ if (!Array.isArray(refs[key])) {+ refs[key] = [ref];+ } else if (refs[key].indexOf(ref) < 0) {+ // $flow-disable-line+ refs[key].push(ref);+ }+ } else {+ refs[key] = ref;+ }+ }+}++/**+ * Virtual DOM patching algorithm based on Snabbdom by+ * Simon Friis Vindum (@paldepind)+ * Licensed under the MIT License+ * https://github.com/paldepind/snabbdom/blob/master/LICENSE+ *+ * modified by Evan You (@yyx990803)+ *+ * Not type-checking this because this file is perf-critical and the cost+ * of making flow understand it is not worth it.+ */++var emptyNode = new VNode('', {}, []);++var hooks = ['create', 'activate', 'update', 'remove', 'destroy'];++function sameVnode (a, b) {+ return (+ a.key === b.key && (+ (+ a.tag === b.tag &&+ a.isComment === b.isComment &&+ isDef(a.data) === isDef(b.data) &&+ sameInputType(a, b)+ ) || (+ isTrue(a.isAsyncPlaceholder) &&+ a.asyncFactory === b.asyncFactory &&+ isUndef(b.asyncFactory.error)+ )+ )+ )+}++function sameInputType (a, b) {+ if (a.tag !== 'input') { return true }+ var i;+ var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;+ var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;+ return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)+}++function createKeyToOldIdx (children, beginIdx, endIdx) {+ var i, key;+ var map = {};+ for (i = beginIdx; i <= endIdx; ++i) {+ key = children[i].key;+ if (isDef(key)) { map[key] = i; }+ }+ return map+}++function createPatchFunction (backend) {+ var i, j;+ var cbs = {};++ var modules = backend.modules;+ var nodeOps = backend.nodeOps;++ for (i = 0; i < hooks.length; ++i) {+ cbs[hooks[i]] = [];+ for (j = 0; j < modules.length; ++j) {+ if (isDef(modules[j][hooks[i]])) {+ cbs[hooks[i]].push(modules[j][hooks[i]]);+ }+ }+ }++ function emptyNodeAt (elm) {+ return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)+ }++ function createRmCb (childElm, listeners) {+ function remove () {+ if (--remove.listeners === 0) {+ removeNode(childElm);+ }+ }+ remove.listeners = listeners;+ return remove+ }++ function removeNode (el) {+ var parent = nodeOps.parentNode(el);+ // element may have already been removed due to v-html / v-text+ if (isDef(parent)) {+ nodeOps.removeChild(parent, el);+ }+ }++ function isUnknownElement$$1 (vnode, inVPre) {+ return (+ !inVPre &&+ !vnode.ns &&+ !(+ config.ignoredElements.length &&+ config.ignoredElements.some(function (ignore) {+ return isRegExp(ignore)+ ? ignore.test(vnode.tag)+ : ignore === vnode.tag+ })+ ) &&+ config.isUnknownElement(vnode.tag)+ )+ }++ var creatingElmInVPre = 0;++ function createElm (+ vnode,+ insertedVnodeQueue,+ parentElm,+ refElm,+ nested,+ ownerArray,+ index+ ) {+ if (isDef(vnode.elm) && isDef(ownerArray)) {+ // This vnode was used in a previous render!+ // now it's used as a new node, overwriting its elm would cause+ // potential patch errors down the road when it's used as an insertion+ // reference node. Instead, we clone the node on-demand before creating+ // associated DOM element for it.+ vnode = ownerArray[index] = cloneVNode(vnode);+ }++ vnode.isRootInsert = !nested; // for transition enter check+ if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {+ return+ }++ var data = vnode.data;+ var children = vnode.children;+ var tag = vnode.tag;+ if (isDef(tag)) {+ {+ if (data && data.pre) {+ creatingElmInVPre++;+ }+ if (isUnknownElement$$1(vnode, creatingElmInVPre)) {+ warn(+ 'Unknown custom element: <' + tag + '> - did you ' ++ 'register the component correctly? For recursive components, ' ++ 'make sure to provide the "name" option.',+ vnode.context+ );+ }+ }++ vnode.elm = vnode.ns+ ? nodeOps.createElementNS(vnode.ns, tag)+ : nodeOps.createElement(tag, vnode);+ setScope(vnode);++ /* istanbul ignore if */+ {+ createChildren(vnode, children, insertedVnodeQueue);+ if (isDef(data)) {+ invokeCreateHooks(vnode, insertedVnodeQueue);+ }+ insert(parentElm, vnode.elm, refElm);+ }++ if ("development" !== 'production' && data && data.pre) {+ creatingElmInVPre--;+ }+ } else if (isTrue(vnode.isComment)) {+ vnode.elm = nodeOps.createComment(vnode.text);+ insert(parentElm, vnode.elm, refElm);+ } else {+ vnode.elm = nodeOps.createTextNode(vnode.text);+ insert(parentElm, vnode.elm, refElm);+ }+ }++ function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {+ var i = vnode.data;+ if (isDef(i)) {+ var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;+ if (isDef(i = i.hook) && isDef(i = i.init)) {+ i(vnode, false /* hydrating */, parentElm, refElm);+ }+ // after calling the init hook, if the vnode is a child component+ // it should've created a child instance and mounted it. the child+ // component also has set the placeholder vnode's elm.+ // in that case we can just return the element and be done.+ if (isDef(vnode.componentInstance)) {+ initComponent(vnode, insertedVnodeQueue);+ if (isTrue(isReactivated)) {+ reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);+ }+ return true+ }+ }+ }++ function initComponent (vnode, insertedVnodeQueue) {+ if (isDef(vnode.data.pendingInsert)) {+ insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);+ vnode.data.pendingInsert = null;+ }+ vnode.elm = vnode.componentInstance.$el;+ if (isPatchable(vnode)) {+ invokeCreateHooks(vnode, insertedVnodeQueue);+ setScope(vnode);+ } else {+ // empty component root.+ // skip all element-related modules except for ref (#3455)+ registerRef(vnode);+ // make sure to invoke the insert hook+ insertedVnodeQueue.push(vnode);+ }+ }++ function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {+ var i;+ // hack for #4339: a reactivated component with inner transition+ // does not trigger because the inner node's created hooks are not called+ // again. It's not ideal to involve module-specific logic in here but+ // there doesn't seem to be a better way to do it.+ var innerNode = vnode;+ while (innerNode.componentInstance) {+ innerNode = innerNode.componentInstance._vnode;+ if (isDef(i = innerNode.data) && isDef(i = i.transition)) {+ for (i = 0; i < cbs.activate.length; ++i) {+ cbs.activate[i](emptyNode, innerNode);+ }+ insertedVnodeQueue.push(innerNode);+ break+ }+ }+ // unlike a newly created component,+ // a reactivated keep-alive component doesn't insert itself+ insert(parentElm, vnode.elm, refElm);+ }++ function insert (parent, elm, ref$$1) {+ if (isDef(parent)) {+ if (isDef(ref$$1)) {+ if (ref$$1.parentNode === parent) {+ nodeOps.insertBefore(parent, elm, ref$$1);+ }+ } else {+ nodeOps.appendChild(parent, elm);+ }+ }+ }++ function createChildren (vnode, children, insertedVnodeQueue) {+ if (Array.isArray(children)) {+ {+ checkDuplicateKeys(children);+ }+ for (var i = 0; i < children.length; ++i) {+ createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);+ }+ } else if (isPrimitive(vnode.text)) {+ nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));+ }+ }++ function isPatchable (vnode) {+ while (vnode.componentInstance) {+ vnode = vnode.componentInstance._vnode;+ }+ return isDef(vnode.tag)+ }++ function invokeCreateHooks (vnode, insertedVnodeQueue) {+ for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {+ cbs.create[i$1](emptyNode, vnode);+ }+ i = vnode.data.hook; // Reuse variable+ if (isDef(i)) {+ if (isDef(i.create)) { i.create(emptyNode, vnode); }+ if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }+ }+ }++ // set scope id attribute for scoped CSS.+ // this is implemented as a special case to avoid the overhead+ // of going through the normal attribute patching process.+ function setScope (vnode) {+ var i;+ if (isDef(i = vnode.fnScopeId)) {+ nodeOps.setStyleScope(vnode.elm, i);+ } else {+ var ancestor = vnode;+ while (ancestor) {+ if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {+ nodeOps.setStyleScope(vnode.elm, i);+ }+ ancestor = ancestor.parent;+ }+ }+ // for slot content they should also get the scopeId from the host instance.+ if (isDef(i = activeInstance) &&+ i !== vnode.context &&+ i !== vnode.fnContext &&+ isDef(i = i.$options._scopeId)+ ) {+ nodeOps.setStyleScope(vnode.elm, i);+ }+ }++ function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {+ for (; startIdx <= endIdx; ++startIdx) {+ createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);+ }+ }++ function invokeDestroyHook (vnode) {+ var i, j;+ var data = vnode.data;+ if (isDef(data)) {+ if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }+ for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }+ }+ if (isDef(i = vnode.children)) {+ for (j = 0; j < vnode.children.length; ++j) {+ invokeDestroyHook(vnode.children[j]);+ }+ }+ }++ function removeVnodes (parentElm, vnodes, startIdx, endIdx) {+ for (; startIdx <= endIdx; ++startIdx) {+ var ch = vnodes[startIdx];+ if (isDef(ch)) {+ if (isDef(ch.tag)) {+ removeAndInvokeRemoveHook(ch);+ invokeDestroyHook(ch);+ } else { // Text node+ removeNode(ch.elm);+ }+ }+ }+ }++ function removeAndInvokeRemoveHook (vnode, rm) {+ if (isDef(rm) || isDef(vnode.data)) {+ var i;+ var listeners = cbs.remove.length + 1;+ if (isDef(rm)) {+ // we have a recursively passed down rm callback+ // increase the listeners count+ rm.listeners += listeners;+ } else {+ // directly removing+ rm = createRmCb(vnode.elm, listeners);+ }+ // recursively invoke hooks on child component root node+ if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {+ removeAndInvokeRemoveHook(i, rm);+ }+ for (i = 0; i < cbs.remove.length; ++i) {+ cbs.remove[i](vnode, rm);+ }+ if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {+ i(vnode, rm);+ } else {+ rm();+ }+ } else {+ removeNode(vnode.elm);+ }+ }++ function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {+ var oldStartIdx = 0;+ var newStartIdx = 0;+ var oldEndIdx = oldCh.length - 1;+ var oldStartVnode = oldCh[0];+ var oldEndVnode = oldCh[oldEndIdx];+ var newEndIdx = newCh.length - 1;+ var newStartVnode = newCh[0];+ var newEndVnode = newCh[newEndIdx];+ var oldKeyToIdx, idxInOld, vnodeToMove, refElm;++ // removeOnly is a special flag used only by <transition-group>+ // to ensure removed elements stay in correct relative positions+ // during leaving transitions+ var canMove = !removeOnly;++ {+ checkDuplicateKeys(newCh);+ }++ while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {+ if (isUndef(oldStartVnode)) {+ oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left+ } else if (isUndef(oldEndVnode)) {+ oldEndVnode = oldCh[--oldEndIdx];+ } else if (sameVnode(oldStartVnode, newStartVnode)) {+ patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);+ oldStartVnode = oldCh[++oldStartIdx];+ newStartVnode = newCh[++newStartIdx];+ } else if (sameVnode(oldEndVnode, newEndVnode)) {+ patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);+ oldEndVnode = oldCh[--oldEndIdx];+ newEndVnode = newCh[--newEndIdx];+ } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right+ patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);+ canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));+ oldStartVnode = oldCh[++oldStartIdx];+ newEndVnode = newCh[--newEndIdx];+ } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left+ patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);+ canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);+ oldEndVnode = oldCh[--oldEndIdx];+ newStartVnode = newCh[++newStartIdx];+ } else {+ if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }+ idxInOld = isDef(newStartVnode.key)+ ? oldKeyToIdx[newStartVnode.key]+ : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);+ if (isUndef(idxInOld)) { // New element+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);+ } else {+ vnodeToMove = oldCh[idxInOld];+ if (sameVnode(vnodeToMove, newStartVnode)) {+ patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);+ oldCh[idxInOld] = undefined;+ canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);+ } else {+ // same key but different element. treat as new element+ createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);+ }+ }+ newStartVnode = newCh[++newStartIdx];+ }+ }+ if (oldStartIdx > oldEndIdx) {+ refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;+ addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);+ } else if (newStartIdx > newEndIdx) {+ removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);+ }+ }++ function checkDuplicateKeys (children) {+ var seenKeys = {};+ for (var i = 0; i < children.length; i++) {+ var vnode = children[i];+ var key = vnode.key;+ if (isDef(key)) {+ if (seenKeys[key]) {+ warn(+ ("Duplicate keys detected: '" + key + "'. This may cause an update error."),+ vnode.context+ );+ } else {+ seenKeys[key] = true;+ }+ }+ }+ }++ function findIdxInOld (node, oldCh, start, end) {+ for (var i = start; i < end; i++) {+ var c = oldCh[i];+ if (isDef(c) && sameVnode(node, c)) { return i }+ }+ }++ function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {+ if (oldVnode === vnode) {+ return+ }++ var elm = vnode.elm = oldVnode.elm;++ if (isTrue(oldVnode.isAsyncPlaceholder)) {+ if (isDef(vnode.asyncFactory.resolved)) {+ hydrate(oldVnode.elm, vnode, insertedVnodeQueue);+ } else {+ vnode.isAsyncPlaceholder = true;+ }+ return+ }++ // reuse element for static trees.+ // note we only do this if the vnode is cloned -+ // if the new node is not cloned it means the render functions have been+ // reset by the hot-reload-api and we need to do a proper re-render.+ if (isTrue(vnode.isStatic) &&+ isTrue(oldVnode.isStatic) &&+ vnode.key === oldVnode.key &&+ (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))+ ) {+ vnode.componentInstance = oldVnode.componentInstance;+ return+ }++ var i;+ var data = vnode.data;+ if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {+ i(oldVnode, vnode);+ }++ var oldCh = oldVnode.children;+ var ch = vnode.children;+ if (isDef(data) && isPatchable(vnode)) {+ for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }+ if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }+ }+ if (isUndef(vnode.text)) {+ if (isDef(oldCh) && isDef(ch)) {+ if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }+ } else if (isDef(ch)) {+ if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }+ addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);+ } else if (isDef(oldCh)) {+ removeVnodes(elm, oldCh, 0, oldCh.length - 1);+ } else if (isDef(oldVnode.text)) {+ nodeOps.setTextContent(elm, '');+ }+ } else if (oldVnode.text !== vnode.text) {+ nodeOps.setTextContent(elm, vnode.text);+ }+ if (isDef(data)) {+ if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }+ }+ }++ function invokeInsertHook (vnode, queue, initial) {+ // delay insert hooks for component root nodes, invoke them after the+ // element is really inserted+ if (isTrue(initial) && isDef(vnode.parent)) {+ vnode.parent.data.pendingInsert = queue;+ } else {+ for (var i = 0; i < queue.length; ++i) {+ queue[i].data.hook.insert(queue[i]);+ }+ }+ }++ var hydrationBailed = false;+ // list of modules that can skip create hook during hydration because they+ // are already rendered on the client or has no need for initialization+ // Note: style is excluded because it relies on initial clone for future+ // deep updates (#7063).+ var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');++ // Note: this is a browser-only function so we can assume elms are DOM nodes.+ function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {+ var i;+ var tag = vnode.tag;+ var data = vnode.data;+ var children = vnode.children;+ inVPre = inVPre || (data && data.pre);+ vnode.elm = elm;++ if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {+ vnode.isAsyncPlaceholder = true;+ return true+ }+ // assert node match+ {+ if (!assertNodeMatch(elm, vnode, inVPre)) {+ return false+ }+ }+ if (isDef(data)) {+ if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }+ if (isDef(i = vnode.componentInstance)) {+ // child component. it should have hydrated its own tree.+ initComponent(vnode, insertedVnodeQueue);+ return true+ }+ }+ if (isDef(tag)) {+ if (isDef(children)) {+ // empty element, allow client to pick up and populate children+ if (!elm.hasChildNodes()) {+ createChildren(vnode, children, insertedVnodeQueue);+ } else {+ // v-html and domProps: innerHTML+ if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {+ if (i !== elm.innerHTML) {+ /* istanbul ignore if */+ if ("development" !== 'production' &&+ typeof console !== 'undefined' &&+ !hydrationBailed+ ) {+ hydrationBailed = true;+ console.warn('Parent: ', elm);+ console.warn('server innerHTML: ', i);+ console.warn('client innerHTML: ', elm.innerHTML);+ }+ return false+ }+ } else {+ // iterate and compare children lists+ var childrenMatch = true;+ var childNode = elm.firstChild;+ for (var i$1 = 0; i$1 < children.length; i$1++) {+ if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {+ childrenMatch = false;+ break+ }+ childNode = childNode.nextSibling;+ }+ // if childNode is not null, it means the actual childNodes list is+ // longer than the virtual children list.+ if (!childrenMatch || childNode) {+ /* istanbul ignore if */+ if ("development" !== 'production' &&+ typeof console !== 'undefined' &&+ !hydrationBailed+ ) {+ hydrationBailed = true;+ console.warn('Parent: ', elm);+ console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);+ }+ return false+ }+ }+ }+ }+ if (isDef(data)) {+ var fullInvoke = false;+ for (var key in data) {+ if (!isRenderedModule(key)) {+ fullInvoke = true;+ invokeCreateHooks(vnode, insertedVnodeQueue);+ break+ }+ }+ if (!fullInvoke && data['class']) {+ // ensure collecting deps for deep class bindings for future updates+ traverse(data['class']);+ }+ }+ } else if (elm.data !== vnode.text) {+ elm.data = vnode.text;+ }+ return true+ }++ function assertNodeMatch (node, vnode, inVPre) {+ if (isDef(vnode.tag)) {+ return vnode.tag.indexOf('vue-component') === 0 || (+ !isUnknownElement$$1(vnode, inVPre) &&+ vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())+ )+ } else {+ return node.nodeType === (vnode.isComment ? 8 : 3)+ }+ }++ return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {+ if (isUndef(vnode)) {+ if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }+ return+ }++ var isInitialPatch = false;+ var insertedVnodeQueue = [];++ if (isUndef(oldVnode)) {+ // empty mount (likely as component), create new root element+ isInitialPatch = true;+ createElm(vnode, insertedVnodeQueue, parentElm, refElm);+ } else {+ var isRealElement = isDef(oldVnode.nodeType);+ if (!isRealElement && sameVnode(oldVnode, vnode)) {+ // patch existing root node+ patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);+ } else {+ if (isRealElement) {+ // mounting to a real element+ // check if this is server-rendered content and if we can perform+ // a successful hydration.+ if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {+ oldVnode.removeAttribute(SSR_ATTR);+ hydrating = true;+ }+ if (isTrue(hydrating)) {+ if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {+ invokeInsertHook(vnode, insertedVnodeQueue, true);+ return oldVnode+ } else {+ warn(+ 'The client-side rendered virtual DOM tree is not matching ' ++ 'server-rendered content. This is likely caused by incorrect ' ++ 'HTML markup, for example nesting block-level elements inside ' ++ '<p>, or missing <tbody>. Bailing hydration and performing ' ++ 'full client-side render.'+ );+ }+ }+ // either not server-rendered, or hydration failed.+ // create an empty node and replace it+ oldVnode = emptyNodeAt(oldVnode);+ }++ // replacing existing element+ var oldElm = oldVnode.elm;+ var parentElm$1 = nodeOps.parentNode(oldElm);++ // create new node+ createElm(+ vnode,+ insertedVnodeQueue,+ // extremely rare edge case: do not insert if old element is in a+ // leaving transition. Only happens when combining transition ++ // keep-alive + HOCs. (#4590)+ oldElm._leaveCb ? null : parentElm$1,+ nodeOps.nextSibling(oldElm)+ );++ // update parent placeholder node element, recursively+ if (isDef(vnode.parent)) {+ var ancestor = vnode.parent;+ var patchable = isPatchable(vnode);+ while (ancestor) {+ for (var i = 0; i < cbs.destroy.length; ++i) {+ cbs.destroy[i](ancestor);+ }+ ancestor.elm = vnode.elm;+ if (patchable) {+ for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {+ cbs.create[i$1](emptyNode, ancestor);+ }+ // #6513+ // invoke insert hooks that may have been merged by create hooks.+ // e.g. for directives that uses the "inserted" hook.+ var insert = ancestor.data.hook.insert;+ if (insert.merged) {+ // start at index 1 to avoid re-invoking component mounted hook+ for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {+ insert.fns[i$2]();+ }+ }+ } else {+ registerRef(ancestor);+ }+ ancestor = ancestor.parent;+ }+ }++ // destroy old node+ if (isDef(parentElm$1)) {+ removeVnodes(parentElm$1, [oldVnode], 0, 0);+ } else if (isDef(oldVnode.tag)) {+ invokeDestroyHook(oldVnode);+ }+ }+ }++ invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);+ return vnode.elm+ }+}++/* */++var directives = {+ create: updateDirectives,+ update: updateDirectives,+ destroy: function unbindDirectives (vnode) {+ updateDirectives(vnode, emptyNode);+ }+}++function updateDirectives (oldVnode, vnode) {+ if (oldVnode.data.directives || vnode.data.directives) {+ _update(oldVnode, vnode);+ }+}++function _update (oldVnode, vnode) {+ var isCreate = oldVnode === emptyNode;+ var isDestroy = vnode === emptyNode;+ var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);+ var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);++ var dirsWithInsert = [];+ var dirsWithPostpatch = [];++ var key, oldDir, dir;+ for (key in newDirs) {+ oldDir = oldDirs[key];+ dir = newDirs[key];+ if (!oldDir) {+ // new directive, bind+ callHook$1(dir, 'bind', vnode, oldVnode);+ if (dir.def && dir.def.inserted) {+ dirsWithInsert.push(dir);+ }+ } else {+ // existing directive, update+ dir.oldValue = oldDir.value;+ callHook$1(dir, 'update', vnode, oldVnode);+ if (dir.def && dir.def.componentUpdated) {+ dirsWithPostpatch.push(dir);+ }+ }+ }++ if (dirsWithInsert.length) {+ var callInsert = function () {+ for (var i = 0; i < dirsWithInsert.length; i++) {+ callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);+ }+ };+ if (isCreate) {+ mergeVNodeHook(vnode, 'insert', callInsert);+ } else {+ callInsert();+ }+ }++ if (dirsWithPostpatch.length) {+ mergeVNodeHook(vnode, 'postpatch', function () {+ for (var i = 0; i < dirsWithPostpatch.length; i++) {+ callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);+ }+ });+ }++ if (!isCreate) {+ for (key in oldDirs) {+ if (!newDirs[key]) {+ // no longer present, unbind+ callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);+ }+ }+ }+}++var emptyModifiers = Object.create(null);++function normalizeDirectives$1 (+ dirs,+ vm+) {+ var res = Object.create(null);+ if (!dirs) {+ // $flow-disable-line+ return res+ }+ var i, dir;+ for (i = 0; i < dirs.length; i++) {+ dir = dirs[i];+ if (!dir.modifiers) {+ // $flow-disable-line+ dir.modifiers = emptyModifiers;+ }+ res[getRawDirName(dir)] = dir;+ dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);+ }+ // $flow-disable-line+ return res+}++function getRawDirName (dir) {+ return dir.rawName || ((dir.name) + "." + (Object.keys(dir.modifiers || {}).join('.')))+}++function callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {+ var fn = dir.def && dir.def[hook];+ if (fn) {+ try {+ fn(vnode.elm, dir, vnode, oldVnode, isDestroy);+ } catch (e) {+ handleError(e, vnode.context, ("directive " + (dir.name) + " " + hook + " hook"));+ }+ }+}++var baseModules = [+ ref,+ directives+]++/* */++function updateAttrs (oldVnode, vnode) {+ var opts = vnode.componentOptions;+ if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {+ return+ }+ if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {+ return+ }+ var key, cur, old;+ var elm = vnode.elm;+ var oldAttrs = oldVnode.data.attrs || {};+ var attrs = vnode.data.attrs || {};+ // clone observed objects, as the user probably wants to mutate it+ if (isDef(attrs.__ob__)) {+ attrs = vnode.data.attrs = extend({}, attrs);+ }++ for (key in attrs) {+ cur = attrs[key];+ old = oldAttrs[key];+ if (old !== cur) {+ setAttr(elm, key, cur);+ }+ }+ // #4391: in IE9, setting type can reset value for input[type=radio]+ // #6666: IE/Edge forces progress value down to 1 before setting a max+ /* istanbul ignore if */+ if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {+ setAttr(elm, 'value', attrs.value);+ }+ for (key in oldAttrs) {+ if (isUndef(attrs[key])) {+ if (isXlink(key)) {+ elm.removeAttributeNS(xlinkNS, getXlinkProp(key));+ } else if (!isEnumeratedAttr(key)) {+ elm.removeAttribute(key);+ }+ }+ }+}++function setAttr (el, key, value) {+ if (el.tagName.indexOf('-') > -1) {+ baseSetAttr(el, key, value);+ } else if (isBooleanAttr(key)) {+ // set attribute for blank value+ // e.g. <option disabled>Select one</option>+ if (isFalsyAttrValue(value)) {+ el.removeAttribute(key);+ } else {+ // technically allowfullscreen is a boolean attribute for <iframe>,+ // but Flash expects a value of "true" when used on <embed> tag+ value = key === 'allowfullscreen' && el.tagName === 'EMBED'+ ? 'true'+ : key;+ el.setAttribute(key, value);+ }+ } else if (isEnumeratedAttr(key)) {+ el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');+ } else if (isXlink(key)) {+ if (isFalsyAttrValue(value)) {+ el.removeAttributeNS(xlinkNS, getXlinkProp(key));+ } else {+ el.setAttributeNS(xlinkNS, key, value);+ }+ } else {+ baseSetAttr(el, key, value);+ }+}++function baseSetAttr (el, key, value) {+ if (isFalsyAttrValue(value)) {+ el.removeAttribute(key);+ } else {+ // #7138: IE10 & 11 fires input event when setting placeholder on+ // <textarea>... block the first input event and remove the blocker+ // immediately.+ /* istanbul ignore if */+ if (+ isIE && !isIE9 &&+ el.tagName === 'TEXTAREA' &&+ key === 'placeholder' && !el.__ieph+ ) {+ var blocker = function (e) {+ e.stopImmediatePropagation();+ el.removeEventListener('input', blocker);+ };+ el.addEventListener('input', blocker);+ // $flow-disable-line+ el.__ieph = true; /* IE placeholder patched */+ }+ el.setAttribute(key, value);+ }+}++var attrs = {+ create: updateAttrs,+ update: updateAttrs+}++/* */++function updateClass (oldVnode, vnode) {+ var el = vnode.elm;+ var data = vnode.data;+ var oldData = oldVnode.data;+ if (+ isUndef(data.staticClass) &&+ isUndef(data.class) && (+ isUndef(oldData) || (+ isUndef(oldData.staticClass) &&+ isUndef(oldData.class)+ )+ )+ ) {+ return+ }++ var cls = genClassForVnode(vnode);++ // handle transition classes+ var transitionClass = el._transitionClasses;+ if (isDef(transitionClass)) {+ cls = concat(cls, stringifyClass(transitionClass));+ }++ // set the class+ if (cls !== el._prevClass) {+ el.setAttribute('class', cls);+ el._prevClass = cls;+ }+}++var klass = {+ create: updateClass,+ update: updateClass+}++/* */++var validDivisionCharRE = /[\w).+\-_$\]]/;++function parseFilters (exp) {+ var inSingle = false;+ var inDouble = false;+ var inTemplateString = false;+ var inRegex = false;+ var curly = 0;+ var square = 0;+ var paren = 0;+ var lastFilterIndex = 0;+ var c, prev, i, expression, filters;++ for (i = 0; i < exp.length; i++) {+ prev = c;+ c = exp.charCodeAt(i);+ if (inSingle) {+ if (c === 0x27 && prev !== 0x5C) { inSingle = false; }+ } else if (inDouble) {+ if (c === 0x22 && prev !== 0x5C) { inDouble = false; }+ } else if (inTemplateString) {+ if (c === 0x60 && prev !== 0x5C) { inTemplateString = false; }+ } else if (inRegex) {+ if (c === 0x2f && prev !== 0x5C) { inRegex = false; }+ } else if (+ c === 0x7C && // pipe+ exp.charCodeAt(i + 1) !== 0x7C &&+ exp.charCodeAt(i - 1) !== 0x7C &&+ !curly && !square && !paren+ ) {+ if (expression === undefined) {+ // first filter, end of expression+ lastFilterIndex = i + 1;+ expression = exp.slice(0, i).trim();+ } else {+ pushFilter();+ }+ } else {+ switch (c) {+ case 0x22: inDouble = true; break // "+ case 0x27: inSingle = true; break // '+ case 0x60: inTemplateString = true; break // `+ case 0x28: paren++; break // (+ case 0x29: paren--; break // )+ case 0x5B: square++; break // [+ case 0x5D: square--; break // ]+ case 0x7B: curly++; break // {+ case 0x7D: curly--; break // }+ }+ if (c === 0x2f) { // /+ var j = i - 1;+ var p = (void 0);+ // find first non-whitespace prev char+ for (; j >= 0; j--) {+ p = exp.charAt(j);+ if (p !== ' ') { break }+ }+ if (!p || !validDivisionCharRE.test(p)) {+ inRegex = true;+ }+ }+ }+ }++ if (expression === undefined) {+ expression = exp.slice(0, i).trim();+ } else if (lastFilterIndex !== 0) {+ pushFilter();+ }++ function pushFilter () {+ (filters || (filters = [])).push(exp.slice(lastFilterIndex, i).trim());+ lastFilterIndex = i + 1;+ }++ if (filters) {+ for (i = 0; i < filters.length; i++) {+ expression = wrapFilter(expression, filters[i]);+ }+ }++ return expression+}++function wrapFilter (exp, filter) {+ var i = filter.indexOf('(');+ if (i < 0) {+ // _f: resolveFilter+ return ("_f(\"" + filter + "\")(" + exp + ")")+ } else {+ var name = filter.slice(0, i);+ var args = filter.slice(i + 1);+ return ("_f(\"" + name + "\")(" + exp + (args !== ')' ? ',' + args : args))+ }+}++/* */++function baseWarn (msg) {+ console.error(("[Vue compiler]: " + msg));+}++function pluckModuleFunction (+ modules,+ key+) {+ return modules+ ? modules.map(function (m) { return m[key]; }).filter(function (_) { return _; })+ : []+}++function addProp (el, name, value) {+ (el.props || (el.props = [])).push({ name: name, value: value });+ el.plain = false;+}++function addAttr (el, name, value) {+ (el.attrs || (el.attrs = [])).push({ name: name, value: value });+ el.plain = false;+}++// add a raw attr (use this in preTransforms)+function addRawAttr (el, name, value) {+ el.attrsMap[name] = value;+ el.attrsList.push({ name: name, value: value });+}++function addDirective (+ el,+ name,+ rawName,+ value,+ arg,+ modifiers+) {+ (el.directives || (el.directives = [])).push({ name: name, rawName: rawName, value: value, arg: arg, modifiers: modifiers });+ el.plain = false;+}++function addHandler (+ el,+ name,+ value,+ modifiers,+ important,+ warn+) {+ modifiers = modifiers || emptyObject;+ // warn prevent and passive modifier+ /* istanbul ignore if */+ if (+ "development" !== 'production' && warn &&+ modifiers.prevent && modifiers.passive+ ) {+ warn(+ 'passive and prevent can\'t be used together. ' ++ 'Passive handler can\'t prevent default event.'+ );+ }++ // check capture modifier+ if (modifiers.capture) {+ delete modifiers.capture;+ name = '!' + name; // mark the event as captured+ }+ if (modifiers.once) {+ delete modifiers.once;+ name = '~' + name; // mark the event as once+ }+ /* istanbul ignore if */+ if (modifiers.passive) {+ delete modifiers.passive;+ name = '&' + name; // mark the event as passive+ }++ // normalize click.right and click.middle since they don't actually fire+ // this is technically browser-specific, but at least for now browsers are+ // the only target envs that have right/middle clicks.+ if (name === 'click') {+ if (modifiers.right) {+ name = 'contextmenu';+ delete modifiers.right;+ } else if (modifiers.middle) {+ name = 'mouseup';+ }+ }++ var events;+ if (modifiers.native) {+ delete modifiers.native;+ events = el.nativeEvents || (el.nativeEvents = {});+ } else {+ events = el.events || (el.events = {});+ }++ var newHandler = {+ value: value.trim()+ };+ if (modifiers !== emptyObject) {+ newHandler.modifiers = modifiers;+ }++ var handlers = events[name];+ /* istanbul ignore if */+ if (Array.isArray(handlers)) {+ important ? handlers.unshift(newHandler) : handlers.push(newHandler);+ } else if (handlers) {+ events[name] = important ? [newHandler, handlers] : [handlers, newHandler];+ } else {+ events[name] = newHandler;+ }++ el.plain = false;+}++function getBindingAttr (+ el,+ name,+ getStatic+) {+ var dynamicValue =+ getAndRemoveAttr(el, ':' + name) ||+ getAndRemoveAttr(el, 'v-bind:' + name);+ if (dynamicValue != null) {+ return parseFilters(dynamicValue)+ } else if (getStatic !== false) {+ var staticValue = getAndRemoveAttr(el, name);+ if (staticValue != null) {+ return JSON.stringify(staticValue)+ }+ }+}++// note: this only removes the attr from the Array (attrsList) so that it+// doesn't get processed by processAttrs.+// By default it does NOT remove it from the map (attrsMap) because the map is+// needed during codegen.+function getAndRemoveAttr (+ el,+ name,+ removeFromMap+) {+ var val;+ if ((val = el.attrsMap[name]) != null) {+ var list = el.attrsList;+ for (var i = 0, l = list.length; i < l; i++) {+ if (list[i].name === name) {+ list.splice(i, 1);+ break+ }+ }+ }+ if (removeFromMap) {+ delete el.attrsMap[name];+ }+ return val+}++/* */++/**+ * Cross-platform code generation for component v-model+ */+function genComponentModel (+ el,+ value,+ modifiers+) {+ var ref = modifiers || {};+ var number = ref.number;+ var trim = ref.trim;++ var baseValueExpression = '$$v';+ var valueExpression = baseValueExpression;+ if (trim) {+ valueExpression =+ "(typeof " + baseValueExpression + " === 'string'" ++ "? " + baseValueExpression + ".trim()" ++ ": " + baseValueExpression + ")";+ }+ if (number) {+ valueExpression = "_n(" + valueExpression + ")";+ }+ var assignment = genAssignmentCode(value, valueExpression);++ el.model = {+ value: ("(" + value + ")"),+ expression: ("\"" + value + "\""),+ callback: ("function (" + baseValueExpression + ") {" + assignment + "}")+ };+}++/**+ * Cross-platform codegen helper for generating v-model value assignment code.+ */+function genAssignmentCode (+ value,+ assignment+) {+ var res = parseModel(value);+ if (res.key === null) {+ return (value + "=" + assignment)+ } else {+ return ("$set(" + (res.exp) + ", " + (res.key) + ", " + assignment + ")")+ }+}++/**+ * Parse a v-model expression into a base path and a final key segment.+ * Handles both dot-path and possible square brackets.+ *+ * Possible cases:+ *+ * - test+ * - test[key]+ * - test[test1[key]]+ * - test["a"][key]+ * - xxx.test[a[a].test1[key]]+ * - test.xxx.a["asa"][test1[key]]+ *+ */++var len;+var str;+var chr;+var index$1;+var expressionPos;+var expressionEndPos;++++function parseModel (val) {+ // Fix https://github.com/vuejs/vue/pull/7730+ // allow v-model="obj.val " (trailing whitespace)+ val = val.trim();+ len = val.length;++ if (val.indexOf('[') < 0 || val.lastIndexOf(']') < len - 1) {+ index$1 = val.lastIndexOf('.');+ if (index$1 > -1) {+ return {+ exp: val.slice(0, index$1),+ key: '"' + val.slice(index$1 + 1) + '"'+ }+ } else {+ return {+ exp: val,+ key: null+ }+ }+ }++ str = val;+ index$1 = expressionPos = expressionEndPos = 0;++ while (!eof()) {+ chr = next();+ /* istanbul ignore if */+ if (isStringStart(chr)) {+ parseString(chr);+ } else if (chr === 0x5B) {+ parseBracket(chr);+ }+ }++ return {+ exp: val.slice(0, expressionPos),+ key: val.slice(expressionPos + 1, expressionEndPos)+ }+}++function next () {+ return str.charCodeAt(++index$1)+}++function eof () {+ return index$1 >= len+}++function isStringStart (chr) {+ return chr === 0x22 || chr === 0x27+}++function parseBracket (chr) {+ var inBracket = 1;+ expressionPos = index$1;+ while (!eof()) {+ chr = next();+ if (isStringStart(chr)) {+ parseString(chr);+ continue+ }+ if (chr === 0x5B) { inBracket++; }+ if (chr === 0x5D) { inBracket--; }+ if (inBracket === 0) {+ expressionEndPos = index$1;+ break+ }+ }+}++function parseString (chr) {+ var stringQuote = chr;+ while (!eof()) {+ chr = next();+ if (chr === stringQuote) {+ break+ }+ }+}++/* */++var warn$1;++// in some cases, the event used has to be determined at runtime+// so we used some reserved tokens during compile.+var RANGE_TOKEN = '__r';+var CHECKBOX_RADIO_TOKEN = '__c';++function model (+ el,+ dir,+ _warn+) {+ warn$1 = _warn;+ var value = dir.value;+ var modifiers = dir.modifiers;+ var tag = el.tag;+ var type = el.attrsMap.type;++ {+ // inputs with type="file" are read only and setting the input's+ // value will throw an error.+ if (tag === 'input' && type === 'file') {+ warn$1(+ "<" + (el.tag) + " v-model=\"" + value + "\" type=\"file\">:\n" ++ "File inputs are read only. Use a v-on:change listener instead."+ );+ }+ }++ if (el.component) {+ genComponentModel(el, value, modifiers);+ // component v-model doesn't need extra runtime+ return false+ } else if (tag === 'select') {+ genSelect(el, value, modifiers);+ } else if (tag === 'input' && type === 'checkbox') {+ genCheckboxModel(el, value, modifiers);+ } else if (tag === 'input' && type === 'radio') {+ genRadioModel(el, value, modifiers);+ } else if (tag === 'input' || tag === 'textarea') {+ genDefaultModel(el, value, modifiers);+ } else if (!config.isReservedTag(tag)) {+ genComponentModel(el, value, modifiers);+ // component v-model doesn't need extra runtime+ return false+ } else {+ warn$1(+ "<" + (el.tag) + " v-model=\"" + value + "\">: " ++ "v-model is not supported on this element type. " ++ 'If you are working with contenteditable, it\'s recommended to ' ++ 'wrap a library dedicated for that purpose inside a custom component.'+ );+ }++ // ensure runtime directive metadata+ return true+}++function genCheckboxModel (+ el,+ value,+ modifiers+) {+ var number = modifiers && modifiers.number;+ var valueBinding = getBindingAttr(el, 'value') || 'null';+ var trueValueBinding = getBindingAttr(el, 'true-value') || 'true';+ var falseValueBinding = getBindingAttr(el, 'false-value') || 'false';+ addProp(el, 'checked',+ "Array.isArray(" + value + ")" ++ "?_i(" + value + "," + valueBinding + ")>-1" + (+ trueValueBinding === 'true'+ ? (":(" + value + ")")+ : (":_q(" + value + "," + trueValueBinding + ")")+ )+ );+ addHandler(el, 'change',+ "var $$a=" + value + "," ++ '$$el=$event.target,' ++ "$$c=$$el.checked?(" + trueValueBinding + "):(" + falseValueBinding + ");" ++ 'if(Array.isArray($$a)){' ++ "var $$v=" + (number ? '_n(' + valueBinding + ')' : valueBinding) + "," ++ '$$i=_i($$a,$$v);' ++ "if($$el.checked){$$i<0&&(" + (genAssignmentCode(value, '$$a.concat([$$v])')) + ")}" ++ "else{$$i>-1&&(" + (genAssignmentCode(value, '$$a.slice(0,$$i).concat($$a.slice($$i+1))')) + ")}" ++ "}else{" + (genAssignmentCode(value, '$$c')) + "}",+ null, true+ );+}++function genRadioModel (+ el,+ value,+ modifiers+) {+ var number = modifiers && modifiers.number;+ var valueBinding = getBindingAttr(el, 'value') || 'null';+ valueBinding = number ? ("_n(" + valueBinding + ")") : valueBinding;+ addProp(el, 'checked', ("_q(" + value + "," + valueBinding + ")"));+ addHandler(el, 'change', genAssignmentCode(value, valueBinding), null, true);+}++function genSelect (+ el,+ value,+ modifiers+) {+ var number = modifiers && modifiers.number;+ var selectedVal = "Array.prototype.filter" ++ ".call($event.target.options,function(o){return o.selected})" ++ ".map(function(o){var val = \"_value\" in o ? o._value : o.value;" ++ "return " + (number ? '_n(val)' : 'val') + "})";++ var assignment = '$event.target.multiple ? $$selectedVal : $$selectedVal[0]';+ var code = "var $$selectedVal = " + selectedVal + ";";+ code = code + " " + (genAssignmentCode(value, assignment));+ addHandler(el, 'change', code, null, true);+}++function genDefaultModel (+ el,+ value,+ modifiers+) {+ var type = el.attrsMap.type;++ // warn if v-bind:value conflicts with v-model+ // except for inputs with v-bind:type+ {+ var value$1 = el.attrsMap['v-bind:value'] || el.attrsMap[':value'];+ var typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type'];+ if (value$1 && !typeBinding) {+ var binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value';+ warn$1(+ binding + "=\"" + value$1 + "\" conflicts with v-model on the same element " ++ 'because the latter already expands to a value binding internally'+ );+ }+ }++ var ref = modifiers || {};+ var lazy = ref.lazy;+ var number = ref.number;+ var trim = ref.trim;+ var needCompositionGuard = !lazy && type !== 'range';+ var event = lazy+ ? 'change'+ : type === 'range'+ ? RANGE_TOKEN+ : 'input';++ var valueExpression = '$event.target.value';+ if (trim) {+ valueExpression = "$event.target.value.trim()";+ }+ if (number) {+ valueExpression = "_n(" + valueExpression + ")";+ }++ var code = genAssignmentCode(value, valueExpression);+ if (needCompositionGuard) {+ code = "if($event.target.composing)return;" + code;+ }++ addProp(el, 'value', ("(" + value + ")"));+ addHandler(el, event, code, null, true);+ if (trim || number) {+ addHandler(el, 'blur', '$forceUpdate()');+ }+}++/* */++// normalize v-model event tokens that can only be determined at runtime.+// it's important to place the event as the first in the array because+// the whole point is ensuring the v-model callback gets called before+// user-attached handlers.+function normalizeEvents (on) {+ /* istanbul ignore if */+ if (isDef(on[RANGE_TOKEN])) {+ // IE input[type=range] only supports `change` event+ var event = isIE ? 'change' : 'input';+ on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);+ delete on[RANGE_TOKEN];+ }+ // This was originally intended to fix #4521 but no longer necessary+ // after 2.5. Keeping it for backwards compat with generated code from < 2.4+ /* istanbul ignore if */+ if (isDef(on[CHECKBOX_RADIO_TOKEN])) {+ on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);+ delete on[CHECKBOX_RADIO_TOKEN];+ }+}++var target$1;++function createOnceHandler (handler, event, capture) {+ var _target = target$1; // save current target element in closure+ return function onceHandler () {+ var res = handler.apply(null, arguments);+ if (res !== null) {+ remove$2(event, onceHandler, capture, _target);+ }+ }+}++function add$1 (+ event,+ handler,+ once$$1,+ capture,+ passive+) {+ handler = withMacroTask(handler);+ if (once$$1) { handler = createOnceHandler(handler, event, capture); }+ target$1.addEventListener(+ event,+ handler,+ supportsPassive+ ? { capture: capture, passive: passive }+ : capture+ );+}++function remove$2 (+ event,+ handler,+ capture,+ _target+) {+ (_target || target$1).removeEventListener(+ event,+ handler._withTask || handler,+ capture+ );+}++function updateDOMListeners (oldVnode, vnode) {+ if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {+ return+ }+ var on = vnode.data.on || {};+ var oldOn = oldVnode.data.on || {};+ target$1 = vnode.elm;+ normalizeEvents(on);+ updateListeners(on, oldOn, add$1, remove$2, vnode.context);+ target$1 = undefined;+}++var events = {+ create: updateDOMListeners,+ update: updateDOMListeners+}++/* */++function updateDOMProps (oldVnode, vnode) {+ if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {+ return+ }+ var key, cur;+ var elm = vnode.elm;+ var oldProps = oldVnode.data.domProps || {};+ var props = vnode.data.domProps || {};+ // clone observed objects, as the user probably wants to mutate it+ if (isDef(props.__ob__)) {+ props = vnode.data.domProps = extend({}, props);+ }++ for (key in oldProps) {+ if (isUndef(props[key])) {+ elm[key] = '';+ }+ }+ for (key in props) {+ cur = props[key];+ // ignore children if the node has textContent or innerHTML,+ // as these will throw away existing DOM nodes and cause removal errors+ // on subsequent patches (#3360)+ if (key === 'textContent' || key === 'innerHTML') {+ if (vnode.children) { vnode.children.length = 0; }+ if (cur === oldProps[key]) { continue }+ // #6601 work around Chrome version <= 55 bug where single textNode+ // replaced by innerHTML/textContent retains its parentNode property+ if (elm.childNodes.length === 1) {+ elm.removeChild(elm.childNodes[0]);+ }+ }++ if (key === 'value') {+ // store value as _value as well since+ // non-string values will be stringified+ elm._value = cur;+ // avoid resetting cursor position when value is the same+ var strCur = isUndef(cur) ? '' : String(cur);+ if (shouldUpdateValue(elm, strCur)) {+ elm.value = strCur;+ }+ } else {+ elm[key] = cur;+ }+ }+}++// check platforms/web/util/attrs.js acceptValue+++function shouldUpdateValue (elm, checkVal) {+ return (!elm.composing && (+ elm.tagName === 'OPTION' ||+ isNotInFocusAndDirty(elm, checkVal) ||+ isDirtyWithModifiers(elm, checkVal)+ ))+}++function isNotInFocusAndDirty (elm, checkVal) {+ // return true when textbox (.number and .trim) loses focus and its value is+ // not equal to the updated value+ var notInFocus = true;+ // #6157+ // work around IE bug when accessing document.activeElement in an iframe+ try { notInFocus = document.activeElement !== elm; } catch (e) {}+ return notInFocus && elm.value !== checkVal+}++function isDirtyWithModifiers (elm, newVal) {+ var value = elm.value;+ var modifiers = elm._vModifiers; // injected by v-model runtime+ if (isDef(modifiers)) {+ if (modifiers.lazy) {+ // inputs with lazy should only be updated when not in focus+ return false+ }+ if (modifiers.number) {+ return toNumber(value) !== toNumber(newVal)+ }+ if (modifiers.trim) {+ return value.trim() !== newVal.trim()+ }+ }+ return value !== newVal+}++var domProps = {+ create: updateDOMProps,+ update: updateDOMProps+}++/* */++var parseStyleText = cached(function (cssText) {+ var res = {};+ var listDelimiter = /;(?![^(]*\))/g;+ var propertyDelimiter = /:(.+)/;+ cssText.split(listDelimiter).forEach(function (item) {+ if (item) {+ var tmp = item.split(propertyDelimiter);+ tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());+ }+ });+ return res+});++// merge static and dynamic style data on the same vnode+function normalizeStyleData (data) {+ var style = normalizeStyleBinding(data.style);+ // static style is pre-processed into an object during compilation+ // and is always a fresh object, so it's safe to merge into it+ return data.staticStyle+ ? extend(data.staticStyle, style)+ : style+}++// normalize possible array / string values into Object+function normalizeStyleBinding (bindingStyle) {+ if (Array.isArray(bindingStyle)) {+ return toObject(bindingStyle)+ }+ if (typeof bindingStyle === 'string') {+ return parseStyleText(bindingStyle)+ }+ return bindingStyle+}++/**+ * parent component style should be after child's+ * so that parent component's style could override it+ */+function getStyle (vnode, checkChild) {+ var res = {};+ var styleData;++ if (checkChild) {+ var childNode = vnode;+ while (childNode.componentInstance) {+ childNode = childNode.componentInstance._vnode;+ if (+ childNode && childNode.data &&+ (styleData = normalizeStyleData(childNode.data))+ ) {+ extend(res, styleData);+ }+ }+ }++ if ((styleData = normalizeStyleData(vnode.data))) {+ extend(res, styleData);+ }++ var parentNode = vnode;+ while ((parentNode = parentNode.parent)) {+ if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {+ extend(res, styleData);+ }+ }+ return res+}++/* */++var cssVarRE = /^--/;+var importantRE = /\s*!important$/;+var setProp = function (el, name, val) {+ /* istanbul ignore if */+ if (cssVarRE.test(name)) {+ el.style.setProperty(name, val);+ } else if (importantRE.test(val)) {+ el.style.setProperty(name, val.replace(importantRE, ''), 'important');+ } else {+ var normalizedName = normalize(name);+ if (Array.isArray(val)) {+ // Support values array created by autoprefixer, e.g.+ // {display: ["-webkit-box", "-ms-flexbox", "flex"]}+ // Set them one by one, and the browser will only set those it can recognize+ for (var i = 0, len = val.length; i < len; i++) {+ el.style[normalizedName] = val[i];+ }+ } else {+ el.style[normalizedName] = val;+ }+ }+};++var vendorNames = ['Webkit', 'Moz', 'ms'];++var emptyStyle;+var normalize = cached(function (prop) {+ emptyStyle = emptyStyle || document.createElement('div').style;+ prop = camelize(prop);+ if (prop !== 'filter' && (prop in emptyStyle)) {+ return prop+ }+ var capName = prop.charAt(0).toUpperCase() + prop.slice(1);+ for (var i = 0; i < vendorNames.length; i++) {+ var name = vendorNames[i] + capName;+ if (name in emptyStyle) {+ return name+ }+ }+});++function updateStyle (oldVnode, vnode) {+ var data = vnode.data;+ var oldData = oldVnode.data;++ if (isUndef(data.staticStyle) && isUndef(data.style) &&+ isUndef(oldData.staticStyle) && isUndef(oldData.style)+ ) {+ return+ }++ var cur, name;+ var el = vnode.elm;+ var oldStaticStyle = oldData.staticStyle;+ var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};++ // if static style exists, stylebinding already merged into it when doing normalizeStyleData+ var oldStyle = oldStaticStyle || oldStyleBinding;++ var style = normalizeStyleBinding(vnode.data.style) || {};++ // store normalized style under a different key for next diff+ // make sure to clone it if it's reactive, since the user likely wants+ // to mutate it.+ vnode.data.normalizedStyle = isDef(style.__ob__)+ ? extend({}, style)+ : style;++ var newStyle = getStyle(vnode, true);++ for (name in oldStyle) {+ if (isUndef(newStyle[name])) {+ setProp(el, name, '');+ }+ }+ for (name in newStyle) {+ cur = newStyle[name];+ if (cur !== oldStyle[name]) {+ // ie9 setting to null has no effect, must use empty string+ setProp(el, name, cur == null ? '' : cur);+ }+ }+}++var style = {+ create: updateStyle,+ update: updateStyle+}++/* */++/**+ * Add class with compatibility for SVG since classList is not supported on+ * SVG elements in IE+ */+function addClass (el, cls) {+ /* istanbul ignore if */+ if (!cls || !(cls = cls.trim())) {+ return+ }++ /* istanbul ignore else */+ if (el.classList) {+ if (cls.indexOf(' ') > -1) {+ cls.split(/\s+/).forEach(function (c) { return el.classList.add(c); });+ } else {+ el.classList.add(cls);+ }+ } else {+ var cur = " " + (el.getAttribute('class') || '') + " ";+ if (cur.indexOf(' ' + cls + ' ') < 0) {+ el.setAttribute('class', (cur + cls).trim());+ }+ }+}++/**+ * Remove class with compatibility for SVG since classList is not supported on+ * SVG elements in IE+ */+function removeClass (el, cls) {+ /* istanbul ignore if */+ if (!cls || !(cls = cls.trim())) {+ return+ }++ /* istanbul ignore else */+ if (el.classList) {+ if (cls.indexOf(' ') > -1) {+ cls.split(/\s+/).forEach(function (c) { return el.classList.remove(c); });+ } else {+ el.classList.remove(cls);+ }+ if (!el.classList.length) {+ el.removeAttribute('class');+ }+ } else {+ var cur = " " + (el.getAttribute('class') || '') + " ";+ var tar = ' ' + cls + ' ';+ while (cur.indexOf(tar) >= 0) {+ cur = cur.replace(tar, ' ');+ }+ cur = cur.trim();+ if (cur) {+ el.setAttribute('class', cur);+ } else {+ el.removeAttribute('class');+ }+ }+}++/* */++function resolveTransition (def) {+ if (!def) {+ return+ }+ /* istanbul ignore else */+ if (typeof def === 'object') {+ var res = {};+ if (def.css !== false) {+ extend(res, autoCssTransition(def.name || 'v'));+ }+ extend(res, def);+ return res+ } else if (typeof def === 'string') {+ return autoCssTransition(def)+ }+}++var autoCssTransition = cached(function (name) {+ return {+ enterClass: (name + "-enter"),+ enterToClass: (name + "-enter-to"),+ enterActiveClass: (name + "-enter-active"),+ leaveClass: (name + "-leave"),+ leaveToClass: (name + "-leave-to"),+ leaveActiveClass: (name + "-leave-active")+ }+});++var hasTransition = inBrowser && !isIE9;+var TRANSITION = 'transition';+var ANIMATION = 'animation';++// Transition property/event sniffing+var transitionProp = 'transition';+var transitionEndEvent = 'transitionend';+var animationProp = 'animation';+var animationEndEvent = 'animationend';+if (hasTransition) {+ /* istanbul ignore if */+ if (window.ontransitionend === undefined &&+ window.onwebkittransitionend !== undefined+ ) {+ transitionProp = 'WebkitTransition';+ transitionEndEvent = 'webkitTransitionEnd';+ }+ if (window.onanimationend === undefined &&+ window.onwebkitanimationend !== undefined+ ) {+ animationProp = 'WebkitAnimation';+ animationEndEvent = 'webkitAnimationEnd';+ }+}++// binding to window is necessary to make hot reload work in IE in strict mode+var raf = inBrowser+ ? window.requestAnimationFrame+ ? window.requestAnimationFrame.bind(window)+ : setTimeout+ : /* istanbul ignore next */ function (fn) { return fn(); };++function nextFrame (fn) {+ raf(function () {+ raf(fn);+ });+}++function addTransitionClass (el, cls) {+ var transitionClasses = el._transitionClasses || (el._transitionClasses = []);+ if (transitionClasses.indexOf(cls) < 0) {+ transitionClasses.push(cls);+ addClass(el, cls);+ }+}++function removeTransitionClass (el, cls) {+ if (el._transitionClasses) {+ remove(el._transitionClasses, cls);+ }+ removeClass(el, cls);+}++function whenTransitionEnds (+ el,+ expectedType,+ cb+) {+ var ref = getTransitionInfo(el, expectedType);+ var type = ref.type;+ var timeout = ref.timeout;+ var propCount = ref.propCount;+ if (!type) { return cb() }+ var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;+ var ended = 0;+ var end = function () {+ el.removeEventListener(event, onEnd);+ cb();+ };+ var onEnd = function (e) {+ if (e.target === el) {+ if (++ended >= propCount) {+ end();+ }+ }+ };+ setTimeout(function () {+ if (ended < propCount) {+ end();+ }+ }, timeout + 1);+ el.addEventListener(event, onEnd);+}++var transformRE = /\b(transform|all)(,|$)/;++function getTransitionInfo (el, expectedType) {+ var styles = window.getComputedStyle(el);+ var transitionDelays = styles[transitionProp + 'Delay'].split(', ');+ var transitionDurations = styles[transitionProp + 'Duration'].split(', ');+ var transitionTimeout = getTimeout(transitionDelays, transitionDurations);+ var animationDelays = styles[animationProp + 'Delay'].split(', ');+ var animationDurations = styles[animationProp + 'Duration'].split(', ');+ var animationTimeout = getTimeout(animationDelays, animationDurations);++ var type;+ var timeout = 0;+ var propCount = 0;+ /* istanbul ignore if */+ if (expectedType === TRANSITION) {+ if (transitionTimeout > 0) {+ type = TRANSITION;+ timeout = transitionTimeout;+ propCount = transitionDurations.length;+ }+ } else if (expectedType === ANIMATION) {+ if (animationTimeout > 0) {+ type = ANIMATION;+ timeout = animationTimeout;+ propCount = animationDurations.length;+ }+ } else {+ timeout = Math.max(transitionTimeout, animationTimeout);+ type = timeout > 0+ ? transitionTimeout > animationTimeout+ ? TRANSITION+ : ANIMATION+ : null;+ propCount = type+ ? type === TRANSITION+ ? transitionDurations.length+ : animationDurations.length+ : 0;+ }+ var hasTransform =+ type === TRANSITION &&+ transformRE.test(styles[transitionProp + 'Property']);+ return {+ type: type,+ timeout: timeout,+ propCount: propCount,+ hasTransform: hasTransform+ }+}++function getTimeout (delays, durations) {+ /* istanbul ignore next */+ while (delays.length < durations.length) {+ delays = delays.concat(delays);+ }++ return Math.max.apply(null, durations.map(function (d, i) {+ return toMs(d) + toMs(delays[i])+ }))+}++function toMs (s) {+ return Number(s.slice(0, -1)) * 1000+}++/* */++function enter (vnode, toggleDisplay) {+ var el = vnode.elm;++ // call leave callback now+ if (isDef(el._leaveCb)) {+ el._leaveCb.cancelled = true;+ el._leaveCb();+ }++ var data = resolveTransition(vnode.data.transition);+ if (isUndef(data)) {+ return+ }++ /* istanbul ignore if */+ if (isDef(el._enterCb) || el.nodeType !== 1) {+ return+ }++ var css = data.css;+ var type = data.type;+ var enterClass = data.enterClass;+ var enterToClass = data.enterToClass;+ var enterActiveClass = data.enterActiveClass;+ var appearClass = data.appearClass;+ var appearToClass = data.appearToClass;+ var appearActiveClass = data.appearActiveClass;+ var beforeEnter = data.beforeEnter;+ var enter = data.enter;+ var afterEnter = data.afterEnter;+ var enterCancelled = data.enterCancelled;+ var beforeAppear = data.beforeAppear;+ var appear = data.appear;+ var afterAppear = data.afterAppear;+ var appearCancelled = data.appearCancelled;+ var duration = data.duration;++ // activeInstance will always be the <transition> component managing this+ // transition. One edge case to check is when the <transition> is placed+ // as the root node of a child component. In that case we need to check+ // <transition>'s parent for appear check.+ var context = activeInstance;+ var transitionNode = activeInstance.$vnode;+ while (transitionNode && transitionNode.parent) {+ transitionNode = transitionNode.parent;+ context = transitionNode.context;+ }++ var isAppear = !context._isMounted || !vnode.isRootInsert;++ if (isAppear && !appear && appear !== '') {+ return+ }++ var startClass = isAppear && appearClass+ ? appearClass+ : enterClass;+ var activeClass = isAppear && appearActiveClass+ ? appearActiveClass+ : enterActiveClass;+ var toClass = isAppear && appearToClass+ ? appearToClass+ : enterToClass;++ var beforeEnterHook = isAppear+ ? (beforeAppear || beforeEnter)+ : beforeEnter;+ var enterHook = isAppear+ ? (typeof appear === 'function' ? appear : enter)+ : enter;+ var afterEnterHook = isAppear+ ? (afterAppear || afterEnter)+ : afterEnter;+ var enterCancelledHook = isAppear+ ? (appearCancelled || enterCancelled)+ : enterCancelled;++ var explicitEnterDuration = toNumber(+ isObject(duration)+ ? duration.enter+ : duration+ );++ if ("development" !== 'production' && explicitEnterDuration != null) {+ checkDuration(explicitEnterDuration, 'enter', vnode);+ }++ var expectsCSS = css !== false && !isIE9;+ var userWantsControl = getHookArgumentsLength(enterHook);++ var cb = el._enterCb = once(function () {+ if (expectsCSS) {+ removeTransitionClass(el, toClass);+ removeTransitionClass(el, activeClass);+ }+ if (cb.cancelled) {+ if (expectsCSS) {+ removeTransitionClass(el, startClass);+ }+ enterCancelledHook && enterCancelledHook(el);+ } else {+ afterEnterHook && afterEnterHook(el);+ }+ el._enterCb = null;+ });++ if (!vnode.data.show) {+ // remove pending leave element on enter by injecting an insert hook+ mergeVNodeHook(vnode, 'insert', function () {+ var parent = el.parentNode;+ var pendingNode = parent && parent._pending && parent._pending[vnode.key];+ if (pendingNode &&+ pendingNode.tag === vnode.tag &&+ pendingNode.elm._leaveCb+ ) {+ pendingNode.elm._leaveCb();+ }+ enterHook && enterHook(el, cb);+ });+ }++ // start enter transition+ beforeEnterHook && beforeEnterHook(el);+ if (expectsCSS) {+ addTransitionClass(el, startClass);+ addTransitionClass(el, activeClass);+ nextFrame(function () {+ removeTransitionClass(el, startClass);+ if (!cb.cancelled) {+ addTransitionClass(el, toClass);+ if (!userWantsControl) {+ if (isValidDuration(explicitEnterDuration)) {+ setTimeout(cb, explicitEnterDuration);+ } else {+ whenTransitionEnds(el, type, cb);+ }+ }+ }+ });+ }++ if (vnode.data.show) {+ toggleDisplay && toggleDisplay();+ enterHook && enterHook(el, cb);+ }++ if (!expectsCSS && !userWantsControl) {+ cb();+ }+}++function leave (vnode, rm) {+ var el = vnode.elm;++ // call enter callback now+ if (isDef(el._enterCb)) {+ el._enterCb.cancelled = true;+ el._enterCb();+ }++ var data = resolveTransition(vnode.data.transition);+ if (isUndef(data) || el.nodeType !== 1) {+ return rm()+ }++ /* istanbul ignore if */+ if (isDef(el._leaveCb)) {+ return+ }++ var css = data.css;+ var type = data.type;+ var leaveClass = data.leaveClass;+ var leaveToClass = data.leaveToClass;+ var leaveActiveClass = data.leaveActiveClass;+ var beforeLeave = data.beforeLeave;+ var leave = data.leave;+ var afterLeave = data.afterLeave;+ var leaveCancelled = data.leaveCancelled;+ var delayLeave = data.delayLeave;+ var duration = data.duration;++ var expectsCSS = css !== false && !isIE9;+ var userWantsControl = getHookArgumentsLength(leave);++ var explicitLeaveDuration = toNumber(+ isObject(duration)+ ? duration.leave+ : duration+ );++ if ("development" !== 'production' && isDef(explicitLeaveDuration)) {+ checkDuration(explicitLeaveDuration, 'leave', vnode);+ }++ var cb = el._leaveCb = once(function () {+ if (el.parentNode && el.parentNode._pending) {+ el.parentNode._pending[vnode.key] = null;+ }+ if (expectsCSS) {+ removeTransitionClass(el, leaveToClass);+ removeTransitionClass(el, leaveActiveClass);+ }+ if (cb.cancelled) {+ if (expectsCSS) {+ removeTransitionClass(el, leaveClass);+ }+ leaveCancelled && leaveCancelled(el);+ } else {+ rm();+ afterLeave && afterLeave(el);+ }+ el._leaveCb = null;+ });++ if (delayLeave) {+ delayLeave(performLeave);+ } else {+ performLeave();+ }++ function performLeave () {+ // the delayed leave may have already been cancelled+ if (cb.cancelled) {+ return+ }+ // record leaving element+ if (!vnode.data.show) {+ (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;+ }+ beforeLeave && beforeLeave(el);+ if (expectsCSS) {+ addTransitionClass(el, leaveClass);+ addTransitionClass(el, leaveActiveClass);+ nextFrame(function () {+ removeTransitionClass(el, leaveClass);+ if (!cb.cancelled) {+ addTransitionClass(el, leaveToClass);+ if (!userWantsControl) {+ if (isValidDuration(explicitLeaveDuration)) {+ setTimeout(cb, explicitLeaveDuration);+ } else {+ whenTransitionEnds(el, type, cb);+ }+ }+ }+ });+ }+ leave && leave(el, cb);+ if (!expectsCSS && !userWantsControl) {+ cb();+ }+ }+}++// only used in dev mode+function checkDuration (val, name, vnode) {+ if (typeof val !== 'number') {+ warn(+ "<transition> explicit " + name + " duration is not a valid number - " ++ "got " + (JSON.stringify(val)) + ".",+ vnode.context+ );+ } else if (isNaN(val)) {+ warn(+ "<transition> explicit " + name + " duration is NaN - " ++ 'the duration expression might be incorrect.',+ vnode.context+ );+ }+}++function isValidDuration (val) {+ return typeof val === 'number' && !isNaN(val)+}++/**+ * Normalize a transition hook's argument length. The hook may be:+ * - a merged hook (invoker) with the original in .fns+ * - a wrapped component method (check ._length)+ * - a plain function (.length)+ */+function getHookArgumentsLength (fn) {+ if (isUndef(fn)) {+ return false+ }+ var invokerFns = fn.fns;+ if (isDef(invokerFns)) {+ // invoker+ return getHookArgumentsLength(+ Array.isArray(invokerFns)+ ? invokerFns[0]+ : invokerFns+ )+ } else {+ return (fn._length || fn.length) > 1+ }+}++function _enter (_, vnode) {+ if (vnode.data.show !== true) {+ enter(vnode);+ }+}++var transition = inBrowser ? {+ create: _enter,+ activate: _enter,+ remove: function remove$$1 (vnode, rm) {+ /* istanbul ignore else */+ if (vnode.data.show !== true) {+ leave(vnode, rm);+ } else {+ rm();+ }+ }+} : {}++var platformModules = [+ attrs,+ klass,+ events,+ domProps,+ style,+ transition+]++/* */++// the directive module should be applied last, after all+// built-in modules have been applied.+var modules = platformModules.concat(baseModules);++var patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });++/**+ * Not type checking this file because flow doesn't like attaching+ * properties to Elements.+ */++/* istanbul ignore if */+if (isIE9) {+ // http://www.matts411.com/post/internet-explorer-9-oninput/+ document.addEventListener('selectionchange', function () {+ var el = document.activeElement;+ if (el && el.vmodel) {+ trigger(el, 'input');+ }+ });+}++var directive = {+ inserted: function inserted (el, binding, vnode, oldVnode) {+ if (vnode.tag === 'select') {+ // #6903+ if (oldVnode.elm && !oldVnode.elm._vOptions) {+ mergeVNodeHook(vnode, 'postpatch', function () {+ directive.componentUpdated(el, binding, vnode);+ });+ } else {+ setSelected(el, binding, vnode.context);+ }+ el._vOptions = [].map.call(el.options, getValue);+ } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {+ el._vModifiers = binding.modifiers;+ if (!binding.modifiers.lazy) {+ el.addEventListener('compositionstart', onCompositionStart);+ el.addEventListener('compositionend', onCompositionEnd);+ // Safari < 10.2 & UIWebView doesn't fire compositionend when+ // switching focus before confirming composition choice+ // this also fixes the issue where some browsers e.g. iOS Chrome+ // fires "change" instead of "input" on autocomplete.+ el.addEventListener('change', onCompositionEnd);+ /* istanbul ignore if */+ if (isIE9) {+ el.vmodel = true;+ }+ }+ }+ },++ componentUpdated: function componentUpdated (el, binding, vnode) {+ if (vnode.tag === 'select') {+ setSelected(el, binding, vnode.context);+ // in case the options rendered by v-for have changed,+ // it's possible that the value is out-of-sync with the rendered options.+ // detect such cases and filter out values that no longer has a matching+ // option in the DOM.+ var prevOptions = el._vOptions;+ var curOptions = el._vOptions = [].map.call(el.options, getValue);+ if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {+ // trigger change event if+ // no matching option found for at least one value+ var needReset = el.multiple+ ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })+ : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);+ if (needReset) {+ trigger(el, 'change');+ }+ }+ }+ }+};++function setSelected (el, binding, vm) {+ actuallySetSelected(el, binding, vm);+ /* istanbul ignore if */+ if (isIE || isEdge) {+ setTimeout(function () {+ actuallySetSelected(el, binding, vm);+ }, 0);+ }+}++function actuallySetSelected (el, binding, vm) {+ var value = binding.value;+ var isMultiple = el.multiple;+ if (isMultiple && !Array.isArray(value)) {+ "development" !== 'production' && warn(+ "<select multiple v-model=\"" + (binding.expression) + "\"> " ++ "expects an Array value for its binding, but got " + (Object.prototype.toString.call(value).slice(8, -1)),+ vm+ );+ return+ }+ var selected, option;+ for (var i = 0, l = el.options.length; i < l; i++) {+ option = el.options[i];+ if (isMultiple) {+ selected = looseIndexOf(value, getValue(option)) > -1;+ if (option.selected !== selected) {+ option.selected = selected;+ }+ } else {+ if (looseEqual(getValue(option), value)) {+ if (el.selectedIndex !== i) {+ el.selectedIndex = i;+ }+ return+ }+ }+ }+ if (!isMultiple) {+ el.selectedIndex = -1;+ }+}++function hasNoMatchingOption (value, options) {+ return options.every(function (o) { return !looseEqual(o, value); })+}++function getValue (option) {+ return '_value' in option+ ? option._value+ : option.value+}++function onCompositionStart (e) {+ e.target.composing = true;+}++function onCompositionEnd (e) {+ // prevent triggering an input event for no reason+ if (!e.target.composing) { return }+ e.target.composing = false;+ trigger(e.target, 'input');+}++function trigger (el, type) {+ var e = document.createEvent('HTMLEvents');+ e.initEvent(type, true, true);+ el.dispatchEvent(e);+}++/* */++// recursively search for possible transition defined inside the component root+function locateNode (vnode) {+ return vnode.componentInstance && (!vnode.data || !vnode.data.transition)+ ? locateNode(vnode.componentInstance._vnode)+ : vnode+}++var show = {+ bind: function bind (el, ref, vnode) {+ var value = ref.value;++ vnode = locateNode(vnode);+ var transition$$1 = vnode.data && vnode.data.transition;+ var originalDisplay = el.__vOriginalDisplay =+ el.style.display === 'none' ? '' : el.style.display;+ if (value && transition$$1) {+ vnode.data.show = true;+ enter(vnode, function () {+ el.style.display = originalDisplay;+ });+ } else {+ el.style.display = value ? originalDisplay : 'none';+ }+ },++ update: function update (el, ref, vnode) {+ var value = ref.value;+ var oldValue = ref.oldValue;++ /* istanbul ignore if */+ if (!value === !oldValue) { return }+ vnode = locateNode(vnode);+ var transition$$1 = vnode.data && vnode.data.transition;+ if (transition$$1) {+ vnode.data.show = true;+ if (value) {+ enter(vnode, function () {+ el.style.display = el.__vOriginalDisplay;+ });+ } else {+ leave(vnode, function () {+ el.style.display = 'none';+ });+ }+ } else {+ el.style.display = value ? el.__vOriginalDisplay : 'none';+ }+ },++ unbind: function unbind (+ el,+ binding,+ vnode,+ oldVnode,+ isDestroy+ ) {+ if (!isDestroy) {+ el.style.display = el.__vOriginalDisplay;+ }+ }+}++var platformDirectives = {+ model: directive,+ show: show+}++/* */++// Provides transition support for a single element/component.+// supports transition mode (out-in / in-out)++var transitionProps = {+ name: String,+ appear: Boolean,+ css: Boolean,+ mode: String,+ type: String,+ enterClass: String,+ leaveClass: String,+ enterToClass: String,+ leaveToClass: String,+ enterActiveClass: String,+ leaveActiveClass: String,+ appearClass: String,+ appearActiveClass: String,+ appearToClass: String,+ duration: [Number, String, Object]+};++// in case the child is also an abstract component, e.g. <keep-alive>+// we want to recursively retrieve the real component to be rendered+function getRealChild (vnode) {+ var compOptions = vnode && vnode.componentOptions;+ if (compOptions && compOptions.Ctor.options.abstract) {+ return getRealChild(getFirstComponentChild(compOptions.children))+ } else {+ return vnode+ }+}++function extractTransitionData (comp) {+ var data = {};+ var options = comp.$options;+ // props+ for (var key in options.propsData) {+ data[key] = comp[key];+ }+ // events.+ // extract listeners and pass them directly to the transition methods+ var listeners = options._parentListeners;+ for (var key$1 in listeners) {+ data[camelize(key$1)] = listeners[key$1];+ }+ return data+}++function placeholder (h, rawChild) {+ if (/\d-keep-alive$/.test(rawChild.tag)) {+ return h('keep-alive', {+ props: rawChild.componentOptions.propsData+ })+ }+}++function hasParentTransition (vnode) {+ while ((vnode = vnode.parent)) {+ if (vnode.data.transition) {+ return true+ }+ }+}++function isSameChild (child, oldChild) {+ return oldChild.key === child.key && oldChild.tag === child.tag+}++var Transition = {+ name: 'transition',+ props: transitionProps,+ abstract: true,++ render: function render (h) {+ var this$1 = this;++ var children = this.$slots.default;+ if (!children) {+ return+ }++ // filter out text nodes (possible whitespaces)+ children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });+ /* istanbul ignore if */+ if (!children.length) {+ return+ }++ // warn multiple elements+ if ("development" !== 'production' && children.length > 1) {+ warn(+ '<transition> can only be used on a single element. Use ' ++ '<transition-group> for lists.',+ this.$parent+ );+ }++ var mode = this.mode;++ // warn invalid mode+ if ("development" !== 'production' &&+ mode && mode !== 'in-out' && mode !== 'out-in'+ ) {+ warn(+ 'invalid <transition> mode: ' + mode,+ this.$parent+ );+ }++ var rawChild = children[0];++ // if this is a component root node and the component's+ // parent container node also has transition, skip.+ if (hasParentTransition(this.$vnode)) {+ return rawChild+ }++ // apply transition data to child+ // use getRealChild() to ignore abstract components e.g. keep-alive+ var child = getRealChild(rawChild);+ /* istanbul ignore if */+ if (!child) {+ return rawChild+ }++ if (this._leaving) {+ return placeholder(h, rawChild)+ }++ // ensure a key that is unique to the vnode type and to this transition+ // component instance. This key will be used to remove pending leaving nodes+ // during entering.+ var id = "__transition-" + (this._uid) + "-";+ child.key = child.key == null+ ? child.isComment+ ? id + 'comment'+ : id + child.tag+ : isPrimitive(child.key)+ ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)+ : child.key;++ var data = (child.data || (child.data = {})).transition = extractTransitionData(this);+ var oldRawChild = this._vnode;+ var oldChild = getRealChild(oldRawChild);++ // mark v-show+ // so that the transition module can hand over the control to the directive+ if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {+ child.data.show = true;+ }++ if (+ oldChild &&+ oldChild.data &&+ !isSameChild(child, oldChild) &&+ !isAsyncPlaceholder(oldChild) &&+ // #6687 component root is a comment node+ !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)+ ) {+ // replace old child transition data with fresh one+ // important for dynamic transitions!+ var oldData = oldChild.data.transition = extend({}, data);+ // handle transition mode+ if (mode === 'out-in') {+ // return placeholder node and queue update when leave finishes+ this._leaving = true;+ mergeVNodeHook(oldData, 'afterLeave', function () {+ this$1._leaving = false;+ this$1.$forceUpdate();+ });+ return placeholder(h, rawChild)+ } else if (mode === 'in-out') {+ if (isAsyncPlaceholder(child)) {+ return oldRawChild+ }+ var delayedLeave;+ var performLeave = function () { delayedLeave(); };+ mergeVNodeHook(data, 'afterEnter', performLeave);+ mergeVNodeHook(data, 'enterCancelled', performLeave);+ mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });+ }+ }++ return rawChild+ }+}++/* */++// Provides transition support for list items.+// supports move transitions using the FLIP technique.++// Because the vdom's children update algorithm is "unstable" - i.e.+// it doesn't guarantee the relative positioning of removed elements,+// we force transition-group to update its children into two passes:+// in the first pass, we remove all nodes that need to be removed,+// triggering their leaving transition; in the second pass, we insert/move+// into the final desired state. This way in the second pass removed+// nodes will remain where they should be.++var props = extend({+ tag: String,+ moveClass: String+}, transitionProps);++delete props.mode;++var TransitionGroup = {+ props: props,++ render: function render (h) {+ var tag = this.tag || this.$vnode.data.tag || 'span';+ var map = Object.create(null);+ var prevChildren = this.prevChildren = this.children;+ var rawChildren = this.$slots.default || [];+ var children = this.children = [];+ var transitionData = extractTransitionData(this);++ for (var i = 0; i < rawChildren.length; i++) {+ var c = rawChildren[i];+ if (c.tag) {+ if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {+ children.push(c);+ map[c.key] = c+ ;(c.data || (c.data = {})).transition = transitionData;+ } else {+ var opts = c.componentOptions;+ var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;+ warn(("<transition-group> children must be keyed: <" + name + ">"));+ }+ }+ }++ if (prevChildren) {+ var kept = [];+ var removed = [];+ for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {+ var c$1 = prevChildren[i$1];+ c$1.data.transition = transitionData;+ c$1.data.pos = c$1.elm.getBoundingClientRect();+ if (map[c$1.key]) {+ kept.push(c$1);+ } else {+ removed.push(c$1);+ }+ }+ this.kept = h(tag, null, kept);+ this.removed = removed;+ }++ return h(tag, null, children)+ },++ beforeUpdate: function beforeUpdate () {+ // force removing pass+ this.__patch__(+ this._vnode,+ this.kept,+ false, // hydrating+ true // removeOnly (!important, avoids unnecessary moves)+ );+ this._vnode = this.kept;+ },++ updated: function updated () {+ var children = this.prevChildren;+ var moveClass = this.moveClass || ((this.name || 'v') + '-move');+ if (!children.length || !this.hasMove(children[0].elm, moveClass)) {+ return+ }++ // we divide the work into three loops to avoid mixing DOM reads and writes+ // in each iteration - which helps prevent layout thrashing.+ children.forEach(callPendingCbs);+ children.forEach(recordPosition);+ children.forEach(applyTranslation);++ // force reflow to put everything in position+ // assign to this to avoid being removed in tree-shaking+ // $flow-disable-line+ this._reflow = document.body.offsetHeight;++ children.forEach(function (c) {+ if (c.data.moved) {+ var el = c.elm;+ var s = el.style;+ addTransitionClass(el, moveClass);+ s.transform = s.WebkitTransform = s.transitionDuration = '';+ el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {+ if (!e || /transform$/.test(e.propertyName)) {+ el.removeEventListener(transitionEndEvent, cb);+ el._moveCb = null;+ removeTransitionClass(el, moveClass);+ }+ });+ }+ });+ },++ methods: {+ hasMove: function hasMove (el, moveClass) {+ /* istanbul ignore if */+ if (!hasTransition) {+ return false+ }+ /* istanbul ignore if */+ if (this._hasMove) {+ return this._hasMove+ }+ // Detect whether an element with the move class applied has+ // CSS transitions. Since the element may be inside an entering+ // transition at this very moment, we make a clone of it and remove+ // all other transition classes applied to ensure only the move class+ // is applied.+ var clone = el.cloneNode();+ if (el._transitionClasses) {+ el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });+ }+ addClass(clone, moveClass);+ clone.style.display = 'none';+ this.$el.appendChild(clone);+ var info = getTransitionInfo(clone);+ this.$el.removeChild(clone);+ return (this._hasMove = info.hasTransform)+ }+ }+}++function callPendingCbs (c) {+ /* istanbul ignore if */+ if (c.elm._moveCb) {+ c.elm._moveCb();+ }+ /* istanbul ignore if */+ if (c.elm._enterCb) {+ c.elm._enterCb();+ }+}++function recordPosition (c) {+ c.data.newPos = c.elm.getBoundingClientRect();+}++function applyTranslation (c) {+ var oldPos = c.data.pos;+ var newPos = c.data.newPos;+ var dx = oldPos.left - newPos.left;+ var dy = oldPos.top - newPos.top;+ if (dx || dy) {+ c.data.moved = true;+ var s = c.elm.style;+ s.transform = s.WebkitTransform = "translate(" + dx + "px," + dy + "px)";+ s.transitionDuration = '0s';+ }+}++var platformComponents = {+ Transition: Transition,+ TransitionGroup: TransitionGroup+}++/* */++// install platform specific utils+Vue.config.mustUseProp = mustUseProp;+Vue.config.isReservedTag = isReservedTag;+Vue.config.isReservedAttr = isReservedAttr;+Vue.config.getTagNamespace = getTagNamespace;+Vue.config.isUnknownElement = isUnknownElement;++// install platform runtime directives & components+extend(Vue.options.directives, platformDirectives);+extend(Vue.options.components, platformComponents);++// install platform patch function+Vue.prototype.__patch__ = inBrowser ? patch : noop;++// public mount method+Vue.prototype.$mount = function (+ el,+ hydrating+) {+ el = el && inBrowser ? query(el) : undefined;+ return mountComponent(this, el, hydrating)+};++// devtools global hook+/* istanbul ignore next */+if (inBrowser) {+ setTimeout(function () {+ if (config.devtools) {+ if (devtools) {+ devtools.emit('init', Vue);+ } else if (+ "development" !== 'production' &&+ "development" !== 'test' &&+ isChrome+ ) {+ console[console.info ? 'info' : 'log'](+ 'Download the Vue Devtools extension for a better development experience:\n' ++ 'https://github.com/vuejs/vue-devtools'+ );+ }+ }+ if ("development" !== 'production' &&+ "development" !== 'test' &&+ config.productionTip !== false &&+ typeof console !== 'undefined'+ ) {+ console[console.info ? 'info' : 'log'](+ "You are running Vue in development mode.\n" ++ "Make sure to turn on production mode when deploying for production.\n" ++ "See more tips at https://vuejs.org/guide/deployment.html"+ );+ }+ }, 0);+}++/* */++var defaultTagRE = /\{\{((?:.|\n)+?)\}\}/g;+var regexEscapeRE = /[-.*+?^${}()|[\]\/\\]/g;++var buildRegex = cached(function (delimiters) {+ var open = delimiters[0].replace(regexEscapeRE, '\\$&');+ var close = delimiters[1].replace(regexEscapeRE, '\\$&');+ return new RegExp(open + '((?:.|\\n)+?)' + close, 'g')+});++++function parseText (+ text,+ delimiters+) {+ var tagRE = delimiters ? buildRegex(delimiters) : defaultTagRE;+ if (!tagRE.test(text)) {+ return+ }+ var tokens = [];+ var rawTokens = [];+ var lastIndex = tagRE.lastIndex = 0;+ var match, index, tokenValue;+ while ((match = tagRE.exec(text))) {+ index = match.index;+ // push text token+ if (index > lastIndex) {+ rawTokens.push(tokenValue = text.slice(lastIndex, index));+ tokens.push(JSON.stringify(tokenValue));+ }+ // tag token+ var exp = parseFilters(match[1].trim());+ tokens.push(("_s(" + exp + ")"));+ rawTokens.push({ '@binding': exp });+ lastIndex = index + match[0].length;+ }+ if (lastIndex < text.length) {+ rawTokens.push(tokenValue = text.slice(lastIndex));+ tokens.push(JSON.stringify(tokenValue));+ }+ return {+ expression: tokens.join('+'),+ tokens: rawTokens+ }+}++/* */++function transformNode (el, options) {+ var warn = options.warn || baseWarn;+ var staticClass = getAndRemoveAttr(el, 'class');+ if ("development" !== 'production' && staticClass) {+ var res = parseText(staticClass, options.delimiters);+ if (res) {+ warn(+ "class=\"" + staticClass + "\": " ++ 'Interpolation inside attributes has been removed. ' ++ 'Use v-bind or the colon shorthand instead. For example, ' ++ 'instead of <div class="{{ val }}">, use <div :class="val">.'+ );+ }+ }+ if (staticClass) {+ el.staticClass = JSON.stringify(staticClass);+ }+ var classBinding = getBindingAttr(el, 'class', false /* getStatic */);+ if (classBinding) {+ el.classBinding = classBinding;+ }+}++function genData (el) {+ var data = '';+ if (el.staticClass) {+ data += "staticClass:" + (el.staticClass) + ",";+ }+ if (el.classBinding) {+ data += "class:" + (el.classBinding) + ",";+ }+ return data+}++var klass$1 = {+ staticKeys: ['staticClass'],+ transformNode: transformNode,+ genData: genData+}++/* */++function transformNode$1 (el, options) {+ var warn = options.warn || baseWarn;+ var staticStyle = getAndRemoveAttr(el, 'style');+ if (staticStyle) {+ /* istanbul ignore if */+ {+ var res = parseText(staticStyle, options.delimiters);+ if (res) {+ warn(+ "style=\"" + staticStyle + "\": " ++ 'Interpolation inside attributes has been removed. ' ++ 'Use v-bind or the colon shorthand instead. For example, ' ++ 'instead of <div style="{{ val }}">, use <div :style="val">.'+ );+ }+ }+ el.staticStyle = JSON.stringify(parseStyleText(staticStyle));+ }++ var styleBinding = getBindingAttr(el, 'style', false /* getStatic */);+ if (styleBinding) {+ el.styleBinding = styleBinding;+ }+}++function genData$1 (el) {+ var data = '';+ if (el.staticStyle) {+ data += "staticStyle:" + (el.staticStyle) + ",";+ }+ if (el.styleBinding) {+ data += "style:(" + (el.styleBinding) + "),";+ }+ return data+}++var style$1 = {+ staticKeys: ['staticStyle'],+ transformNode: transformNode$1,+ genData: genData$1+}++/* */++var decoder;++var he = {+ decode: function decode (html) {+ decoder = decoder || document.createElement('div');+ decoder.innerHTML = html;+ return decoder.textContent+ }+}++/* */++var isUnaryTag = makeMap(+ 'area,base,br,col,embed,frame,hr,img,input,isindex,keygen,' ++ 'link,meta,param,source,track,wbr'+);++// Elements that you can, intentionally, leave open+// (and which close themselves)+var canBeLeftOpenTag = makeMap(+ 'colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source'+);++// HTML5 tags https://html.spec.whatwg.org/multipage/indices.html#elements-3+// Phrasing Content https://html.spec.whatwg.org/multipage/dom.html#phrasing-content+var isNonPhrasingTag = makeMap(+ 'address,article,aside,base,blockquote,body,caption,col,colgroup,dd,' ++ 'details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,' ++ 'h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,' ++ 'optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,' ++ 'title,tr,track'+);++/**+ * Not type-checking this file because it's mostly vendor code.+ */++/*!+ * HTML Parser By John Resig (ejohn.org)+ * Modified by Juriy "kangax" Zaytsev+ * Original code by Erik Arvidsson, Mozilla Public License+ * http://erik.eae.net/simplehtmlparser/simplehtmlparser.js+ */++// Regular Expressions for parsing tags and attributes+var attribute = /^\s*([^\s"'<>\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/;+// could use https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName+// but for Vue templates we can enforce a simple charset+var ncname = '[a-zA-Z_][\\w\\-\\.]*';+var qnameCapture = "((?:" + ncname + "\\:)?" + ncname + ")";+var startTagOpen = new RegExp(("^<" + qnameCapture));+var startTagClose = /^\s*(\/?)>/;+var endTag = new RegExp(("^<\\/" + qnameCapture + "[^>]*>"));+var doctype = /^<!DOCTYPE [^>]+>/i;+// #7298: escape - to avoid being pased as HTML comment when inlined in page+var comment = /^<!\--/;+var conditionalComment = /^<!\[/;++var IS_REGEX_CAPTURING_BROKEN = false;+'x'.replace(/x(.)?/g, function (m, g) {+ IS_REGEX_CAPTURING_BROKEN = g === '';+});++// Special Elements (can contain anything)+var isPlainTextElement = makeMap('script,style,textarea', true);+var reCache = {};++var decodingMap = {+ '<': '<',+ '>': '>',+ '"': '"',+ '&': '&',+ ' ': '\n',+ '	': '\t'+};+var encodedAttr = /&(?:lt|gt|quot|amp);/g;+var encodedAttrWithNewLines = /&(?:lt|gt|quot|amp|#10|#9);/g;++// #5992+var isIgnoreNewlineTag = makeMap('pre,textarea', true);+var shouldIgnoreFirstNewline = function (tag, html) { return tag && isIgnoreNewlineTag(tag) && html[0] === '\n'; };++function decodeAttr (value, shouldDecodeNewlines) {+ var re = shouldDecodeNewlines ? encodedAttrWithNewLines : encodedAttr;+ return value.replace(re, function (match) { return decodingMap[match]; })+}++function parseHTML (html, options) {+ var stack = [];+ var expectHTML = options.expectHTML;+ var isUnaryTag$$1 = options.isUnaryTag || no;+ var canBeLeftOpenTag$$1 = options.canBeLeftOpenTag || no;+ var index = 0;+ var last, lastTag;+ while (html) {+ last = html;+ // Make sure we're not in a plaintext content element like script/style+ if (!lastTag || !isPlainTextElement(lastTag)) {+ var textEnd = html.indexOf('<');+ if (textEnd === 0) {+ // Comment:+ if (comment.test(html)) {+ var commentEnd = html.indexOf('-->');++ if (commentEnd >= 0) {+ if (options.shouldKeepComment) {+ options.comment(html.substring(4, commentEnd));+ }+ advance(commentEnd + 3);+ continue+ }+ }++ // http://en.wikipedia.org/wiki/Conditional_comment#Downlevel-revealed_conditional_comment+ if (conditionalComment.test(html)) {+ var conditionalEnd = html.indexOf(']>');++ if (conditionalEnd >= 0) {+ advance(conditionalEnd + 2);+ continue+ }+ }++ // Doctype:+ var doctypeMatch = html.match(doctype);+ if (doctypeMatch) {+ advance(doctypeMatch[0].length);+ continue+ }++ // End tag:+ var endTagMatch = html.match(endTag);+ if (endTagMatch) {+ var curIndex = index;+ advance(endTagMatch[0].length);+ parseEndTag(endTagMatch[1], curIndex, index);+ continue+ }++ // Start tag:+ var startTagMatch = parseStartTag();+ if (startTagMatch) {+ handleStartTag(startTagMatch);+ if (shouldIgnoreFirstNewline(lastTag, html)) {+ advance(1);+ }+ continue+ }+ }++ var text = (void 0), rest = (void 0), next = (void 0);+ if (textEnd >= 0) {+ rest = html.slice(textEnd);+ while (+ !endTag.test(rest) &&+ !startTagOpen.test(rest) &&+ !comment.test(rest) &&+ !conditionalComment.test(rest)+ ) {+ // < in plain text, be forgiving and treat it as text+ next = rest.indexOf('<', 1);+ if (next < 0) { break }+ textEnd += next;+ rest = html.slice(textEnd);+ }+ text = html.substring(0, textEnd);+ advance(textEnd);+ }++ if (textEnd < 0) {+ text = html;+ html = '';+ }++ if (options.chars && text) {+ options.chars(text);+ }+ } else {+ var endTagLength = 0;+ var stackedTag = lastTag.toLowerCase();+ var reStackedTag = reCache[stackedTag] || (reCache[stackedTag] = new RegExp('([\\s\\S]*?)(</' + stackedTag + '[^>]*>)', 'i'));+ var rest$1 = html.replace(reStackedTag, function (all, text, endTag) {+ endTagLength = endTag.length;+ if (!isPlainTextElement(stackedTag) && stackedTag !== 'noscript') {+ text = text+ .replace(/<!\--([\s\S]*?)-->/g, '$1') // #7298+ .replace(/<!\[CDATA\[([\s\S]*?)]]>/g, '$1');+ }+ if (shouldIgnoreFirstNewline(stackedTag, text)) {+ text = text.slice(1);+ }+ if (options.chars) {+ options.chars(text);+ }+ return ''+ });+ index += html.length - rest$1.length;+ html = rest$1;+ parseEndTag(stackedTag, index - endTagLength, index);+ }++ if (html === last) {+ options.chars && options.chars(html);+ if ("development" !== 'production' && !stack.length && options.warn) {+ options.warn(("Mal-formatted tag at end of template: \"" + html + "\""));+ }+ break+ }+ }++ // Clean up any remaining tags+ parseEndTag();++ function advance (n) {+ index += n;+ html = html.substring(n);+ }++ function parseStartTag () {+ var start = html.match(startTagOpen);+ if (start) {+ var match = {+ tagName: start[1],+ attrs: [],+ start: index+ };+ advance(start[0].length);+ var end, attr;+ while (!(end = html.match(startTagClose)) && (attr = html.match(attribute))) {+ advance(attr[0].length);+ match.attrs.push(attr);+ }+ if (end) {+ match.unarySlash = end[1];+ advance(end[0].length);+ match.end = index;+ return match+ }+ }+ }++ function handleStartTag (match) {+ var tagName = match.tagName;+ var unarySlash = match.unarySlash;++ if (expectHTML) {+ if (lastTag === 'p' && isNonPhrasingTag(tagName)) {+ parseEndTag(lastTag);+ }+ if (canBeLeftOpenTag$$1(tagName) && lastTag === tagName) {+ parseEndTag(tagName);+ }+ }++ var unary = isUnaryTag$$1(tagName) || !!unarySlash;++ var l = match.attrs.length;+ var attrs = new Array(l);+ for (var i = 0; i < l; i++) {+ var args = match.attrs[i];+ // hackish work around FF bug https://bugzilla.mozilla.org/show_bug.cgi?id=369778+ if (IS_REGEX_CAPTURING_BROKEN && args[0].indexOf('""') === -1) {+ if (args[3] === '') { delete args[3]; }+ if (args[4] === '') { delete args[4]; }+ if (args[5] === '') { delete args[5]; }+ }+ var value = args[3] || args[4] || args[5] || '';+ var shouldDecodeNewlines = tagName === 'a' && args[1] === 'href'+ ? options.shouldDecodeNewlinesForHref+ : options.shouldDecodeNewlines;+ attrs[i] = {+ name: args[1],+ value: decodeAttr(value, shouldDecodeNewlines)+ };+ }++ if (!unary) {+ stack.push({ tag: tagName, lowerCasedTag: tagName.toLowerCase(), attrs: attrs });+ lastTag = tagName;+ }++ if (options.start) {+ options.start(tagName, attrs, unary, match.start, match.end);+ }+ }++ function parseEndTag (tagName, start, end) {+ var pos, lowerCasedTagName;+ if (start == null) { start = index; }+ if (end == null) { end = index; }++ if (tagName) {+ lowerCasedTagName = tagName.toLowerCase();+ }++ // Find the closest opened tag of the same type+ if (tagName) {+ for (pos = stack.length - 1; pos >= 0; pos--) {+ if (stack[pos].lowerCasedTag === lowerCasedTagName) {+ break+ }+ }+ } else {+ // If no tag name is provided, clean shop+ pos = 0;+ }++ if (pos >= 0) {+ // Close all the open elements, up the stack+ for (var i = stack.length - 1; i >= pos; i--) {+ if ("development" !== 'production' &&+ (i > pos || !tagName) &&+ options.warn+ ) {+ options.warn(+ ("tag <" + (stack[i].tag) + "> has no matching end tag.")+ );+ }+ if (options.end) {+ options.end(stack[i].tag, start, end);+ }+ }++ // Remove the open elements from the stack+ stack.length = pos;+ lastTag = pos && stack[pos - 1].tag;+ } else if (lowerCasedTagName === 'br') {+ if (options.start) {+ options.start(tagName, [], true, start, end);+ }+ } else if (lowerCasedTagName === 'p') {+ if (options.start) {+ options.start(tagName, [], false, start, end);+ }+ if (options.end) {+ options.end(tagName, start, end);+ }+ }+ }+}++/* */++var onRE = /^@|^v-on:/;+var dirRE = /^v-|^@|^:/;+var forAliasRE = /([^]*?)\s+(?:in|of)\s+([^]*)/;+var forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;+var stripParensRE = /^\(|\)$/g;++var argRE = /:(.*)$/;+var bindRE = /^:|^v-bind:/;+var modifierRE = /\.[^.]+/g;++var decodeHTMLCached = cached(he.decode);++// configurable state+var warn$2;+var delimiters;+var transforms;+var preTransforms;+var postTransforms;+var platformIsPreTag;+var platformMustUseProp;+var platformGetTagNamespace;++++function createASTElement (+ tag,+ attrs,+ parent+) {+ return {+ type: 1,+ tag: tag,+ attrsList: attrs,+ attrsMap: makeAttrsMap(attrs),+ parent: parent,+ children: []+ }+}++/**+ * Convert HTML string to AST.+ */+function parse (+ template,+ options+) {+ warn$2 = options.warn || baseWarn;++ platformIsPreTag = options.isPreTag || no;+ platformMustUseProp = options.mustUseProp || no;+ platformGetTagNamespace = options.getTagNamespace || no;++ transforms = pluckModuleFunction(options.modules, 'transformNode');+ preTransforms = pluckModuleFunction(options.modules, 'preTransformNode');+ postTransforms = pluckModuleFunction(options.modules, 'postTransformNode');++ delimiters = options.delimiters;++ var stack = [];+ var preserveWhitespace = options.preserveWhitespace !== false;+ var root;+ var currentParent;+ var inVPre = false;+ var inPre = false;+ var warned = false;++ function warnOnce (msg) {+ if (!warned) {+ warned = true;+ warn$2(msg);+ }+ }++ function closeElement (element) {+ // check pre state+ if (element.pre) {+ inVPre = false;+ }+ if (platformIsPreTag(element.tag)) {+ inPre = false;+ }+ // apply post-transforms+ for (var i = 0; i < postTransforms.length; i++) {+ postTransforms[i](element, options);+ }+ }++ parseHTML(template, {+ warn: warn$2,+ expectHTML: options.expectHTML,+ isUnaryTag: options.isUnaryTag,+ canBeLeftOpenTag: options.canBeLeftOpenTag,+ shouldDecodeNewlines: options.shouldDecodeNewlines,+ shouldDecodeNewlinesForHref: options.shouldDecodeNewlinesForHref,+ shouldKeepComment: options.comments,+ start: function start (tag, attrs, unary) {+ // check namespace.+ // inherit parent ns if there is one+ var ns = (currentParent && currentParent.ns) || platformGetTagNamespace(tag);++ // handle IE svg bug+ /* istanbul ignore if */+ if (isIE && ns === 'svg') {+ attrs = guardIESVGBug(attrs);+ }++ var element = createASTElement(tag, attrs, currentParent);+ if (ns) {+ element.ns = ns;+ }++ if (isForbiddenTag(element) && !isServerRendering()) {+ element.forbidden = true;+ "development" !== 'production' && warn$2(+ 'Templates should only be responsible for mapping the state to the ' ++ 'UI. Avoid placing tags with side-effects in your templates, such as ' ++ "<" + tag + ">" + ', as they will not be parsed.'+ );+ }++ // apply pre-transforms+ for (var i = 0; i < preTransforms.length; i++) {+ element = preTransforms[i](element, options) || element;+ }++ if (!inVPre) {+ processPre(element);+ if (element.pre) {+ inVPre = true;+ }+ }+ if (platformIsPreTag(element.tag)) {+ inPre = true;+ }+ if (inVPre) {+ processRawAttrs(element);+ } else if (!element.processed) {+ // structural directives+ processFor(element);+ processIf(element);+ processOnce(element);+ // element-scope stuff+ processElement(element, options);+ }++ function checkRootConstraints (el) {+ {+ if (el.tag === 'slot' || el.tag === 'template') {+ warnOnce(+ "Cannot use <" + (el.tag) + "> as component root element because it may " ++ 'contain multiple nodes.'+ );+ }+ if (el.attrsMap.hasOwnProperty('v-for')) {+ warnOnce(+ 'Cannot use v-for on stateful component root element because ' ++ 'it renders multiple elements.'+ );+ }+ }+ }++ // tree management+ if (!root) {+ root = element;+ checkRootConstraints(root);+ } else if (!stack.length) {+ // allow root elements with v-if, v-else-if and v-else+ if (root.if && (element.elseif || element.else)) {+ checkRootConstraints(element);+ addIfCondition(root, {+ exp: element.elseif,+ block: element+ });+ } else {+ warnOnce(+ "Component template should contain exactly one root element. " ++ "If you are using v-if on multiple elements, " ++ "use v-else-if to chain them instead."+ );+ }+ }+ if (currentParent && !element.forbidden) {+ if (element.elseif || element.else) {+ processIfConditions(element, currentParent);+ } else if (element.slotScope) { // scoped slot+ currentParent.plain = false;+ var name = element.slotTarget || '"default"';(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[name] = element;+ } else {+ currentParent.children.push(element);+ element.parent = currentParent;+ }+ }+ if (!unary) {+ currentParent = element;+ stack.push(element);+ } else {+ closeElement(element);+ }+ },++ end: function end () {+ // remove trailing whitespace+ var element = stack[stack.length - 1];+ var lastNode = element.children[element.children.length - 1];+ if (lastNode && lastNode.type === 3 && lastNode.text === ' ' && !inPre) {+ element.children.pop();+ }+ // pop stack+ stack.length -= 1;+ currentParent = stack[stack.length - 1];+ closeElement(element);+ },++ chars: function chars (text) {+ if (!currentParent) {+ {+ if (text === template) {+ warnOnce(+ 'Component template requires a root element, rather than just text.'+ );+ } else if ((text = text.trim())) {+ warnOnce(+ ("text \"" + text + "\" outside root element will be ignored.")+ );+ }+ }+ return+ }+ // IE textarea placeholder bug+ /* istanbul ignore if */+ if (isIE &&+ currentParent.tag === 'textarea' &&+ currentParent.attrsMap.placeholder === text+ ) {+ return+ }+ var children = currentParent.children;+ text = inPre || text.trim()+ ? isTextTag(currentParent) ? text : decodeHTMLCached(text)+ // only preserve whitespace if its not right after a starting tag+ : preserveWhitespace && children.length ? ' ' : '';+ if (text) {+ var res;+ if (!inVPre && text !== ' ' && (res = parseText(text, delimiters))) {+ children.push({+ type: 2,+ expression: res.expression,+ tokens: res.tokens,+ text: text+ });+ } else if (text !== ' ' || !children.length || children[children.length - 1].text !== ' ') {+ children.push({+ type: 3,+ text: text+ });+ }+ }+ },+ comment: function comment (text) {+ currentParent.children.push({+ type: 3,+ text: text,+ isComment: true+ });+ }+ });+ return root+}++function processPre (el) {+ if (getAndRemoveAttr(el, 'v-pre') != null) {+ el.pre = true;+ }+}++function processRawAttrs (el) {+ var l = el.attrsList.length;+ if (l) {+ var attrs = el.attrs = new Array(l);+ for (var i = 0; i < l; i++) {+ attrs[i] = {+ name: el.attrsList[i].name,+ value: JSON.stringify(el.attrsList[i].value)+ };+ }+ } else if (!el.pre) {+ // non root node in pre blocks with no attributes+ el.plain = true;+ }+}++function processElement (element, options) {+ processKey(element);++ // determine whether this is a plain element after+ // removing structural attributes+ element.plain = !element.key && !element.attrsList.length;++ processRef(element);+ processSlot(element);+ processComponent(element);+ for (var i = 0; i < transforms.length; i++) {+ element = transforms[i](element, options) || element;+ }+ processAttrs(element);+}++function processKey (el) {+ var exp = getBindingAttr(el, 'key');+ if (exp) {+ if ("development" !== 'production' && el.tag === 'template') {+ warn$2("<template> cannot be keyed. Place the key on real elements instead.");+ }+ el.key = exp;+ }+}++function processRef (el) {+ var ref = getBindingAttr(el, 'ref');+ if (ref) {+ el.ref = ref;+ el.refInFor = checkInFor(el);+ }+}++function processFor (el) {+ var exp;+ if ((exp = getAndRemoveAttr(el, 'v-for'))) {+ var res = parseFor(exp);+ if (res) {+ extend(el, res);+ } else {+ warn$2(+ ("Invalid v-for expression: " + exp)+ );+ }+ }+}++++function parseFor (exp) {+ var inMatch = exp.match(forAliasRE);+ if (!inMatch) { return }+ var res = {};+ res.for = inMatch[2].trim();+ var alias = inMatch[1].trim().replace(stripParensRE, '');+ var iteratorMatch = alias.match(forIteratorRE);+ if (iteratorMatch) {+ res.alias = alias.replace(forIteratorRE, '');+ res.iterator1 = iteratorMatch[1].trim();+ if (iteratorMatch[2]) {+ res.iterator2 = iteratorMatch[2].trim();+ }+ } else {+ res.alias = alias;+ }+ return res+}++function processIf (el) {+ var exp = getAndRemoveAttr(el, 'v-if');+ if (exp) {+ el.if = exp;+ addIfCondition(el, {+ exp: exp,+ block: el+ });+ } else {+ if (getAndRemoveAttr(el, 'v-else') != null) {+ el.else = true;+ }+ var elseif = getAndRemoveAttr(el, 'v-else-if');+ if (elseif) {+ el.elseif = elseif;+ }+ }+}++function processIfConditions (el, parent) {+ var prev = findPrevElement(parent.children);+ if (prev && prev.if) {+ addIfCondition(prev, {+ exp: el.elseif,+ block: el+ });+ } else {+ warn$2(+ "v-" + (el.elseif ? ('else-if="' + el.elseif + '"') : 'else') + " " ++ "used on element <" + (el.tag) + "> without corresponding v-if."+ );+ }+}++function findPrevElement (children) {+ var i = children.length;+ while (i--) {+ if (children[i].type === 1) {+ return children[i]+ } else {+ if ("development" !== 'production' && children[i].text !== ' ') {+ warn$2(+ "text \"" + (children[i].text.trim()) + "\" between v-if and v-else(-if) " ++ "will be ignored."+ );+ }+ children.pop();+ }+ }+}++function addIfCondition (el, condition) {+ if (!el.ifConditions) {+ el.ifConditions = [];+ }+ el.ifConditions.push(condition);+}++function processOnce (el) {+ var once$$1 = getAndRemoveAttr(el, 'v-once');+ if (once$$1 != null) {+ el.once = true;+ }+}++function processSlot (el) {+ if (el.tag === 'slot') {+ el.slotName = getBindingAttr(el, 'name');+ if ("development" !== 'production' && el.key) {+ warn$2(+ "`key` does not work on <slot> because slots are abstract outlets " ++ "and can possibly expand into multiple elements. " ++ "Use the key on a wrapping element instead."+ );+ }+ } else {+ var slotScope;+ if (el.tag === 'template') {+ slotScope = getAndRemoveAttr(el, 'scope');+ /* istanbul ignore if */+ if ("development" !== 'production' && slotScope) {+ warn$2(+ "the \"scope\" attribute for scoped slots have been deprecated and " ++ "replaced by \"slot-scope\" since 2.5. The new \"slot-scope\" attribute " ++ "can also be used on plain elements in addition to <template> to " ++ "denote scoped slots.",+ true+ );+ }+ el.slotScope = slotScope || getAndRemoveAttr(el, 'slot-scope');+ } else if ((slotScope = getAndRemoveAttr(el, 'slot-scope'))) {+ /* istanbul ignore if */+ if ("development" !== 'production' && el.attrsMap['v-for']) {+ warn$2(+ "Ambiguous combined usage of slot-scope and v-for on <" + (el.tag) + "> " ++ "(v-for takes higher priority). Use a wrapper <template> for the " ++ "scoped slot to make it clearer.",+ true+ );+ }+ el.slotScope = slotScope;+ }+ var slotTarget = getBindingAttr(el, 'slot');+ if (slotTarget) {+ el.slotTarget = slotTarget === '""' ? '"default"' : slotTarget;+ // preserve slot as an attribute for native shadow DOM compat+ // only for non-scoped slots.+ if (el.tag !== 'template' && !el.slotScope) {+ addAttr(el, 'slot', slotTarget);+ }+ }+ }+}++function processComponent (el) {+ var binding;+ if ((binding = getBindingAttr(el, 'is'))) {+ el.component = binding;+ }+ if (getAndRemoveAttr(el, 'inline-template') != null) {+ el.inlineTemplate = true;+ }+}++function processAttrs (el) {+ var list = el.attrsList;+ var i, l, name, rawName, value, modifiers, isProp;+ for (i = 0, l = list.length; i < l; i++) {+ name = rawName = list[i].name;+ value = list[i].value;+ if (dirRE.test(name)) {+ // mark element as dynamic+ el.hasBindings = true;+ // modifiers+ modifiers = parseModifiers(name);+ if (modifiers) {+ name = name.replace(modifierRE, '');+ }+ if (bindRE.test(name)) { // v-bind+ name = name.replace(bindRE, '');+ value = parseFilters(value);+ isProp = false;+ if (modifiers) {+ if (modifiers.prop) {+ isProp = true;+ name = camelize(name);+ if (name === 'innerHtml') { name = 'innerHTML'; }+ }+ if (modifiers.camel) {+ name = camelize(name);+ }+ if (modifiers.sync) {+ addHandler(+ el,+ ("update:" + (camelize(name))),+ genAssignmentCode(value, "$event")+ );+ }+ }+ if (isProp || (+ !el.component && platformMustUseProp(el.tag, el.attrsMap.type, name)+ )) {+ addProp(el, name, value);+ } else {+ addAttr(el, name, value);+ }+ } else if (onRE.test(name)) { // v-on+ name = name.replace(onRE, '');+ addHandler(el, name, value, modifiers, false, warn$2);+ } else { // normal directives+ name = name.replace(dirRE, '');+ // parse arg+ var argMatch = name.match(argRE);+ var arg = argMatch && argMatch[1];+ if (arg) {+ name = name.slice(0, -(arg.length + 1));+ }+ addDirective(el, name, rawName, value, arg, modifiers);+ if ("development" !== 'production' && name === 'model') {+ checkForAliasModel(el, value);+ }+ }+ } else {+ // literal attribute+ {+ var res = parseText(value, delimiters);+ if (res) {+ warn$2(+ name + "=\"" + value + "\": " ++ 'Interpolation inside attributes has been removed. ' ++ 'Use v-bind or the colon shorthand instead. For example, ' ++ 'instead of <div id="{{ val }}">, use <div :id="val">.'+ );+ }+ }+ addAttr(el, name, JSON.stringify(value));+ // #6887 firefox doesn't update muted state if set via attribute+ // even immediately after element creation+ if (!el.component &&+ name === 'muted' &&+ platformMustUseProp(el.tag, el.attrsMap.type, name)) {+ addProp(el, name, 'true');+ }+ }+ }+}++function checkInFor (el) {+ var parent = el;+ while (parent) {+ if (parent.for !== undefined) {+ return true+ }+ parent = parent.parent;+ }+ return false+}++function parseModifiers (name) {+ var match = name.match(modifierRE);+ if (match) {+ var ret = {};+ match.forEach(function (m) { ret[m.slice(1)] = true; });+ return ret+ }+}++function makeAttrsMap (attrs) {+ var map = {};+ for (var i = 0, l = attrs.length; i < l; i++) {+ if (+ "development" !== 'production' &&+ map[attrs[i].name] && !isIE && !isEdge+ ) {+ warn$2('duplicate attribute: ' + attrs[i].name);+ }+ map[attrs[i].name] = attrs[i].value;+ }+ return map+}++// for script (e.g. type="x/template") or style, do not decode content+function isTextTag (el) {+ return el.tag === 'script' || el.tag === 'style'+}++function isForbiddenTag (el) {+ return (+ el.tag === 'style' ||+ (el.tag === 'script' && (+ !el.attrsMap.type ||+ el.attrsMap.type === 'text/javascript'+ ))+ )+}++var ieNSBug = /^xmlns:NS\d+/;+var ieNSPrefix = /^NS\d+:/;++/* istanbul ignore next */+function guardIESVGBug (attrs) {+ var res = [];+ for (var i = 0; i < attrs.length; i++) {+ var attr = attrs[i];+ if (!ieNSBug.test(attr.name)) {+ attr.name = attr.name.replace(ieNSPrefix, '');+ res.push(attr);+ }+ }+ return res+}++function checkForAliasModel (el, value) {+ var _el = el;+ while (_el) {+ if (_el.for && _el.alias === value) {+ warn$2(+ "<" + (el.tag) + " v-model=\"" + value + "\">: " ++ "You are binding v-model directly to a v-for iteration alias. " ++ "This will not be able to modify the v-for source array because " ++ "writing to the alias is like modifying a function local variable. " ++ "Consider using an array of objects and use v-model on an object property instead."+ );+ }+ _el = _el.parent;+ }+}++/* */++/**+ * Expand input[v-model] with dyanmic type bindings into v-if-else chains+ * Turn this:+ * <input v-model="data[type]" :type="type">+ * into this:+ * <input v-if="type === 'checkbox'" type="checkbox" v-model="data[type]">+ * <input v-else-if="type === 'radio'" type="radio" v-model="data[type]">+ * <input v-else :type="type" v-model="data[type]">+ */++function preTransformNode (el, options) {+ if (el.tag === 'input') {+ var map = el.attrsMap;+ if (!map['v-model']) {+ return+ }++ var typeBinding;+ if (map[':type'] || map['v-bind:type']) {+ typeBinding = getBindingAttr(el, 'type');+ }+ if (!map.type && !typeBinding && map['v-bind']) {+ typeBinding = "(" + (map['v-bind']) + ").type";+ }++ if (typeBinding) {+ var ifCondition = getAndRemoveAttr(el, 'v-if', true);+ var ifConditionExtra = ifCondition ? ("&&(" + ifCondition + ")") : "";+ var hasElse = getAndRemoveAttr(el, 'v-else', true) != null;+ var elseIfCondition = getAndRemoveAttr(el, 'v-else-if', true);+ // 1. checkbox+ var branch0 = cloneASTElement(el);+ // process for on the main node+ processFor(branch0);+ addRawAttr(branch0, 'type', 'checkbox');+ processElement(branch0, options);+ branch0.processed = true; // prevent it from double-processed+ branch0.if = "(" + typeBinding + ")==='checkbox'" + ifConditionExtra;+ addIfCondition(branch0, {+ exp: branch0.if,+ block: branch0+ });+ // 2. add radio else-if condition+ var branch1 = cloneASTElement(el);+ getAndRemoveAttr(branch1, 'v-for', true);+ addRawAttr(branch1, 'type', 'radio');+ processElement(branch1, options);+ addIfCondition(branch0, {+ exp: "(" + typeBinding + ")==='radio'" + ifConditionExtra,+ block: branch1+ });+ // 3. other+ var branch2 = cloneASTElement(el);+ getAndRemoveAttr(branch2, 'v-for', true);+ addRawAttr(branch2, ':type', typeBinding);+ processElement(branch2, options);+ addIfCondition(branch0, {+ exp: ifCondition,+ block: branch2+ });++ if (hasElse) {+ branch0.else = true;+ } else if (elseIfCondition) {+ branch0.elseif = elseIfCondition;+ }++ return branch0+ }+ }+}++function cloneASTElement (el) {+ return createASTElement(el.tag, el.attrsList.slice(), el.parent)+}++var model$2 = {+ preTransformNode: preTransformNode+}++var modules$1 = [+ klass$1,+ style$1,+ model$2+]++/* */++function text (el, dir) {+ if (dir.value) {+ addProp(el, 'textContent', ("_s(" + (dir.value) + ")"));+ }+}++/* */++function html (el, dir) {+ if (dir.value) {+ addProp(el, 'innerHTML', ("_s(" + (dir.value) + ")"));+ }+}++var directives$1 = {+ model: model,+ text: text,+ html: html+}++/* */++var baseOptions = {+ expectHTML: true,+ modules: modules$1,+ directives: directives$1,+ isPreTag: isPreTag,+ isUnaryTag: isUnaryTag,+ mustUseProp: mustUseProp,+ canBeLeftOpenTag: canBeLeftOpenTag,+ isReservedTag: isReservedTag,+ getTagNamespace: getTagNamespace,+ staticKeys: genStaticKeys(modules$1)+};++/* */++var isStaticKey;+var isPlatformReservedTag;++var genStaticKeysCached = cached(genStaticKeys$1);++/**+ * Goal of the optimizer: walk the generated template AST tree+ * and detect sub-trees that are purely static, i.e. parts of+ * the DOM that never needs to change.+ *+ * Once we detect these sub-trees, we can:+ *+ * 1. Hoist them into constants, so that we no longer need to+ * create fresh nodes for them on each re-render;+ * 2. Completely skip them in the patching process.+ */+function optimize (root, options) {+ if (!root) { return }+ isStaticKey = genStaticKeysCached(options.staticKeys || '');+ isPlatformReservedTag = options.isReservedTag || no;+ // first pass: mark all non-static nodes.+ markStatic$1(root);+ // second pass: mark static roots.+ markStaticRoots(root, false);+}++function genStaticKeys$1 (keys) {+ return makeMap(+ 'type,tag,attrsList,attrsMap,plain,parent,children,attrs' ++ (keys ? ',' + keys : '')+ )+}++function markStatic$1 (node) {+ node.static = isStatic(node);+ if (node.type === 1) {+ // do not make component slot content static. this avoids+ // 1. components not able to mutate slot nodes+ // 2. static slot content fails for hot-reloading+ if (+ !isPlatformReservedTag(node.tag) &&+ node.tag !== 'slot' &&+ node.attrsMap['inline-template'] == null+ ) {+ return+ }+ for (var i = 0, l = node.children.length; i < l; i++) {+ var child = node.children[i];+ markStatic$1(child);+ if (!child.static) {+ node.static = false;+ }+ }+ if (node.ifConditions) {+ for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {+ var block = node.ifConditions[i$1].block;+ markStatic$1(block);+ if (!block.static) {+ node.static = false;+ }+ }+ }+ }+}++function markStaticRoots (node, isInFor) {+ if (node.type === 1) {+ if (node.static || node.once) {+ node.staticInFor = isInFor;+ }+ // For a node to qualify as a static root, it should have children that+ // are not just static text. Otherwise the cost of hoisting out will+ // outweigh the benefits and it's better off to just always render it fresh.+ if (node.static && node.children.length && !(+ node.children.length === 1 &&+ node.children[0].type === 3+ )) {+ node.staticRoot = true;+ return+ } else {+ node.staticRoot = false;+ }+ if (node.children) {+ for (var i = 0, l = node.children.length; i < l; i++) {+ markStaticRoots(node.children[i], isInFor || !!node.for);+ }+ }+ if (node.ifConditions) {+ for (var i$1 = 1, l$1 = node.ifConditions.length; i$1 < l$1; i$1++) {+ markStaticRoots(node.ifConditions[i$1].block, isInFor);+ }+ }+ }+}++function isStatic (node) {+ if (node.type === 2) { // expression+ return false+ }+ if (node.type === 3) { // text+ return true+ }+ return !!(node.pre || (+ !node.hasBindings && // no dynamic bindings+ !node.if && !node.for && // not v-if or v-for or v-else+ !isBuiltInTag(node.tag) && // not a built-in+ isPlatformReservedTag(node.tag) && // not a component+ !isDirectChildOfTemplateFor(node) &&+ Object.keys(node).every(isStaticKey)+ ))+}++function isDirectChildOfTemplateFor (node) {+ while (node.parent) {+ node = node.parent;+ if (node.tag !== 'template') {+ return false+ }+ if (node.for) {+ return true+ }+ }+ return false+}++/* */++var fnExpRE = /^([\w$_]+|\([^)]*?\))\s*=>|^function\s*\(/;+var simplePathRE = /^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/;++// KeyboardEvent.keyCode aliases+var keyCodes = {+ esc: 27,+ tab: 9,+ enter: 13,+ space: 32,+ up: 38,+ left: 37,+ right: 39,+ down: 40,+ 'delete': [8, 46]+};++// KeyboardEvent.key aliases+var keyNames = {+ esc: 'Escape',+ tab: 'Tab',+ enter: 'Enter',+ space: ' ',+ // #7806: IE11 uses key names without `Arrow` prefix for arrow keys.+ up: ['Up', 'ArrowUp'],+ left: ['Left', 'ArrowLeft'],+ right: ['Right', 'ArrowRight'],+ down: ['Down', 'ArrowDown'],+ 'delete': ['Backspace', 'Delete']+};++// #4868: modifiers that prevent the execution of the listener+// need to explicitly return null so that we can determine whether to remove+// the listener for .once+var genGuard = function (condition) { return ("if(" + condition + ")return null;"); };++var modifierCode = {+ stop: '$event.stopPropagation();',+ prevent: '$event.preventDefault();',+ self: genGuard("$event.target !== $event.currentTarget"),+ ctrl: genGuard("!$event.ctrlKey"),+ shift: genGuard("!$event.shiftKey"),+ alt: genGuard("!$event.altKey"),+ meta: genGuard("!$event.metaKey"),+ left: genGuard("'button' in $event && $event.button !== 0"),+ middle: genGuard("'button' in $event && $event.button !== 1"),+ right: genGuard("'button' in $event && $event.button !== 2")+};++function genHandlers (+ events,+ isNative,+ warn+) {+ var res = isNative ? 'nativeOn:{' : 'on:{';+ for (var name in events) {+ res += "\"" + name + "\":" + (genHandler(name, events[name])) + ",";+ }+ return res.slice(0, -1) + '}'+}++function genHandler (+ name,+ handler+) {+ if (!handler) {+ return 'function(){}'+ }++ if (Array.isArray(handler)) {+ return ("[" + (handler.map(function (handler) { return genHandler(name, handler); }).join(',')) + "]")+ }++ var isMethodPath = simplePathRE.test(handler.value);+ var isFunctionExpression = fnExpRE.test(handler.value);++ if (!handler.modifiers) {+ if (isMethodPath || isFunctionExpression) {+ return handler.value+ }+ /* istanbul ignore if */+ return ("function($event){" + (handler.value) + "}") // inline statement+ } else {+ var code = '';+ var genModifierCode = '';+ var keys = [];+ for (var key in handler.modifiers) {+ if (modifierCode[key]) {+ genModifierCode += modifierCode[key];+ // left/right+ if (keyCodes[key]) {+ keys.push(key);+ }+ } else if (key === 'exact') {+ var modifiers = (handler.modifiers);+ genModifierCode += genGuard(+ ['ctrl', 'shift', 'alt', 'meta']+ .filter(function (keyModifier) { return !modifiers[keyModifier]; })+ .map(function (keyModifier) { return ("$event." + keyModifier + "Key"); })+ .join('||')+ );+ } else {+ keys.push(key);+ }+ }+ if (keys.length) {+ code += genKeyFilter(keys);+ }+ // Make sure modifiers like prevent and stop get executed after key filtering+ if (genModifierCode) {+ code += genModifierCode;+ }+ var handlerCode = isMethodPath+ ? ("return " + (handler.value) + "($event)")+ : isFunctionExpression+ ? ("return (" + (handler.value) + ")($event)")+ : handler.value;+ /* istanbul ignore if */+ return ("function($event){" + code + handlerCode + "}")+ }+}++function genKeyFilter (keys) {+ return ("if(!('button' in $event)&&" + (keys.map(genFilterCode).join('&&')) + ")return null;")+}++function genFilterCode (key) {+ var keyVal = parseInt(key, 10);+ if (keyVal) {+ return ("$event.keyCode!==" + keyVal)+ }+ var keyCode = keyCodes[key];+ var keyName = keyNames[key];+ return (+ "_k($event.keyCode," ++ (JSON.stringify(key)) + "," ++ (JSON.stringify(keyCode)) + "," ++ "$event.key," ++ "" + (JSON.stringify(keyName)) ++ ")"+ )+}++/* */++function on (el, dir) {+ if ("development" !== 'production' && dir.modifiers) {+ warn("v-on without argument does not support modifiers.");+ }+ el.wrapListeners = function (code) { return ("_g(" + code + "," + (dir.value) + ")"); };+}++/* */++function bind$1 (el, dir) {+ el.wrapData = function (code) {+ return ("_b(" + code + ",'" + (el.tag) + "'," + (dir.value) + "," + (dir.modifiers && dir.modifiers.prop ? 'true' : 'false') + (dir.modifiers && dir.modifiers.sync ? ',true' : '') + ")")+ };+}++/* */++var baseDirectives = {+ on: on,+ bind: bind$1,+ cloak: noop+}++/* */++var CodegenState = function CodegenState (options) {+ this.options = options;+ this.warn = options.warn || baseWarn;+ this.transforms = pluckModuleFunction(options.modules, 'transformCode');+ this.dataGenFns = pluckModuleFunction(options.modules, 'genData');+ this.directives = extend(extend({}, baseDirectives), options.directives);+ var isReservedTag = options.isReservedTag || no;+ this.maybeComponent = function (el) { return !isReservedTag(el.tag); };+ this.onceId = 0;+ this.staticRenderFns = [];+};++++function generate (+ ast,+ options+) {+ var state = new CodegenState(options);+ var code = ast ? genElement(ast, state) : '_c("div")';+ return {+ render: ("with(this){return " + code + "}"),+ staticRenderFns: state.staticRenderFns+ }+}++function genElement (el, state) {+ if (el.staticRoot && !el.staticProcessed) {+ return genStatic(el, state)+ } else if (el.once && !el.onceProcessed) {+ return genOnce(el, state)+ } else if (el.for && !el.forProcessed) {+ return genFor(el, state)+ } else if (el.if && !el.ifProcessed) {+ return genIf(el, state)+ } else if (el.tag === 'template' && !el.slotTarget) {+ return genChildren(el, state) || 'void 0'+ } else if (el.tag === 'slot') {+ return genSlot(el, state)+ } else {+ // component or element+ var code;+ if (el.component) {+ code = genComponent(el.component, el, state);+ } else {+ var data = el.plain ? undefined : genData$2(el, state);++ var children = el.inlineTemplate ? null : genChildren(el, state, true);+ code = "_c('" + (el.tag) + "'" + (data ? ("," + data) : '') + (children ? ("," + children) : '') + ")";+ }+ // module transforms+ for (var i = 0; i < state.transforms.length; i++) {+ code = state.transforms[i](el, code);+ }+ return code+ }+}++// hoist static sub-trees out+function genStatic (el, state) {+ el.staticProcessed = true;+ state.staticRenderFns.push(("with(this){return " + (genElement(el, state)) + "}"));+ return ("_m(" + (state.staticRenderFns.length - 1) + (el.staticInFor ? ',true' : '') + ")")+}++// v-once+function genOnce (el, state) {+ el.onceProcessed = true;+ if (el.if && !el.ifProcessed) {+ return genIf(el, state)+ } else if (el.staticInFor) {+ var key = '';+ var parent = el.parent;+ while (parent) {+ if (parent.for) {+ key = parent.key;+ break+ }+ parent = parent.parent;+ }+ if (!key) {+ "development" !== 'production' && state.warn(+ "v-once can only be used inside v-for that is keyed. "+ );+ return genElement(el, state)+ }+ return ("_o(" + (genElement(el, state)) + "," + (state.onceId++) + "," + key + ")")+ } else {+ return genStatic(el, state)+ }+}++function genIf (+ el,+ state,+ altGen,+ altEmpty+) {+ el.ifProcessed = true; // avoid recursion+ return genIfConditions(el.ifConditions.slice(), state, altGen, altEmpty)+}++function genIfConditions (+ conditions,+ state,+ altGen,+ altEmpty+) {+ if (!conditions.length) {+ return altEmpty || '_e()'+ }++ var condition = conditions.shift();+ if (condition.exp) {+ return ("(" + (condition.exp) + ")?" + (genTernaryExp(condition.block)) + ":" + (genIfConditions(conditions, state, altGen, altEmpty)))+ } else {+ return ("" + (genTernaryExp(condition.block)))+ }++ // v-if with v-once should generate code like (a)?_m(0):_m(1)+ function genTernaryExp (el) {+ return altGen+ ? altGen(el, state)+ : el.once+ ? genOnce(el, state)+ : genElement(el, state)+ }+}++function genFor (+ el,+ state,+ altGen,+ altHelper+) {+ var exp = el.for;+ var alias = el.alias;+ var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';+ var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';++ if ("development" !== 'production' &&+ state.maybeComponent(el) &&+ el.tag !== 'slot' &&+ el.tag !== 'template' &&+ !el.key+ ) {+ state.warn(+ "<" + (el.tag) + " v-for=\"" + alias + " in " + exp + "\">: component lists rendered with " ++ "v-for should have explicit keys. " ++ "See https://vuejs.org/guide/list.html#key for more info.",+ true /* tip */+ );+ }++ el.forProcessed = true; // avoid recursion+ return (altHelper || '_l') + "((" + exp + ")," ++ "function(" + alias + iterator1 + iterator2 + "){" ++ "return " + ((altGen || genElement)(el, state)) ++ '})'+}++function genData$2 (el, state) {+ var data = '{';++ // directives first.+ // directives may mutate the el's other properties before they are generated.+ var dirs = genDirectives(el, state);+ if (dirs) { data += dirs + ','; }++ // key+ if (el.key) {+ data += "key:" + (el.key) + ",";+ }+ // ref+ if (el.ref) {+ data += "ref:" + (el.ref) + ",";+ }+ if (el.refInFor) {+ data += "refInFor:true,";+ }+ // pre+ if (el.pre) {+ data += "pre:true,";+ }+ // record original tag name for components using "is" attribute+ if (el.component) {+ data += "tag:\"" + (el.tag) + "\",";+ }+ // module data generation functions+ for (var i = 0; i < state.dataGenFns.length; i++) {+ data += state.dataGenFns[i](el);+ }+ // attributes+ if (el.attrs) {+ data += "attrs:{" + (genProps(el.attrs)) + "},";+ }+ // DOM props+ if (el.props) {+ data += "domProps:{" + (genProps(el.props)) + "},";+ }+ // event handlers+ if (el.events) {+ data += (genHandlers(el.events, false, state.warn)) + ",";+ }+ if (el.nativeEvents) {+ data += (genHandlers(el.nativeEvents, true, state.warn)) + ",";+ }+ // slot target+ // only for non-scoped slots+ if (el.slotTarget && !el.slotScope) {+ data += "slot:" + (el.slotTarget) + ",";+ }+ // scoped slots+ if (el.scopedSlots) {+ data += (genScopedSlots(el.scopedSlots, state)) + ",";+ }+ // component v-model+ if (el.model) {+ data += "model:{value:" + (el.model.value) + ",callback:" + (el.model.callback) + ",expression:" + (el.model.expression) + "},";+ }+ // inline-template+ if (el.inlineTemplate) {+ var inlineTemplate = genInlineTemplate(el, state);+ if (inlineTemplate) {+ data += inlineTemplate + ",";+ }+ }+ data = data.replace(/,$/, '') + '}';+ // v-bind data wrap+ if (el.wrapData) {+ data = el.wrapData(data);+ }+ // v-on data wrap+ if (el.wrapListeners) {+ data = el.wrapListeners(data);+ }+ return data+}++function genDirectives (el, state) {+ var dirs = el.directives;+ if (!dirs) { return }+ var res = 'directives:[';+ var hasRuntime = false;+ var i, l, dir, needRuntime;+ for (i = 0, l = dirs.length; i < l; i++) {+ dir = dirs[i];+ needRuntime = true;+ var gen = state.directives[dir.name];+ if (gen) {+ // compile-time directive that manipulates AST.+ // returns true if it also needs a runtime counterpart.+ needRuntime = !!gen(el, dir, state.warn);+ }+ if (needRuntime) {+ hasRuntime = true;+ res += "{name:\"" + (dir.name) + "\",rawName:\"" + (dir.rawName) + "\"" + (dir.value ? (",value:(" + (dir.value) + "),expression:" + (JSON.stringify(dir.value))) : '') + (dir.arg ? (",arg:\"" + (dir.arg) + "\"") : '') + (dir.modifiers ? (",modifiers:" + (JSON.stringify(dir.modifiers))) : '') + "},";+ }+ }+ if (hasRuntime) {+ return res.slice(0, -1) + ']'+ }+}++function genInlineTemplate (el, state) {+ var ast = el.children[0];+ if ("development" !== 'production' && (+ el.children.length !== 1 || ast.type !== 1+ )) {+ state.warn('Inline-template components must have exactly one child element.');+ }+ if (ast.type === 1) {+ var inlineRenderFns = generate(ast, state.options);+ return ("inlineTemplate:{render:function(){" + (inlineRenderFns.render) + "},staticRenderFns:[" + (inlineRenderFns.staticRenderFns.map(function (code) { return ("function(){" + code + "}"); }).join(',')) + "]}")+ }+}++function genScopedSlots (+ slots,+ state+) {+ return ("scopedSlots:_u([" + (Object.keys(slots).map(function (key) {+ return genScopedSlot(key, slots[key], state)+ }).join(',')) + "])")+}++function genScopedSlot (+ key,+ el,+ state+) {+ if (el.for && !el.forProcessed) {+ return genForScopedSlot(key, el, state)+ }+ var fn = "function(" + (String(el.slotScope)) + "){" ++ "return " + (el.tag === 'template'+ ? el.if+ ? ((el.if) + "?" + (genChildren(el, state) || 'undefined') + ":undefined")+ : genChildren(el, state) || 'undefined'+ : genElement(el, state)) + "}";+ return ("{key:" + key + ",fn:" + fn + "}")+}++function genForScopedSlot (+ key,+ el,+ state+) {+ var exp = el.for;+ var alias = el.alias;+ var iterator1 = el.iterator1 ? ("," + (el.iterator1)) : '';+ var iterator2 = el.iterator2 ? ("," + (el.iterator2)) : '';+ el.forProcessed = true; // avoid recursion+ return "_l((" + exp + ")," ++ "function(" + alias + iterator1 + iterator2 + "){" ++ "return " + (genScopedSlot(key, el, state)) ++ '})'+}++function genChildren (+ el,+ state,+ checkSkip,+ altGenElement,+ altGenNode+) {+ var children = el.children;+ if (children.length) {+ var el$1 = children[0];+ // optimize single v-for+ if (children.length === 1 &&+ el$1.for &&+ el$1.tag !== 'template' &&+ el$1.tag !== 'slot'+ ) {+ return (altGenElement || genElement)(el$1, state)+ }+ var normalizationType = checkSkip+ ? getNormalizationType(children, state.maybeComponent)+ : 0;+ var gen = altGenNode || genNode;+ return ("[" + (children.map(function (c) { return gen(c, state); }).join(',')) + "]" + (normalizationType ? ("," + normalizationType) : ''))+ }+}++// determine the normalization needed for the children array.+// 0: no normalization needed+// 1: simple normalization needed (possible 1-level deep nested array)+// 2: full normalization needed+function getNormalizationType (+ children,+ maybeComponent+) {+ var res = 0;+ for (var i = 0; i < children.length; i++) {+ var el = children[i];+ if (el.type !== 1) {+ continue+ }+ if (needsNormalization(el) ||+ (el.ifConditions && el.ifConditions.some(function (c) { return needsNormalization(c.block); }))) {+ res = 2;+ break+ }+ if (maybeComponent(el) ||+ (el.ifConditions && el.ifConditions.some(function (c) { return maybeComponent(c.block); }))) {+ res = 1;+ }+ }+ return res+}++function needsNormalization (el) {+ return el.for !== undefined || el.tag === 'template' || el.tag === 'slot'+}++function genNode (node, state) {+ if (node.type === 1) {+ return genElement(node, state)+ } if (node.type === 3 && node.isComment) {+ return genComment(node)+ } else {+ return genText(node)+ }+}++function genText (text) {+ return ("_v(" + (text.type === 2+ ? text.expression // no need for () because already wrapped in _s()+ : transformSpecialNewlines(JSON.stringify(text.text))) + ")")+}++function genComment (comment) {+ return ("_e(" + (JSON.stringify(comment.text)) + ")")+}++function genSlot (el, state) {+ var slotName = el.slotName || '"default"';+ var children = genChildren(el, state);+ var res = "_t(" + slotName + (children ? ("," + children) : '');+ var attrs = el.attrs && ("{" + (el.attrs.map(function (a) { return ((camelize(a.name)) + ":" + (a.value)); }).join(',')) + "}");+ var bind$$1 = el.attrsMap['v-bind'];+ if ((attrs || bind$$1) && !children) {+ res += ",null";+ }+ if (attrs) {+ res += "," + attrs;+ }+ if (bind$$1) {+ res += (attrs ? '' : ',null') + "," + bind$$1;+ }+ return res + ')'+}++// componentName is el.component, take it as argument to shun flow's pessimistic refinement+function genComponent (+ componentName,+ el,+ state+) {+ var children = el.inlineTemplate ? null : genChildren(el, state, true);+ return ("_c(" + componentName + "," + (genData$2(el, state)) + (children ? ("," + children) : '') + ")")+}++function genProps (props) {+ var res = '';+ for (var i = 0; i < props.length; i++) {+ var prop = props[i];+ /* istanbul ignore if */+ {+ res += "\"" + (prop.name) + "\":" + (transformSpecialNewlines(prop.value)) + ",";+ }+ }+ return res.slice(0, -1)+}++// #3895, #4268+function transformSpecialNewlines (text) {+ return text+ .replace(/\u2028/g, '\\u2028')+ .replace(/\u2029/g, '\\u2029')+}++/* */++// these keywords should not appear inside expressions, but operators like+// typeof, instanceof and in are allowed+var prohibitedKeywordRE = new RegExp('\\b' + (+ 'do,if,for,let,new,try,var,case,else,with,await,break,catch,class,const,' ++ 'super,throw,while,yield,delete,export,import,return,switch,default,' ++ 'extends,finally,continue,debugger,function,arguments'+).split(',').join('\\b|\\b') + '\\b');++// these unary operators should not be used as property/method names+var unaryOperatorsRE = new RegExp('\\b' + (+ 'delete,typeof,void'+).split(',').join('\\s*\\([^\\)]*\\)|\\b') + '\\s*\\([^\\)]*\\)');++// strip strings in expressions+var stripStringRE = /'(?:[^'\\]|\\.)*'|"(?:[^"\\]|\\.)*"|`(?:[^`\\]|\\.)*\$\{|\}(?:[^`\\]|\\.)*`|`(?:[^`\\]|\\.)*`/g;++// detect problematic expressions in a template+function detectErrors (ast) {+ var errors = [];+ if (ast) {+ checkNode(ast, errors);+ }+ return errors+}++function checkNode (node, errors) {+ if (node.type === 1) {+ for (var name in node.attrsMap) {+ if (dirRE.test(name)) {+ var value = node.attrsMap[name];+ if (value) {+ if (name === 'v-for') {+ checkFor(node, ("v-for=\"" + value + "\""), errors);+ } else if (onRE.test(name)) {+ checkEvent(value, (name + "=\"" + value + "\""), errors);+ } else {+ checkExpression(value, (name + "=\"" + value + "\""), errors);+ }+ }+ }+ }+ if (node.children) {+ for (var i = 0; i < node.children.length; i++) {+ checkNode(node.children[i], errors);+ }+ }+ } else if (node.type === 2) {+ checkExpression(node.expression, node.text, errors);+ }+}++function checkEvent (exp, text, errors) {+ var stipped = exp.replace(stripStringRE, '');+ var keywordMatch = stipped.match(unaryOperatorsRE);+ if (keywordMatch && stipped.charAt(keywordMatch.index - 1) !== '$') {+ errors.push(+ "avoid using JavaScript unary operator as property name: " ++ "\"" + (keywordMatch[0]) + "\" in expression " + (text.trim())+ );+ }+ checkExpression(exp, text, errors);+}++function checkFor (node, text, errors) {+ checkExpression(node.for || '', text, errors);+ checkIdentifier(node.alias, 'v-for alias', text, errors);+ checkIdentifier(node.iterator1, 'v-for iterator', text, errors);+ checkIdentifier(node.iterator2, 'v-for iterator', text, errors);+}++function checkIdentifier (+ ident,+ type,+ text,+ errors+) {+ if (typeof ident === 'string') {+ try {+ new Function(("var " + ident + "=_"));+ } catch (e) {+ errors.push(("invalid " + type + " \"" + ident + "\" in expression: " + (text.trim())));+ }+ }+}++function checkExpression (exp, text, errors) {+ try {+ new Function(("return " + exp));+ } catch (e) {+ var keywordMatch = exp.replace(stripStringRE, '').match(prohibitedKeywordRE);+ if (keywordMatch) {+ errors.push(+ "avoid using JavaScript keyword as property name: " ++ "\"" + (keywordMatch[0]) + "\"\n Raw expression: " + (text.trim())+ );+ } else {+ errors.push(+ "invalid expression: " + (e.message) + " in\n\n" ++ " " + exp + "\n\n" ++ " Raw expression: " + (text.trim()) + "\n"+ );+ }+ }+}++/* */++function createFunction (code, errors) {+ try {+ return new Function(code)+ } catch (err) {+ errors.push({ err: err, code: code });+ return noop+ }+}++function createCompileToFunctionFn (compile) {+ var cache = Object.create(null);++ return function compileToFunctions (+ template,+ options,+ vm+ ) {+ options = extend({}, options);+ var warn$$1 = options.warn || warn;+ delete options.warn;++ /* istanbul ignore if */+ {+ // detect possible CSP restriction+ try {+ new Function('return 1');+ } catch (e) {+ if (e.toString().match(/unsafe-eval|CSP/)) {+ warn$$1(+ 'It seems you are using the standalone build of Vue.js in an ' ++ 'environment with Content Security Policy that prohibits unsafe-eval. ' ++ 'The template compiler cannot work in this environment. Consider ' ++ 'relaxing the policy to allow unsafe-eval or pre-compiling your ' ++ 'templates into render functions.'+ );+ }+ }+ }++ // check cache+ var key = options.delimiters+ ? String(options.delimiters) + template+ : template;+ if (cache[key]) {+ return cache[key]+ }++ // compile+ var compiled = compile(template, options);++ // check compilation errors/tips+ {+ if (compiled.errors && compiled.errors.length) {+ warn$$1(+ "Error compiling template:\n\n" + template + "\n\n" ++ compiled.errors.map(function (e) { return ("- " + e); }).join('\n') + '\n',+ vm+ );+ }+ if (compiled.tips && compiled.tips.length) {+ compiled.tips.forEach(function (msg) { return tip(msg, vm); });+ }+ }++ // turn code into functions+ var res = {};+ var fnGenErrors = [];+ res.render = createFunction(compiled.render, fnGenErrors);+ res.staticRenderFns = compiled.staticRenderFns.map(function (code) {+ return createFunction(code, fnGenErrors)+ });++ // check function generation errors.+ // this should only happen if there is a bug in the compiler itself.+ // mostly for codegen development use+ /* istanbul ignore if */+ {+ if ((!compiled.errors || !compiled.errors.length) && fnGenErrors.length) {+ warn$$1(+ "Failed to generate render function:\n\n" ++ fnGenErrors.map(function (ref) {+ var err = ref.err;+ var code = ref.code;++ return ((err.toString()) + " in\n\n" + code + "\n");+ }).join('\n'),+ vm+ );+ }+ }++ return (cache[key] = res)+ }+}++/* */++function createCompilerCreator (baseCompile) {+ return function createCompiler (baseOptions) {+ function compile (+ template,+ options+ ) {+ var finalOptions = Object.create(baseOptions);+ var errors = [];+ var tips = [];+ finalOptions.warn = function (msg, tip) {+ (tip ? tips : errors).push(msg);+ };++ if (options) {+ // merge custom modules+ if (options.modules) {+ finalOptions.modules =+ (baseOptions.modules || []).concat(options.modules);+ }+ // merge custom directives+ if (options.directives) {+ finalOptions.directives = extend(+ Object.create(baseOptions.directives || null),+ options.directives+ );+ }+ // copy other options+ for (var key in options) {+ if (key !== 'modules' && key !== 'directives') {+ finalOptions[key] = options[key];+ }+ }+ }++ var compiled = baseCompile(template, finalOptions);+ {+ errors.push.apply(errors, detectErrors(compiled.ast));+ }+ compiled.errors = errors;+ compiled.tips = tips;+ return compiled+ }++ return {+ compile: compile,+ compileToFunctions: createCompileToFunctionFn(compile)+ }+ }+}++/* */++// `createCompilerCreator` allows creating compilers that use alternative+// parser/optimizer/codegen, e.g the SSR optimizing compiler.+// Here we just export a default compiler using the default parts.+var createCompiler = createCompilerCreator(function baseCompile (+ template,+ options+) {+ var ast = parse(template.trim(), options);+ if (options.optimize !== false) {+ optimize(ast, options);+ }+ var code = generate(ast, options);+ return {+ ast: ast,+ render: code.render,+ staticRenderFns: code.staticRenderFns+ }+});++/* */++var ref$1 = createCompiler(baseOptions);+var compileToFunctions = ref$1.compileToFunctions;++/* */++// check whether current browser encodes a char inside attribute values+var div;+function getShouldDecode (href) {+ div = div || document.createElement('div');+ div.innerHTML = href ? "<a href=\"\n\"/>" : "<div a=\"\n\"/>";+ return div.innerHTML.indexOf(' ') > 0+}++// #3663: IE encodes newlines inside attribute values while other browsers don't+var shouldDecodeNewlines = inBrowser ? getShouldDecode(false) : false;+// #6828: chrome encodes content in a[href]+var shouldDecodeNewlinesForHref = inBrowser ? getShouldDecode(true) : false;++/* */++var idToTemplate = cached(function (id) {+ var el = query(id);+ return el && el.innerHTML+});++var mount = Vue.prototype.$mount;+Vue.prototype.$mount = function (+ el,+ hydrating+) {+ el = el && query(el);++ /* istanbul ignore if */+ if (el === document.body || el === document.documentElement) {+ "development" !== 'production' && warn(+ "Do not mount Vue to <html> or <body> - mount to normal elements instead."+ );+ return this+ }++ var options = this.$options;+ // resolve template/el and convert to render function+ if (!options.render) {+ var template = options.template;+ if (template) {+ if (typeof template === 'string') {+ if (template.charAt(0) === '#') {+ template = idToTemplate(template);+ /* istanbul ignore if */+ if ("development" !== 'production' && !template) {+ warn(+ ("Template element not found or is empty: " + (options.template)),+ this+ );+ }+ }+ } else if (template.nodeType) {+ template = template.innerHTML;+ } else {+ {+ warn('invalid template option:' + template, this);+ }+ return this+ }+ } else if (el) {+ template = getOuterHTML(el);+ }+ if (template) {+ /* istanbul ignore if */+ if ("development" !== 'production' && config.performance && mark) {+ mark('compile');+ }++ var ref = compileToFunctions(template, {+ shouldDecodeNewlines: shouldDecodeNewlines,+ shouldDecodeNewlinesForHref: shouldDecodeNewlinesForHref,+ delimiters: options.delimiters,+ comments: options.comments+ }, this);+ var render = ref.render;+ var staticRenderFns = ref.staticRenderFns;+ options.render = render;+ options.staticRenderFns = staticRenderFns;++ /* istanbul ignore if */+ if ("development" !== 'production' && config.performance && mark) {+ mark('compile end');+ measure(("vue " + (this._name) + " compile"), 'compile', 'compile end');+ }+ }+ }+ return mount.call(this, el, hydrating)+};++/**+ * Get outerHTML of elements, taking care+ * of SVG elements in IE as well.+ */+function getOuterHTML (el) {+ if (el.outerHTML) {+ return el.outerHTML+ } else {+ var container = document.createElement('div');+ container.appendChild(el.cloneNode(true));+ return container.innerHTML+ }+}++Vue.compile = compileToFunctions;++return Vue;++})));