# Aura Agentic AI Cloud — MASTER.md > Single source of truth for the entire infrastructure. > **Last updated:** 2026-05-02 | **VPS:** root@195.35.7.154 > ⚠ Credentials are referenced by location only — never pasted here. --- ## 1. VPS | Field | Value | |-------|-------| | Provider | Hostinger KVM 2 | | Hostname | srv1540635.hstgr.cloud | | IP | 195.35.7.154 | | OS | Ubuntu 24.04.4 LTS | | Kernel | 6.8.0-110-generic x86-64 | | CPU | 2× vCPU (AMD EPYC, KVM) | | RAM | 7.8 GB (4.2 GB used) | | Disk | 96 GB SSD (36 GB used · 61 GB free · 38%) | | Swap | 4 GB (256 KB used) | | SSH Key | C:\Users\Masud\.ssh\id_ed25519 | --- ## 2. Live Services & URLs ### Coolify Services | UUID | Service | URL | Status | |------|---------|-----|--------| | `dhcia3tgcvwmwwvexznjw9gr` | OpenClaw (Primary Agent) | https://agent.auraajenticai.cloud | ✅ Healthy | | `m10jif2sbykx4hd33qf97hc6` | OpenClaw (Secondary / App) | https://app.auraajenticai.cloud | ✅ Healthy | | `j9pqq74tuik1oqd5runx5ncb` | n8n + PostgreSQL + Task Runners | https://n8n.auraajenticai.cloud | ✅ Healthy | | `oqwgsn2lcv3hsk13c6ayj8du` | Gitea + PostgreSQL | https://git.auraajenticai.cloud | ✅ Healthy | ### Coolify Applications | UUID | App | URL | Commit | Status | |------|-----|-----|--------|--------| | `q2kkhvkrpdm6ukj20gv69tuk` | Public Site | https://auraajenticai.cloud | a2a11b4 | ⚠ Pending pull (demo URLs commit not yet applied via Coolify) | | `g5ehpyu7i1azk7f1sv1bhctz` | Central Auth | https://auth.auraajenticai.cloud | 923435bf | ✅ Up | | `m43q7n7vlttrzyxy5v2hkaig` | API Gateway | https://api.auraajenticai.cloud | 8c2045a7 | ✅ Up | | `rdqk1mqe0k8fifs64d7jrzfi` | Client Portal | https://client.auraajenticai.cloud | 03a90610 | ✅ Up | | `j8xnv56xhx6wiaeal2bfiktm` | Billing | https://billing.auraajenticai.cloud | fd9aa384 | ✅ Up | | `zu9kxa9iung19q003ybvcdj3` | Owner Dashboard | https://aura.auraajenticai.cloud | 2b652dba | ✅ Up | | `m6fnc3kfy72tf77anuv4o2f4` | [Internal — UUID subdomain] | https://m6fnc3kfy72tf77anuv4o2f4.auraajenticai.cloud | 3df7af00 | ✅ Up | | `rul16lgnv650ic5kv5wgd51h` | [Staging — no FQDN] | — | 03a90610 | — | | `y22x4z5sxh3854tbmiv98s2j` | [Staging — no FQDN] | — | 03a90610 | — | | `z24up798jcmaf4biwshx2kv5` | [Staging — no FQDN] | — | — | — | ### Coolify System | Service | URL | |---------|-----| | Coolify Dashboard | https://coolify.auraajenticai.cloud (port 8000 local) | | Traefik Dashboard | http://195.35.7.154:8080/dashboard/ ⚠ publicly accessible | | Coolify Version | 4.0.0-beta.473 (Laravel 12.55.1) | | Traefik Version | v3.6 | --- ## 3. Complete Tech Stack ### Infrastructure - **Reverse Proxy:** Traefik v3.6 (HTTP :80 → HTTPS :443, Let's Encrypt cert resolver) - **Orchestration:** Coolify 4.0.0-beta.473 (self-hosted) - **Git:** Gitea v1.26.0 (SSH :22222, HTTP git.auraajenticai.cloud) - **Containers:** Docker + Docker Compose - **OS:** Ubuntu 24.04.4 LTS ### AI / Agents - **Agent Runtime:** OpenClaw v2026.2.6 - **Primary Model:** `openrouter/anthropic/claude-sonnet-4.5` - **AI Provider:** OpenRouter (key in Coolify .env) - **Additional Providers:** Google Gemini (GEMINI_API_KEY set), Groq (GROQ_API_KEY set) - **Channels:** Telegram (@tradingbanglaajentic_bot — long-polling) - **Agent Tools:** read, edit, write, exec, browser, canvas, nodes, cron, message, sessions, web_search, memory ### Automation - **n8n:** v2.10.2 + Task Runners 2.10.2 - **Webhooks:** https://n8n.auraajenticai.cloud/webhook/* ### Frontend - **Public Site:** React 18 + Babel Standalone (CDN, no build step) - **Dashboard/Apps:** SvelteKit 2 + Svelte 5 runes + Tailwind CSS + Vite - **Fonts:** Geist, Geist Mono, Instrument Serif (Google Fonts) ### Backend - **Auth Service:** Hono + Drizzle ORM + JWT + bcrypt (SvelteKit adapter-node) - **API:** Node.js / Hono - **Language:** TypeScript throughout ### Databases | DB | Container | Engine | Database Name | Network IP | |----|-----------|--------|---------------|------------| | Auth/Main | `ernix50nvuq9ur9jy8na8tgr` | Supabase Postgres 17.4 | `aura_auth` | 10.0.1.7:5432 | | n8n | `postgresql-j9pqq74tuik1oqd5runx5ncb` | Postgres 16-alpine | `n8n` | internal | | Gitea | `postgresql-oqwgsn2lcv3hsk13c6ayj8du` | Postgres 16-alpine | `gitea` | internal | | Coolify | `coolify-db` | Postgres 15-alpine | `coolify` | internal | | Document | `b3bhfd7bocb4pm36uv36rebq` | MongoDB 7 | *(various)* | :27017 | | Cache | `coolify-redis` | Redis 7-alpine | — | internal | ### aura_auth DB Schema Tables: `users`, `sessions`, `api_keys`, `audit_logs`, `clients`, `projects`, `skills`, `invoices` --- ## 4. OpenClaw Configuration (Primary — `dhcia3tgcvwmwwvexznjw9gr`) ``` AI Provider: OpenRouter Primary Model: openrouter/anthropic/claude-sonnet-4.5 Secondary Model: anthropic/claude-3.5-haiku (env var, secondary/fast not in schema) Fast Model: anthropic/claude-3-haiku (env var) Gateway: ws://127.0.0.1:18789 (loopback, behind nginx on :8080) Auth mode: token (OPENCLAW_GATEWAY_TOKEN) nginx auth: SERVICE_USER_OPENCLAW / SERVICE_PASSWORD_OPENCLAW ``` ### Telegram Channel ``` Bot username: @tradingbanglaajentic_bot Bot ID: 8736690733 Mode: long-polling (no webhook URL set) Status: enabled, configured, running Channel name: default Token env: TELEGRAM_BOT_TOKEN (in Coolify service .env) ``` > To test: send any message to @tradingbanglaajentic_bot on Telegram. > OpenClaw routes it to the main agent session → claude-sonnet-4.5 → reply back. ### Workspace Files Located at: `/var/lib/docker/volumes/dhcia3tgcvwmwwvexznjw9gr_openclaw-data/_data/workspace/` | File | Purpose | |------|---------| | AGENTS.md | Agent routing rules and capabilities | | BOOTSTRAP.md | Startup context injected every session | | HEARTBEAT.md | Scheduled check-in instructions | | IDENTITY.md | Agent persona and identity rules | | SOUL.md | Core values and behavioral constraints | | TOOLS.md | Available tool descriptions | | USER.md | User (Khondokar) profile and preferences | --- ## 5. n8n Workflows URL: https://n8n.auraajenticai.cloud Contact webhook: `POST https://n8n.auraajenticai.cloud/webhook/contact` | Workflow ID | Name | |-------------|------| | `j2JZuCcx38n6hFUa` | skill-code-review | | `ICKS1V8j0rfFRCAM` | skill-analyze | | `tza1cNW0fCZhMd63` | skill-draft-email | | `1FtaniVPKRBKNDwX` | invoice-overdue-checker | | `MeuMN9zV0m2SlPeV` | skill-summarize | | `l2CkZKPgnSyt3Nvt` | Generate AI viral videos (NanoBanana + VEO3 → Blotato) | | `zLqHh5sJ6rT7lyGU` | new-client-deployment | | `sX0KPnr4c0Zh138d` | contact-form | | `8kjRU6YNvtJpcpTD` | client-onboarding | | `m4AB1XlfpvgmNmLF` | api-usage-weekly-report | --- ## 6. Gitea Repositories Host: https://git.auraajenticai.cloud User: `khondokar` Token location: `C:\Users\Masud\.claude\projects\C--Users-Masud-aura\memory\project_aura_infrastructure.md` | Repo | URL | Last Updated | |------|-----|-------------| | khondokar/auraajenticai-main | git.auraajenticai.cloud/khondokar/auraajenticai-main | 2026-04-27 | ### GitHub Mirrors (github.com/khondokartowsif171) | Repo | GitHub URL | Notes | |------|-----------|-------| | auraajenticai-main | github.com/khondokartowsif171/auraajenticai-main | Main site — latest commit a2a11b4 (demo URLs) | | demo-autostudio-ecomercewebsite | github.com/khondokartowsif171/demo-autostudio-ecomercewebsite | Vite/React ecommerce | | demo-agenticai-website | github.com/khondokartowsif171/demo-agenticai-website | Static HTML portfolio | | demo-cryptotradeanalysis-website | github.com/khondokartowsif171/demo-cryptotradeanalysis-website | React crypto dashboard | | demo-ea-dashboard | github.com/khondokartowsif171/demo-ea-dashboard | Static HTML XAUUSD analyzer | | demo-portfolio-website | github.com/khondokartowsif171/demo-portfolio-website | Vite/React portfolio | --- ## 7. Important File Paths ### On VPS (root@195.35.7.154) ``` /docs/MASTER.md ← this file # Coolify data root /data/coolify/applications/{uuid}/ ← per-app: .env + docker-compose.yaml /data/coolify/services/{uuid}/ ← per-service: .env + docker-compose.yaml /data/coolify/proxy/ ← Traefik dynamic config /data/coolify/ssh/ ← SSH keys for deployments # OpenClaw Primary (dhcia3tgcvwmwwvexznjw9gr) /var/lib/docker/volumes/dhcia3tgcvwmwwvexznjw9gr_openclaw-data/_data/ .openclaw/openclaw.json ← main config (auto-managed by entrypoint) .openclaw/openclaw.json.bak ← backup (up to 4 kept) .openclaw/credentials/ ← API keys/tokens (never edit directly) .openclaw/agents/main/sessions/sessions.json ← conversation history workspace/ ← agent workspace (AGENTS.md, SOUL.md, etc.) # Service .env files (credentials) /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env ← OpenClaw primary /data/coolify/services/m10jif2sbykx4hd33qf97hc6/.env ← OpenClaw secondary /data/coolify/services/j9pqq74tuik1oqd5runx5ncb/.env ← n8n + DB /data/coolify/services/oqwgsn2lcv3hsk13c6ayj8du/.env ← Gitea /data/coolify/applications/{uuid}/.env ← per-app credentials ``` ### On Local (Windows — C:\Users\Masud\) ``` .ssh/id_ed25519 ← VPS SSH private key .claude/settings.json ← MCP servers + API keys .claude/projects/C--Users-Masud-aura/ memory/MEMORY.md ← Memory index memory/project_aura_infrastructure.md ← Infra notes (has tokens) memory/user_khondokar.md ← Founder profile aura/ auraajenticai-main/ ← Public site source (git) src/data.jsx ← All content + brand data src/nav.jsx ← Navigation + lang toggle src/hero.jsx ← Hero section src/app.jsx ← Root app + lang state src/projects.jsx ← Services grid (6 cards) src/timeline-contact.jsx ← Timeline, contact form, footer src/agent-showcase.jsx ← Agent demo terminal index.html ← Entry point + CSS vars Dockerfile ← nginx:1.27-alpine nginx.conf ← JSX MIME fix + gzip + SPA aura-dashboard/ ← Owner Dashboard (SvelteKit 2) n8n-mcp/index.js ← Custom n8n MCP server ``` --- ## 8. Credentials Locations (NOT values) | Credential | Location | |-----------|---------| | VPS root password | Hostinger dashboard (hostinger.com) | | SSH private key | C:\Users\Masud\.ssh\id_ed25519 | | Coolify API token | memory/project_aura_infrastructure.md | | Gitea token (khondokar) | memory/project_aura_infrastructure.md | | OpenRouter API key | /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env → OPENROUTER_API_KEY | | Telegram bot token | /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env → TELEGRAM_BOT_TOKEN | | OpenClaw gateway token | /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env → SERVICE_PASSWORD_64_GATEWAYTOKEN | | OpenClaw nginx auth | /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env → SERVICE_USER/PASSWORD_OPENCLAW | | Gemini API key | /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env → GEMINI_API_KEY | | Groq API key | /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr/.env → GROQ_API_KEY | | n8n admin credentials | /data/coolify/services/j9pqq74tuik1oqd5runx5ncb/.env | | Cloudflare token (n8n) | /data/coolify/services/j9pqq74tuik1oqd5runx5ncb/.env → CLOUDFLARE_TOKEN | | Cloudflare Zone ID | /data/coolify/services/j9pqq74tuik1oqd5runx5ncb/.env → CLOUDFLARE_ZONE_ID | | Supabase DB password | /data/coolify/databases/ernix50nvuq9ur9jy8na8tgr/ or service .env | | MongoDB auth | /data/coolify/databases/b3bhfd7bocb4pm36uv36rebq/ | | JWT secret (shared) | application UUID g5ehpyu7... .env | | aura_auth DB password | application UUIDs (dashboard apps) .env → DATABASE_URL | | Claude Code API key | C:\Users\Masud\.claude\settings.json | | n8n MCP API key | C:\Users\Masud\.claude\settings.json | --- ## 9. MCP Tools Status Configured in: `C:\Users\Masud\.claude\settings.json` | MCP Server | Status | Key Tools | |-----------|--------|-----------| | **Coolify** (`04a4937c-...`) | ✅ Connected | d1_database_*, kv_namespace_*, r2_bucket_*, workers_* | | **Gitea** | ✅ Connected | issue_*, pull_request_*, repo_*, user_* | | **n8n** (local node server) | ✅ Connected | list_workflows, execute_workflow, set_workflow_active | | **Google Calendar** (`c00adf3f-...`) | ✅ Connected | list_events, create_event, update_event | | **Gmail** (`0525003c-...`) | ✅ Connected | search_threads, get_thread, create_draft | | **Google Drive** (`d51cbec6-...`) | ✅ Connected | read_file_content, search_files, create_file | | **Vercel** (`39a5e89f-...`) | ✅ Connected | list_projects, list_deployments, get_runtime_logs | | **Claude Preview** | ✅ Available | preview_start, preview_screenshot, preview_eval | | **Computer Use** | ✅ Available | screenshot, left_click, type, key, scroll | | **Claude-in-Chrome** | ✅ Available | navigate, find, read_page, javascript_tool | --- ## 10. Phase Completion Status | Phase | Description | Status | Completed | |-------|-------------|--------|-----------| | **0** | VPS audit, health report, swap configured, baseline | ✅ Complete | 2026-04-26 | | **1** | Central Auth Service (SvelteKit + Hono + Drizzle + JWT + bcrypt) | ✅ Complete | 2026-04-26 | | **2** | Owner Dashboard upgrade (sidebar nav, auth gate, Clients CRUD, Brain Console) | ✅ Complete | 2026-04-27 | | **3** | Public site (auraajenticai.cloud) — bilingual EN/BN, 6 services, n8n contact form | ✅ Complete | 2026-04-27 | | **4** | OpenClaw AI Agent — OpenRouter + claude-sonnet-4.5 + model ID fix | ✅ Complete | 2026-04-30 | | **5** | Telegram integration — @tradingbanglaajentic_bot wired to OpenClaw agent | ✅ Complete | 2026-05-01 | | **6** | Client portal (client.auraajenticai.cloud) | ✅ Deployed | — | | **7** | API gateway (api.auraajenticai.cloud) | ✅ Deployed | — | | **8** | Billing service (billing.auraajenticai.cloud) | ✅ Deployed | — | | **9** | n8n automation (10 workflows: skills, contact, onboarding, invoice, AI video) | ✅ Active | — | | **10** | DB backups, monitoring, Traefik hardening, OpenClaw secondary model config | ⏳ Pending | — | | **11** | Demo projects — 5 Vercel deployments, GitHub repos, live demo buttons on public site | ✅ Complete | 2026-05-02 | --- ## 11. Pending / Known Gaps ### High Priority - [ ] **Phase 10:** Automated DB backups (no crontab yet — data loss risk) - [ ] **Traefik dashboard** `:8080` is publicly accessible — restrict to VPN/IP allowlist - [ ] **OpenClaw secondary** (`app.auraajenticai.cloud` — `m10jif2sbykx4hd33qf97hc6`) has no `OPENCLAW_PRIMARY_MODEL` set - [ ] **ANTHROPIC_API_KEY** not set in Owner Dashboard app (required for Brain Console feature) - [ ] **Telegram live test** — send `/start` to @tradingbanglaajentic_bot to verify full round-trip - [ ] **Public site — pull & rebuild** — commit `a2a11b4` (demo URLs) is on GitHub but NOT yet pulled into VPS/Coolify. Run from Hostinger console (see §13) - [ ] **Cloudflare DNS** — `auraajenticai.cloud` A record still points to VPS (195.35.7.154). Vercel domain added (`auraajenticai-main` project) but DNS not yet switched. Need `A → 76.76.21.21` + `www CNAME → cname.vercel-dns.com`. Cloudflare token at `/data/coolify/services/j9pqq74tuik1oqd5runx5ncb/.env → CLOUDFLARE_TOKEN` ### Medium Priority - [ ] Set up disk/memory monitoring (no alerting configured) - [ ] Configure Traefik rate limiting on API gateway - [ ] Gitea webhook → Coolify auto-deploy (currently triggered manually) - [ ] n8n workflow active/inactive status audit (10 workflows, status not confirmed per-item) - [ ] MongoDB — confirm root credentials and access restriction ### Low Priority - [ ] `www.auraajenticai.cloud` CNAME redirect to apex - [ ] Log retention policy for OpenClaw gateway logs (`/tmp/openclaw/`) - [ ] Document aura_auth DB migration history - [ ] Add `app.auraajenticai.cloud` source repo to Gitea --- ## 12. Auth Service Details ``` URL: https://auth.auraajenticai.cloud Container UUID: g5ehpyu7i1azk7f1sv1bhctz Container IP: 10.0.1.12 Framework: SvelteKit + Hono + Drizzle + JWT + bcrypt DB: Supabase Postgres 17.4 @ 10.0.1.7:5432/aura_auth Cookies: aura_access → 15-min JWT aura_refresh → 7-day (path /api/auth/refresh) Cookie domain: .auraajenticai.cloud Login URL: https://auth.auraajenticai.cloud/login?next= ``` --- ## 13. Quick Reference Commands ```bash # SSH to VPS ssh root@195.35.7.154 # All containers + status docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}' # OpenClaw — live logs (primary) docker logs openclaw-dhcia3tgcvwmwwvexznjw9gr --tail=30 -f # OpenClaw — test agent docker exec openclaw-dhcia3tgcvwmwwvexznjw9gr \ openclaw agent --message "ping" --session-id main --json # OpenClaw — Telegram channel status docker exec openclaw-dhcia3tgcvwmwwvexznjw9gr openclaw channels status # OpenClaw — restart with updated env cd /data/coolify/services/dhcia3tgcvwmwwvexznjw9gr docker compose up openclaw --force-recreate -d # n8n — list workflows docker exec n8n-j9pqq74tuik1oqd5runx5ncb n8n list:workflow # Disk usage df -h / && du -sh /var/lib/docker/volumes/*openclaw* /data/coolify/ # Check all service domains for d in /data/coolify/services/*/; do uuid=$(basename $d) fqdn=$(grep SERVICE_FQDN= $d/.env 2>/dev/null | cut -d= -f2) echo "$uuid: $fqdn" done ``` --- --- ## 14. Vercel Deployments (2026-05-02) Team: `khondokartowsif171s-projects` (`team_9DzpWOXgLFfZkFhpYL0QoKAO`) | Project | Live URL | GitHub Repo | Notes | |---------|----------|-------------|-------| | auraajenticai-main | https://auraajenticai-main.vercel.app | khondokartowsif171/auraajenticai-main | Main site — domain `auraajenticai.cloud` added to project, DNS not yet switched | | demo-autostudio-ecomercewebsite | https://demo-autostudio-ecomercewebsite.vercel.app | khondokartowsif171/demo-autostudio-ecomercewebsite | Linked to service card: Website & Webapp Dev | | demo-agenticai-website | https://demo-agenticai-website.vercel.app | khondokartowsif171/demo-agenticai-website | Linked to: AI Agent & Automation | | demo-cryptotradeanalysis-website | https://demo-cryptotradeanalysis-website.vercel.app | khondokartowsif171/demo-cryptotradeanalysis-website | Linked to: Web3 & Blockchain | | ea-dashboard | https://ea-dashboard-blush.vercel.app | khondokartowsif171/demo-ea-dashboard | Linked to: MT5 EA & Trading | | portfolio-website | https://portfolio-website-tan-six-24.vercel.app | khondokartowsif171/demo-portfolio-website | Linked to: Scraping & Data Pipeline | ### Demo URL → Service Card Mapping (`src/data.jsx`) ``` web-app-dev → https://demo-autostudio-ecomercewebsite.vercel.app ai-agent-automation → https://demo-agenticai-website.vercel.app web3-blockchain → https://demo-cryptotradeanalysis-website.vercel.app mt5-ea-trading → https://ea-dashboard-blush.vercel.app scraping-data-pipeline → https://portfolio-website-tan-six-24.vercel.app infra-devops → (no demo — button hidden) ``` --- ## 15. VPS Console Commands (run from Hostinger web console) Use when SSH from local machine is blocked by network routing issues. ```bash # Pull latest main site source from GitHub into Coolify app dir cd /data/coolify/applications/q2kkhvkrpdm6ukj20gv69tuk git remote get-url github 2>/dev/null || \ git remote add github https://github.com/khondokartowsif171/auraajenticai-main.git git pull github main # Also push to Gitea to keep it in sync git push origin main # Trigger Coolify rebuild for the public site curl -s -X POST http://localhost:8000/api/v1/applications/q2kkhvkrpdm6ukj20gv69tuk/start \ -H "Authorization: Bearer 6|aura-claude-ceo-2026-secret" # Get Cloudflare token + zone ID for DNS update grep -E "CLOUDFLARE_TOKEN|CLOUDFLARE_ZONE_ID" \ /data/coolify/services/j9pqq74tuik1oqd5runx5ncb/.env # Update Cloudflare DNS: point auraajenticai.cloud to Vercel (76.76.21.21) # Replace ZONE_ID and TOKEN with values from above CF_ZONE="ZONE_ID_HERE" CF_TOKEN="TOKEN_HERE" # Get existing A record ID curl -s "https://api.cloudflare.com/client/v4/zones/$CF_ZONE/dns_records?type=A&name=auraajenticai.cloud" \ -H "Authorization: Bearer $CF_TOKEN" | grep -o '"id":"[^"]*"' | head -1 # Update it (replace RECORD_ID) curl -s -X PUT "https://api.cloudflare.com/client/v4/zones/$CF_ZONE/dns_records/RECORD_ID" \ -H "Authorization: Bearer $CF_TOKEN" -H "Content-Type: application/json" \ -d '{"type":"A","name":"auraajenticai.cloud","content":"76.76.21.21","ttl":1,"proxied":true}' # Add www CNAME curl -s -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE/dns_records" \ -H "Authorization: Bearer $CF_TOKEN" -H "Content-Type: application/json" \ -d '{"type":"CNAME","name":"www","content":"cname.vercel-dns.com","ttl":1,"proxied":false}' ``` --- *Generated by Claude (Aura AI Brain) on 2026-05-01. Updated 2026-05-02. Update this file after each infrastructure change.*