{ "app": { "name": "Notify Bridge", "tagline": "Service notifications" }, "nav": { "dashboard": "Dashboard", "providers": "Providers", "notificationTrackers": "Notif. Trackers", "trackingConfigs": "Tracking", "templateConfigs": "Templates", "telegramBots": "Bots", "targets": "Targets", "commandConfigs": "Cmd Configs", "commandTrackers": "Cmd Trackers", "cmdTemplateConfigs": "Cmd Templates", "users": "Users", "settings": "Settings", "logout": "Logout", "notification": "Notification", "commands": "Commands", "bots": "Bots", "trackers": "Trackers", "configs": "Configs", "templates": "Templates", "telegram": "Telegram", "email": "Email", "matrix": "Matrix", "common": "Common", "targetTelegram": "Telegram", "targetWebhook": "Webhook", "targetEmail": "Email", "targetDiscord": "Discord", "targetSlack": "Slack", "targetNtfy": "ntfy", "targetMatrix": "Matrix" }, "auth": { "signIn": "Sign in", "signInTitle": "Sign in to your account", "signingIn": "Signing in...", "username": "Username", "password": "Password", "confirmPassword": "Confirm password", "setupTitle": "Welcome", "setupDescription": "Create your admin account to get started", "createAccount": "Create account", "creatingAccount": "Creating account...", "passwordMismatch": "Passwords do not match", "passwordTooShort": "Password must be at least 6 characters", "or": "or" }, "dashboard": { "title": "Dashboard", "description": "Overview of your Notify Bridge setup", "providers": "Providers", "activeTrackers": "Active Trackers", "targets": "Targets", "recentEvents": "Events", "noEvents": "No events yet. Create a tracker to start monitoring.", "loading": "Loading...", "justNow": "just now", "minutesAgo": "{n}m ago", "hoursAgo": "{n}h ago", "daysAgo": "{n}d ago", "assetsAdded": "assets added", "assetsRemoved": "assets removed", "collectionRenamed": "collection renamed", "collectionDeleted": "collection deleted", "sharingChanged": "sharing changed", "searchEvents": "Search events...", "allEvents": "All Events", "filterAssetsAdded": "Assets Added", "filterAssetsRemoved": "Assets Removed", "filterRenamed": "Renamed", "filterDeleted": "Deleted", "filterSharingChanged": "Sharing Changed", "allProviders": "All Providers", "newestFirst": "Newest first", "oldestFirst": "Oldest first", "loadingEvents": "Loading events...", "asset": "asset", "assets": "assets", "eventActivity": "Event Activity", "last14days": "Last 14 days", "event": "event", "events": "events", "noChartData": "No event data yet" }, "providers": { "title": "Providers", "description": "Manage service provider connections", "addProvider": "Add Provider", "cancel": "Cancel", "type": "Provider Type", "name": "Name", "url": "Provider URL", "urlPlaceholder": "http://provider:2283", "apiKey": "API Key", "apiKeyKeep": "API Key (leave empty to keep current)", "connecting": "Connecting...", "noProviders": "No providers configured yet.", "delete": "Delete", "confirmDelete": "Delete this provider?", "online": "Online", "offline": "Offline", "checking": "Checking...", "loadError": "Failed to load providers.", "externalDomain": "External Domain", "optional": "optional", "urlApiKeyRequired": "URL and API Key are required", "externalDomainHint": "Public-facing URL for notification links. Falls back to server URL.", "testAndSave": "Test & Save", "saveWithoutTest": "Save without testing" }, "notificationTracker": { "title": "Notification Trackers", "description": "Monitor albums for changes", "newTracker": "New Tracker", "cancel": "Cancel", "name": "Name", "namePlaceholder": "Family photos tracker", "server": "Provider", "selectServer": "Select provider...", "albums": "Albums", "eventTypes": "Event Types", "notificationTargets": "Notification Targets", "scanInterval": "Scan Interval (seconds)", "createTracker": "Create Tracker", "noTrackers": "No trackers yet. Add a provider first, then create a tracker.", "active": "Active", "paused": "Paused", "pause": "Pause", "resume": "Resume", "delete": "Delete", "confirmDelete": "Delete this tracker?", "albums_count": "album(s)", "every": "every", "trackImages": "Track images", "trackVideos": "Track videos", "favoritesOnly": "Favorites only", "includePeople": "Include people in notifications", "includeAssetDetails": "Include asset details", "maxAssetsToShow": "Max assets to show", "sortBy": "Sort by", "sortOrder": "Sort order", "sortNone": "Original order", "sortDate": "Date", "sortRating": "Rating", "sortName": "Name", "sortRandom": "Random", "ascending": "Ascending", "descending": "Descending", "quietHoursStart": "Quiet hours start", "quietHoursEnd": "Quiet hours end", "batchDuration": "Batch duration (seconds)", "linkedTargets": "targets", "noLinkedTargets": "No targets linked. Add a target below.", "addTarget": "Add target", "testBasic": "Send test message", "testPeriodic": "Test periodic summary", "testScheduled": "Test scheduled assets", "testMemory": "Test memory / On This Day", "checkingLinks": "Checking links...", "missingLinksTitle": "Albums Missing Public Links", "missingLinksDesc": "The following albums don't have public shared links. Without links, notification recipients won't be able to view photos.", "expired": "Expired", "passwordProtected": "Password Protected", "noLink": "No Link", "saveWithoutLinks": "Save without links", "createLinks": "Create {count} link(s)", "linksNote": "You can also create links manually in Immich." }, "templates": { "title": "Templates", "description": "Jinja2 message templates for notifications", "newTemplate": "New Template", "cancel": "Cancel", "name": "Name", "body": "Template Body (Jinja2)", "variables": "Variables", "preview": "Preview", "edit": "Edit", "delete": "Delete", "confirmDelete": "Delete this template?", "create": "Create Template", "update": "Update Template", "noTemplates": "No templates yet. A default template will be used if none is configured.", "eventType": "Event type", "allEvents": "All events", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted" }, "targets": { "title": "Targets", "description": "Notification delivery destinations", "descTelegram": "Telegram chat destinations for notifications", "descWebhook": "HTTP webhook endpoints for notification delivery", "descEmail": "Email recipients for notifications", "descDiscord": "Discord channel webhooks for notifications", "descSlack": "Slack channel webhooks for notifications", "descNtfy": "ntfy push notification topics", "descMatrix": "Matrix room destinations for notifications", "addTarget": "Add Target", "cancel": "Cancel", "type": "Type", "name": "Name", "namePlaceholder": "My notifications", "botToken": "Bot Token", "chatId": "Chat ID", "webhookUrl": "Webhook URL", "create": "Add Target", "test": "Test", "delete": "Delete", "confirmDelete": "Delete this target?", "noTargets": "No notification targets configured yet.", "testSent": "Test sent successfully!", "aiCaptions": "Enable AI captions", "telegramSettings": "Telegram Settings", "maxMedia": "Max media to send", "maxGroupSize": "Max group size", "chunkDelay": "Delay between groups (ms)", "maxAssetSize": "Max asset size (MB)", "videoWarning": "Video size warning", "disableUrlPreview": "Disable link previews", "sendLargeAsDocuments": "Send large photos as documents", "chatAction": "Chat action", "chatActionNone": "None (no action)", "overrideUsername": "Override bot username", "ntfyServer": "ntfy Server URL", "ntfyTopic": "Topic", "ntfyToken": "Auth Token", "ntfyTokenPlaceholder": "Optional (for protected topics)", "selectEmailBot": "Select Email Bot", "selectMatrixBot": "Select Matrix Bot", "recipientEmail": "Recipient Email", "matrixRoomId": "Room ID" }, "users": { "title": "Users", "description": "Manage user accounts (admin only)", "addUser": "Add User", "cancel": "Cancel", "username": "Username", "password": "Password", "role": "Role", "roleUser": "User", "roleAdmin": "Admin", "create": "Create User", "delete": "Delete", "confirmDelete": "Delete this user?", "joined": "joined", "noUsers": "No users found" }, "telegramBot": { "title": "Telegram Bots", "description": "Register and manage Telegram bots", "addBot": "Add Bot", "name": "Display name", "namePlaceholder": "Family notifications bot", "token": "Bot Token", "tokenPlaceholder": "123456:ABC-DEF...", "noBots": "No bots registered yet.", "chats": "Chats", "noChats": "No chats found. Send a message to the bot first.", "refreshChats": "Refresh", "selectBot": "Select bot", "selectChat": "Select chat", "private": "Private", "group": "Group", "supergroup": "Supergroup", "channel": "Channel", "confirmDelete": "Delete this bot?", "commands": "Commands", "enabledCommands": "Enabled commands", "defaultCount": "Default count", "responseMode": "Response mode", "modeMedia": "Media (files)", "modeText": "Text only", "botLocale": "Bot language", "rateLimits": "Rate Limits", "rateSearch": "Search cooldown", "rateFind": "Find cooldown", "rateDefault": "Default cooldown", "syncCommands": "Sync with Telegram", "discoverChats": "Discover chats from Telegram", "clickToCopy": "Click to copy chat ID", "chatsDiscovered": "Chats discovered", "chatDeleted": "Chat removed", "cmdLocale": "Bot language", "searchCooldown": "Search cooldown (s)", "saveConfig": "Save config", "commandsSynced": "Commands synced with Telegram", "registerWebhook": "Register webhook", "unregisterWebhook": "Unregister webhook", "webhookRegistered": "Webhook registered", "webhookUnregistered": "Webhook unregistered", "updateMode": "Update mode", "polling": "Polling", "webhook": "Webhook", "webhookStatus": "Webhook status", "webhookActive": "Webhook active", "webhookNotSet": "No webhook set", "webhookVerified": "Webhook verified", "webhookError": "Last error", "pendingUpdates": "pending updates", "pollingActive": "Polling active", "telegramSettings": "Telegram Settings", "externalUrl": "External URL", "externalUrlHint": "Public URL of this Notify Bridge instance. Required for webhook mode.", "webhookSecret": "Webhook secret", "webhookSecretHint": "Optional secret token to verify webhook requests from Telegram", "cacheTtl": "Media cache TTL (hours)", "cacheTtlHint": "How long to cache uploaded Telegram file_ids before re-uploading (default: 48h)", "settingsSaved": "Settings saved", "noExternalDomain": "External domain URL not configured" }, "trackingConfig": { "title": "Tracking Configs", "description": "Define what events and assets to react to", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default tracking", "noConfigs": "No tracking configs yet.", "eventTracking": "Event Tracking", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted", "sharingChanged": "Sharing changed", "trackImages": "Track images", "trackVideos": "Track videos", "favoritesOnly": "Favorites only", "assetDisplay": "Asset Display", "includePeople": "Include people", "includeDetails": "Include asset details", "maxAssets": "Max assets to show", "sortBy": "Sort by", "sortOrder": "Sort order", "periodicSummary": "Periodic Summary", "enabled": "Enabled", "intervalDays": "Interval (days)", "startDate": "Start date", "times": "Times (HH:MM)", "scheduledAssets": "Scheduled Assets", "albumMode": "Album mode", "limit": "Limit", "assetType": "Asset type", "minRating": "Min rating", "memoryMode": "Memory Mode (On This Day)", "memorySource": "Memory source", "memorySourceAlbums": "Scan tracked albums", "memorySourceNative": "Immich native memories", "test": "Test", "confirmDelete": "Delete this tracking config?", "sortNone": "None", "sortDate": "Date", "sortRating": "Rating", "sortName": "Name", "orderDesc": "Descending", "orderAsc": "Ascending", "albumModePerAlbum": "Per album", "albumModeCombined": "Combined", "albumModeRandom": "Random", "assetTypeAll": "All", "assetTypePhoto": "Photo", "assetTypeVideo": "Video", "periodic": "periodic", "scheduled": "scheduled", "memory": "memory", "added": "added", "removed": "removed", "renamed": "renamed", "deleted": "deleted" }, "templateConfig": { "title": "Template Configs", "description": "Define how notification messages are formatted", "providerType": "Service Provider Type", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default EN", "descriptionPlaceholder": "e.g. English templates for family notifications", "noConfigs": "No template configs yet.", "eventMessages": "Event Messages", "assetsAdded": "Assets added", "assetsRemoved": "Assets removed", "albumRenamed": "Album renamed", "albumDeleted": "Album deleted", "sharingChanged": "Sharing changed", "assetFormatting": "Asset Formatting", "imageTemplate": "Image item", "videoTemplate": "Video item", "assetsWrapper": "Assets wrapper", "moreMessage": "More message", "peopleFormat": "People format", "dateLocation": "Date & Location", "dateFormat": "Date & time format", "dateOnlyFormat": "Date only format", "commonDate": "Common date", "uniqueDate": "Per-asset date", "locationFormat": "Location format", "commonLocation": "Common location", "uniqueLocation": "Per-asset location", "favoriteIndicator": "Favorite indicator", "scheduledMessages": "Scheduled Messages", "periodicSummary": "Periodic summary", "periodicAlbum": "Per-album item", "scheduledAssets": "Scheduled assets", "memoryMode": "Memory mode", "settings": "Settings", "previewAs": "Preview as", "preview": "Preview", "variables": "Variables", "assetFields": "Asset fields (in {% for asset in added_assets %})", "albumFields": "Album fields (in {% for album in albums %})", "confirmDelete": "Delete this template config?", "invalidFormat": "Invalid format string" }, "templateVars": { "message_assets_added": { "description": "Notification when new assets are added to an album" }, "message_assets_removed": { "description": "Notification when assets are removed from an album" }, "message_album_renamed": { "description": "Notification when an album is renamed" }, "message_album_deleted": { "description": "Notification when an album is deleted" }, "periodic_summary_message": { "description": "Periodic album summary (scheduler not yet implemented)" }, "scheduled_assets_message": { "description": "Scheduled asset delivery (scheduler not yet implemented)" }, "memory_mode_message": { "description": "\"On This Day\" memories (scheduler not yet implemented)" }, "album_id": "Album ID (UUID)", "album_name": "Album name", "album_url": "Public share URL (empty if not shared)", "added_count": "Number of assets added", "removed_count": "Number of assets removed", "change_type": "Type of change (assets_added, assets_removed, album_renamed, album_deleted)", "people": "Detected people names (list, use {{ people | join(', ') }})", "added_assets": "List of asset dicts (use {% for asset in added_assets %})", "removed_assets": "List of removed asset IDs (strings)", "shared": "Whether album is shared (boolean)", "target_type": "Target type: 'telegram' or 'webhook'", "has_videos": "Whether added assets contain videos (boolean)", "has_photos": "Whether added assets contain photos (boolean)", "old_name": "Previous album name (rename events)", "new_name": "New album name (rename events)", "old_shared": "Was album shared before rename (boolean)", "new_shared": "Is album shared after rename (boolean)", "albums": "List of album dicts (use {% for album in albums %})", "assets": "List of asset dicts (use {% for asset in assets %})", "date": "Current date string", "asset_id": "Asset ID (UUID)", "asset_filename": "Original filename", "asset_type": "IMAGE or VIDEO", "asset_created_at": "Creation date/time (ISO 8601)", "asset_owner": "Owner display name", "asset_owner_id": "Owner user ID", "asset_description": "User or EXIF description", "asset_people": "People detected in this asset (list)", "asset_is_favorite": "Whether asset is favorited (boolean)", "asset_rating": "Star rating (1-5 or null)", "asset_latitude": "GPS latitude (float or null)", "asset_longitude": "GPS longitude (float or null)", "asset_city": "City name", "asset_state": "State/region name", "asset_country": "Country name", "asset_url": "Public viewer URL (if shared)", "asset_download_url": "Direct download URL (if shared)", "asset_photo_url": "Preview image URL (images only, if shared)", "asset_playback_url": "Video playback URL (videos only, if shared)", "album_name_field": "Album name (in album list)", "album_asset_count": "Total assets in album", "album_url_field": "Album share URL", "album_shared": "Whether album is shared" }, "settings": { "title": "Settings", "description": "Global application settings", "general": "General", "externalUrl": "External URL", "externalUrlHint": "Public URL of this Notify Bridge instance (e.g. https://notify.example.com)", "telegram": "Telegram", "webhookSecret": "Webhook Secret", "webhookSecretHint": "Secret token to verify webhook requests from Telegram", "cacheTtl": "Media Cache TTL (hours)", "cacheTtlHint": "How long to cache uploaded Telegram file_ids before re-uploading", "saved": "Settings saved" }, "hints": { "periodicSummary": "Sends a scheduled summary of all tracked albums at specified times. Great for daily/weekly digests.", "scheduledAssets": "Sends random or selected photos from tracked albums on a schedule. Like a daily photo pick.", "memoryMode": "\"On This Day\" — sends photos taken on this date in previous years. Nostalgic flashbacks.", "memorySource": "Albums: scans tracked albums for date-matching assets. Native: uses Immich's built-in memories (covers entire library, optionally filtered by tracked albums).", "favoritesOnly": "Only include assets marked as favorites.", "maxAssets": "Maximum number of asset details to include in a single notification message.", "periodicStartDate": "The reference date for calculating periodic intervals. Summaries are sent every N days from this date.", "times": "Time(s) of day to send notifications, in HH:MM format. Use commas for multiple times: 09:00,18:00", "albumMode": "Per album: separate notification per album. Combined: one notification with all albums. Random: pick one album randomly.", "minRating": "Only include assets with at least this star rating (0 = no filter).", "eventMessages": "Templates for real-time event notifications. Use {variables} for dynamic content.", "assetFormatting": "How individual assets are formatted within notification messages.", "dateLocation": "Date and location formatting in notifications. Uses strftime syntax for dates.", "scheduledMessages": "Templates for periodic summaries, scheduled photo picks, and On This Day memories.", "aiCaptions": "Use Claude AI to generate a natural-language caption for notifications instead of the template.", "maxMedia": "Maximum number of photos/videos to attach per notification (0 = text only).", "groupSize": "Telegram media groups can contain 2-10 items. Larger batches are split into chunks.", "chunkDelay": "Delay in milliseconds between sending media chunks. Prevents Telegram rate limiting.", "maxAssetSize": "Skip assets larger than this size in MB. Telegram limits files to 50 MB.", "trackingConfig": "Controls which events trigger notifications and how assets are filtered.", "templateConfig": "Controls the message format. Uses default templates if not set.", "scanInterval": "How often to poll the provider for changes, in seconds. Lower = faster detection but more API calls.", "batchDuration": "Time to accumulate changes before dispatching notifications. 0 = send immediately.", "defaultCount": "How many results to return when the user doesn't specify a count (1-20).", "responseMode": "Media: send actual photos. Text: send filenames/links only. Media mode uses more bandwidth.", "botLocale": "Language for command descriptions in Telegram's menu and bot response messages.", "rateLimits": "Cooldown in seconds between uses of each command category per chat. 0 = no limit." }, "matrixBot": { "title": "Matrix Bots", "description": "Matrix homeserver connections for room notifications", "addBot": "Add Matrix Bot", "name": "Name", "namePlaceholder": "Home Server Bot", "homeserverUrl": "Homeserver URL", "accessToken": "Access Token", "tokenPlaceholder": "syt_...", "tokenUnchanged": "(unchanged)", "displayName": "Display Name", "testConnection": "Test connection", "noBots": "No Matrix bots yet.", "confirmDelete": "Delete this Matrix bot?" }, "emailBot": { "title": "Email Bots", "description": "SMTP email senders for notifications", "addBot": "Add Email Bot", "name": "Name", "namePlaceholder": "Family Notifications", "email": "From Email", "smtpHost": "SMTP Host", "smtpPort": "Port", "smtpUsername": "Username", "smtpUsernamePlaceholder": "Same as email or app password", "smtpPassword": "Password", "passwordUnchanged": "(unchanged)", "useTls": "Use TLS/SSL", "testConnection": "Send test email", "noBots": "No email bots yet.", "confirmDelete": "Delete this email bot?" }, "cmdTemplateConfig": { "title": "Command Templates", "description": "Customize command response messages with Jinja2 templates", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default Immich Commands", "descriptionPlaceholder": "e.g. Custom response formats for family bot", "noConfigs": "No command template configs yet.", "confirmDelete": "Delete this command template config?", "commandResponses": "Command Responses", "commandResponsesHint": "Leave a slot empty to use the default hardcoded response." }, "commandConfig": { "title": "Command Configs", "description": "Define command settings for Telegram bot interactions", "newConfig": "New Config", "name": "Name", "namePlaceholder": "Default commands", "providerType": "Provider Type", "enabledCommands": "Enabled Commands", "locale": "Locale", "responseMode": "Response Mode", "modeMedia": "Media (files)", "modeText": "Text only", "defaultCount": "Default Count", "rateLimits": "Rate Limits", "searchCooldown": "Search cooldown (s)", "defaultCooldown": "Default cooldown (s)", "noConfigs": "No command configs yet.", "confirmDelete": "Delete this command config?", "commands": "commands", "responseTemplate": "Response Template", "noTemplate": "Default (hardcoded)" }, "commandTracker": { "title": "Command Trackers", "description": "Manage command trackers and their listeners", "newTracker": "New Tracker", "name": "Name", "namePlaceholder": "Family commands", "provider": "Provider", "selectProvider": "Select provider...", "commandConfig": "Command Config", "selectCommandConfig": "Select command config...", "listeners": "Listeners", "addListener": "Add Listener", "removeListener": "Remove", "noTrackers": "No command trackers yet.", "confirmDelete": "Delete this command tracker?", "enabled": "Enabled", "disabled": "Disabled", "noListeners": "No listeners attached.", "selectBot": "Select bot...", "listenerType": "telegram_bot" }, "snackbar": { "showDetails": "Show details", "hideDetails": "Hide details" }, "snack": { "providerSaved": "Provider saved", "providerDeleted": "Provider deleted", "trackerCreated": "Tracker created", "trackerUpdated": "Tracker updated", "trackerDeleted": "Tracker deleted", "trackerPaused": "Tracker paused", "trackerResumed": "Tracker resumed", "targetSaved": "Target saved", "targetDeleted": "Target deleted", "targetTestSent": "Test notification sent", "templateSaved": "Template config saved", "templateDeleted": "Template config deleted", "trackingConfigSaved": "Tracking config saved", "trackingConfigDeleted": "Tracking config deleted", "botRegistered": "Bot registered", "botDeleted": "Bot deleted", "userCreated": "User created", "userDeleted": "User deleted", "passwordChanged": "Password changed", "copied": "Copied to clipboard", "genericError": "Something went wrong", "commandsSaved": "Commands config saved", "commandsSynced": "Commands synced to Telegram", "targetLinked": "Target linked", "targetUnlinked": "Target unlinked", "botUpdated": "Bot updated", "commandConfigSaved": "Command config saved", "commandConfigDeleted": "Command config deleted", "commandTrackerCreated": "Command tracker created", "commandTrackerUpdated": "Command tracker updated", "commandTrackerDeleted": "Command tracker deleted", "commandTrackerEnabled": "Command tracker enabled", "commandTrackerDisabled": "Command tracker disabled", "listenerAdded": "Listener added", "listenerRemoved": "Listener removed", "cmdTemplateSaved": "Command template saved", "cmdTemplateDeleted": "Command template deleted", "emailBotCreated": "Email bot created", "emailBotUpdated": "Email bot updated", "emailBotDeleted": "Email bot deleted", "emailBotTestSent": "Test email sent successfully", "matrixBotCreated": "Matrix bot created", "matrixBotUpdated": "Matrix bot updated", "matrixBotDeleted": "Matrix bot deleted", "matrixBotTestOk": "Matrix connection verified" }, "common": { "loading": "Loading...", "save": "Save", "cancel": "Cancel", "delete": "Delete", "clone": "Clone", "edit": "Edit", "description": "Description", "close": "Close", "confirm": "Confirm", "error": "Error", "success": "Success", "none": "None", "noneDefault": "None (default)", "loadError": "Failed to load data", "headersInvalid": "Invalid JSON", "language": "Language", "theme": "Theme", "light": "Light", "dark": "Dark", "system": "System", "test": "Test", "create": "Create", "changePassword": "Change Password", "currentPassword": "Current password", "newPassword": "New password", "passwordChanged": "Password changed successfully", "expand": "Expand", "collapse": "Collapse", "syntaxError": "Syntax error", "undefinedVar": "Unknown variable", "line": "line", "add": "Add" }, "searchPalette": { "placeholder": "Search entities...", "noResults": "No results found", "typeToSearch": "Start typing to search", "navigate": "navigate", "open": "open", "close": "close" } }