{
  "metadata": {
    "title": "Token Optimization",
    "description": "A detailed course on measuring, analyzing, and reducing the cost of generative AI. Covers LLM and tokenization fundamentals, the Anthropic Claude, OpenAI, and Google Gemini ecosystems and their harness tools (Claude Code, Codex, Antigravity), Skills as a token-optimization primitive, structured logging, observability, A/B testing, prompt and cache optimization, RAG tuning, model routing, output control, agent budget policies, batch APIs, and privacy and compliance.",
    "creator": "Dan McCreary",
    "date": "2026-04-25",
    "version": "1.0",
    "format": "Learning Graph JSON v1.0",
    "schema": "https://raw.githubusercontent.com/dmccreary/learning-graphs/refs/heads/main/src/schema/learning-graph-schema.json",
    "license": "CC BY-NC-SA 4.0 DEED"
  },
  "groups": {
    "ANTH": {
      "classifierName": "Anthropic Claude",
      "color": "MistyRose",
      "font": {
        "color": "black"
      }
    },
    "HARN": {
      "classifierName": "Harness Tools",
      "color": "PeachPuff",
      "font": {
        "color": "black"
      }
    },
    "ROUT": {
      "classifierName": "Routing and Output Control",
      "color": "LightYellow",
      "font": {
        "color": "black"
      }
    },
    "AB": {
      "classifierName": "A/B Testing and Experimentation",
      "color": "Honeydew",
      "font": {
        "color": "black"
      }
    },
    "RAG": {
      "classifierName": "Retrieval and Context Management",
      "color": "PaleTurquoise",
      "font": {
        "color": "black"
      }
    },
    "BUDG": {
      "classifierName": "Agent Budgets and Batch APIs",
      "color": "SteelBlue",
      "font": {
        "color": "black"
      }
    },
    "GOOG": {
      "classifierName": "Google Gemini",
      "color": "Lavender",
      "font": {
        "color": "black"
      }
    },
    "FOUND": {
      "classifierName": "Foundation Concepts",
      "color": "LavenderBlush",
      "font": {
        "color": "black"
      }
    },
    "OBS": {
      "classifierName": "Logging and Observability",
      "color": "Thistle",
      "font": {
        "color": "black"
      }
    },
    "OPT": {
      "classifierName": "Prompt and Cache Optimization",
      "color": "MintCream",
      "font": {
        "color": "black"
      }
    },
    "OAI": {
      "classifierName": "OpenAI Ecosystem",
      "color": "LightCoral",
      "font": {
        "color": "black"
      }
    },
    "CAP": {
      "classifierName": "Capstone and Practice",
      "color": "Plum",
      "font": {
        "color": "black"
      }
    },
    "SKIL": {
      "classifierName": "Skills System",
      "color": "Gainsboro",
      "font": {
        "color": "black"
      }
    },
    "ECON": {
      "classifierName": "Pricing and Economics",
      "color": "PowderBlue",
      "font": {
        "color": "black"
      }
    },
    "PRIV": {
      "classifierName": "Privacy and Compliance",
      "color": "PaleGreen",
      "font": {
        "color": "black"
      }
    }
  },
  "nodes": [
    {
      "id": 1,
      "label": "Generative AI",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 2,
      "label": "Large Language Model",
      "group": "FOUND"
    },
    {
      "id": 3,
      "label": "Foundation Model",
      "group": "FOUND"
    },
    {
      "id": 4,
      "label": "Transformer Architecture",
      "group": "FOUND"
    },
    {
      "id": 5,
      "label": "Autoregressive Generation",
      "group": "FOUND"
    },
    {
      "id": 6,
      "label": "Token",
      "group": "FOUND"
    },
    {
      "id": 7,
      "label": "Input Token",
      "group": "FOUND"
    },
    {
      "id": 8,
      "label": "Output Token",
      "group": "FOUND"
    },
    {
      "id": 9,
      "label": "Cached Token",
      "group": "FOUND"
    },
    {
      "id": 10,
      "label": "Reasoning Token",
      "group": "FOUND"
    },
    {
      "id": 11,
      "label": "Token Count",
      "group": "FOUND"
    },
    {
      "id": 12,
      "label": "Tokenizer",
      "group": "FOUND"
    },
    {
      "id": 13,
      "label": "Byte Pair Encoding",
      "group": "FOUND"
    },
    {
      "id": 14,
      "label": "SentencePiece",
      "group": "FOUND"
    },
    {
      "id": 15,
      "label": "Vocabulary Size",
      "group": "FOUND"
    },
    {
      "id": 16,
      "label": "Context Window",
      "group": "FOUND"
    },
    {
      "id": 17,
      "label": "Context Length",
      "group": "FOUND"
    },
    {
      "id": 18,
      "label": "Prompt",
      "group": "FOUND"
    },
    {
      "id": 19,
      "label": "System Prompt",
      "group": "FOUND"
    },
    {
      "id": 20,
      "label": "User Message",
      "group": "FOUND"
    },
    {
      "id": 21,
      "label": "Assistant Message",
      "group": "FOUND"
    },
    {
      "id": 22,
      "label": "Conversation Turn",
      "group": "FOUND"
    },
    {
      "id": 23,
      "label": "Multi-Turn Dialogue",
      "group": "FOUND"
    },
    {
      "id": 24,
      "label": "Streaming Response",
      "group": "FOUND"
    },
    {
      "id": 25,
      "label": "Stop Sequence",
      "group": "FOUND"
    },
    {
      "id": 26,
      "label": "Max Tokens Parameter",
      "group": "FOUND"
    },
    {
      "id": 27,
      "label": "Temperature",
      "group": "FOUND"
    },
    {
      "id": 28,
      "label": "Top P Sampling",
      "group": "FOUND"
    },
    {
      "id": 29,
      "label": "Logprobs",
      "group": "FOUND"
    },
    {
      "id": 30,
      "label": "Model Family",
      "group": "FOUND"
    },
    {
      "id": 31,
      "label": "Subword Tokenization",
      "group": "FOUND"
    },
    {
      "id": 32,
      "label": "BPE Merge Rules",
      "group": "FOUND"
    },
    {
      "id": 33,
      "label": "Tiktoken Library",
      "group": "FOUND"
    },
    {
      "id": 34,
      "label": "Claude Tokenizer",
      "group": "FOUND"
    },
    {
      "id": 35,
      "label": "Gemini Tokenizer",
      "group": "FOUND"
    },
    {
      "id": 36,
      "label": "Token-To-Char Ratio",
      "group": "FOUND"
    },
    {
      "id": 37,
      "label": "Whitespace Handling",
      "group": "FOUND"
    },
    {
      "id": 38,
      "label": "Unicode Normalization",
      "group": "FOUND"
    },
    {
      "id": 39,
      "label": "Special Tokens",
      "group": "FOUND"
    },
    {
      "id": 40,
      "label": "End-Of-Sequence Token",
      "group": "FOUND"
    },
    {
      "id": 41,
      "label": "Beginning-Of-Sequence Token",
      "group": "FOUND"
    },
    {
      "id": 42,
      "label": "Padding Token",
      "group": "FOUND"
    },
    {
      "id": 43,
      "label": "Token Boundary",
      "group": "FOUND"
    },
    {
      "id": 44,
      "label": "Pre-Tokenization",
      "group": "FOUND"
    },
    {
      "id": 45,
      "label": "Cross-Vendor Tokenizer Drift",
      "group": "FOUND"
    },
    {
      "id": 46,
      "label": "Token Counting API",
      "group": "FOUND"
    },
    {
      "id": 47,
      "label": "Local Token Estimation",
      "group": "FOUND"
    },
    {
      "id": 48,
      "label": "Token Count Caching",
      "group": "FOUND"
    },
    {
      "id": 49,
      "label": "Code Tokenization",
      "group": "FOUND"
    },
    {
      "id": 50,
      "label": "Multilingual Tokenization",
      "group": "FOUND"
    },
    {
      "id": 51,
      "label": "Per-Million-Token Price",
      "group": "ECON"
    },
    {
      "id": 52,
      "label": "Input Token Price",
      "group": "ECON"
    },
    {
      "id": 53,
      "label": "Output Token Price",
      "group": "ECON"
    },
    {
      "id": 54,
      "label": "Cached Input Price",
      "group": "ECON"
    },
    {
      "id": 55,
      "label": "Output Premium",
      "group": "ECON"
    },
    {
      "id": 56,
      "label": "Unit Economics",
      "group": "ECON"
    },
    {
      "id": 57,
      "label": "Cost Per Request",
      "group": "ECON"
    },
    {
      "id": 58,
      "label": "Cost Per Feature",
      "group": "ECON"
    },
    {
      "id": 59,
      "label": "Cost Per User",
      "group": "ECON"
    },
    {
      "id": 60,
      "label": "Cost Per Outcome",
      "group": "ECON"
    },
    {
      "id": 61,
      "label": "Cost Attribution",
      "group": "ECON"
    },
    {
      "id": 62,
      "label": "Token Budget",
      "group": "ECON"
    },
    {
      "id": 63,
      "label": "Monthly Token Spend",
      "group": "ECON"
    },
    {
      "id": 64,
      "label": "Forecasting Token Cost",
      "group": "ECON"
    },
    {
      "id": 65,
      "label": "Cost-Quality Tradeoff",
      "group": "ECON"
    },
    {
      "id": 66,
      "label": "Cost-Latency Tradeoff",
      "group": "ECON"
    },
    {
      "id": 67,
      "label": "Pareto Frontier",
      "group": "ECON"
    },
    {
      "id": 68,
      "label": "Pricing Tier",
      "group": "ECON"
    },
    {
      "id": 69,
      "label": "Volume Discount",
      "group": "ECON"
    },
    {
      "id": 70,
      "label": "Batch Discount",
      "group": "ECON"
    },
    {
      "id": 71,
      "label": "Enterprise Pricing",
      "group": "ECON"
    },
    {
      "id": 72,
      "label": "Free Tier Limit",
      "group": "ECON"
    },
    {
      "id": 73,
      "label": "Rate Limit",
      "group": "ECON"
    },
    {
      "id": 74,
      "label": "Quota Management",
      "group": "ECON"
    },
    {
      "id": 75,
      "label": "Burn Rate",
      "group": "ECON"
    },
    {
      "id": 76,
      "label": "Anthropic API",
      "group": "ANTH"
    },
    {
      "id": 77,
      "label": "Claude Messages API",
      "group": "ANTH"
    },
    {
      "id": 78,
      "label": "Claude Model Family",
      "group": "ANTH"
    },
    {
      "id": 79,
      "label": "Claude Opus",
      "group": "ANTH"
    },
    {
      "id": 80,
      "label": "Claude Sonnet",
      "group": "ANTH"
    },
    {
      "id": 81,
      "label": "Claude Haiku",
      "group": "ANTH"
    },
    {
      "id": 82,
      "label": "Anthropic SDK",
      "group": "ANTH"
    },
    {
      "id": 83,
      "label": "API Key Management",
      "group": "ANTH"
    },
    {
      "id": 84,
      "label": "Anthropic Prompt Caching",
      "group": "ANTH"
    },
    {
      "id": 85,
      "label": "Cache Control Parameter",
      "group": "ANTH"
    },
    {
      "id": 86,
      "label": "Cache Breakpoint",
      "group": "ANTH"
    },
    {
      "id": 87,
      "label": "Cache TTL",
      "group": "ANTH"
    },
    {
      "id": 88,
      "label": "Cache Read Tokens",
      "group": "ANTH"
    },
    {
      "id": 89,
      "label": "Cache Write Tokens",
      "group": "ANTH"
    },
    {
      "id": 90,
      "label": "Extended Thinking",
      "group": "ANTH"
    },
    {
      "id": 91,
      "label": "Thinking Token Budget",
      "group": "ANTH"
    },
    {
      "id": 92,
      "label": "Claude Tool Use",
      "group": "ANTH"
    },
    {
      "id": 93,
      "label": "Tool Definition Schema",
      "group": "ANTH"
    },
    {
      "id": 94,
      "label": "Tool Result Block",
      "group": "ANTH"
    },
    {
      "id": 95,
      "label": "Message Content Block",
      "group": "ANTH"
    },
    {
      "id": 96,
      "label": "Anthropic System Prompt",
      "group": "ANTH"
    },
    {
      "id": 97,
      "label": "Stop Reason",
      "group": "ANTH"
    },
    {
      "id": 98,
      "label": "Anthropic Streaming",
      "group": "ANTH"
    },
    {
      "id": 99,
      "label": "Anthropic Batch API",
      "group": "ANTH"
    },
    {
      "id": 100,
      "label": "Claude Vision Input",
      "group": "ANTH"
    },
    {
      "id": 101,
      "label": "OpenAI API",
      "group": "OAI"
    },
    {
      "id": 102,
      "label": "Chat Completions API",
      "group": "OAI"
    },
    {
      "id": 103,
      "label": "OpenAI Responses API",
      "group": "OAI"
    },
    {
      "id": 104,
      "label": "OpenAI Model Family",
      "group": "OAI"
    },
    {
      "id": 105,
      "label": "GPT Model Series",
      "group": "OAI"
    },
    {
      "id": 106,
      "label": "OpenAI O Series",
      "group": "OAI"
    },
    {
      "id": 107,
      "label": "Reasoning Model",
      "group": "OAI"
    },
    {
      "id": 108,
      "label": "OpenAI SDK",
      "group": "OAI"
    },
    {
      "id": 109,
      "label": "Function Calling",
      "group": "OAI"
    },
    {
      "id": 110,
      "label": "Tool Choice Parameter",
      "group": "OAI"
    },
    {
      "id": 111,
      "label": "JSON Mode",
      "group": "OAI"
    },
    {
      "id": 112,
      "label": "Structured Outputs",
      "group": "OAI"
    },
    {
      "id": 113,
      "label": "Response Format",
      "group": "OAI"
    },
    {
      "id": 114,
      "label": "OpenAI Streaming",
      "group": "OAI"
    },
    {
      "id": 115,
      "label": "OpenAI Batch API",
      "group": "OAI"
    },
    {
      "id": 116,
      "label": "OpenAI Embeddings",
      "group": "OAI"
    },
    {
      "id": 117,
      "label": "OpenAI Fine Tuning",
      "group": "OAI"
    },
    {
      "id": 118,
      "label": "OpenAI Vision",
      "group": "OAI"
    },
    {
      "id": 119,
      "label": "Logit Bias",
      "group": "OAI"
    },
    {
      "id": 120,
      "label": "Seed Parameter",
      "group": "OAI"
    },
    {
      "id": 121,
      "label": "Token Usage Object",
      "group": "OAI"
    },
    {
      "id": 122,
      "label": "Prompt Tokens Field",
      "group": "OAI"
    },
    {
      "id": 123,
      "label": "Completion Tokens Field",
      "group": "OAI"
    },
    {
      "id": 124,
      "label": "Total Tokens Field",
      "group": "OAI"
    },
    {
      "id": 125,
      "label": "OpenAI Rate Limits",
      "group": "OAI"
    },
    {
      "id": 126,
      "label": "Google Gemini API",
      "group": "GOOG"
    },
    {
      "id": 127,
      "label": "Gemini Model Family",
      "group": "GOOG"
    },
    {
      "id": 128,
      "label": "Gemini Pro",
      "group": "GOOG"
    },
    {
      "id": 129,
      "label": "Gemini Flash",
      "group": "GOOG"
    },
    {
      "id": 130,
      "label": "Gemini Ultra",
      "group": "GOOG"
    },
    {
      "id": 131,
      "label": "Gemini SDK",
      "group": "GOOG"
    },
    {
      "id": 132,
      "label": "Long Context Window",
      "group": "GOOG"
    },
    {
      "id": 133,
      "label": "One Million Context",
      "group": "GOOG"
    },
    {
      "id": 134,
      "label": "Gemini Function Calling",
      "group": "GOOG"
    },
    {
      "id": 135,
      "label": "Gemini Tool Config",
      "group": "GOOG"
    },
    {
      "id": 136,
      "label": "Gemini Streaming",
      "group": "GOOG"
    },
    {
      "id": 137,
      "label": "Gemini Batch Mode",
      "group": "GOOG"
    },
    {
      "id": 138,
      "label": "Gemini Caching",
      "group": "GOOG"
    },
    {
      "id": 139,
      "label": "Vertex AI",
      "group": "GOOG"
    },
    {
      "id": 140,
      "label": "Google AI Studio",
      "group": "GOOG"
    },
    {
      "id": 141,
      "label": "Gemini Safety Settings",
      "group": "GOOG"
    },
    {
      "id": 142,
      "label": "Gemini Multimodal Input",
      "group": "GOOG"
    },
    {
      "id": 143,
      "label": "Gemini Code Execution",
      "group": "GOOG"
    },
    {
      "id": 144,
      "label": "Gemini Grounding",
      "group": "GOOG"
    },
    {
      "id": 145,
      "label": "Gemini Token Counting",
      "group": "GOOG"
    },
    {
      "id": 146,
      "label": "AI Coding Harness",
      "group": "HARN"
    },
    {
      "id": 147,
      "label": "Agentic Loop",
      "group": "HARN"
    },
    {
      "id": 148,
      "label": "Tool Use Loop",
      "group": "HARN"
    },
    {
      "id": 149,
      "label": "Claude Code",
      "group": "HARN"
    },
    {
      "id": 150,
      "label": "Claude Code Session",
      "group": "HARN"
    },
    {
      "id": 151,
      "label": "Claude Code Hooks",
      "group": "HARN"
    },
    {
      "id": 152,
      "label": "OpenAI Codex CLI",
      "group": "HARN"
    },
    {
      "id": 153,
      "label": "Codex Session",
      "group": "HARN"
    },
    {
      "id": 154,
      "label": "Google Antigravity",
      "group": "HARN"
    },
    {
      "id": 155,
      "label": "Antigravity Workspace",
      "group": "HARN"
    },
    {
      "id": 156,
      "label": "Harness System Prompt",
      "group": "HARN"
    },
    {
      "id": 157,
      "label": "Harness Token Overhead",
      "group": "HARN"
    },
    {
      "id": 158,
      "label": "Session Token Accumulation",
      "group": "HARN"
    },
    {
      "id": 159,
      "label": "Per-Session Token Cost",
      "group": "HARN"
    },
    {
      "id": 160,
      "label": "Conversation Compaction",
      "group": "HARN"
    },
    {
      "id": 161,
      "label": "Auto Compaction",
      "group": "HARN"
    },
    {
      "id": 162,
      "label": "Manual Compaction",
      "group": "HARN"
    },
    {
      "id": 163,
      "label": "Tool Call Iteration",
      "group": "HARN"
    },
    {
      "id": 164,
      "label": "Multi-Step Reasoning",
      "group": "HARN"
    },
    {
      "id": 165,
      "label": "Subagent Pattern",
      "group": "HARN"
    },
    {
      "id": 166,
      "label": "Agent Memory",
      "group": "HARN"
    },
    {
      "id": 167,
      "label": "Persistent Memory File",
      "group": "HARN"
    },
    {
      "id": 168,
      "label": "Working Directory Context",
      "group": "HARN"
    },
    {
      "id": 169,
      "label": "File Read Tool",
      "group": "HARN"
    },
    {
      "id": 170,
      "label": "File Edit Tool",
      "group": "HARN"
    },
    {
      "id": 171,
      "label": "Skill",
      "group": "SKIL"
    },
    {
      "id": 172,
      "label": "Skill Description",
      "group": "SKIL"
    },
    {
      "id": 173,
      "label": "Skill Body",
      "group": "SKIL"
    },
    {
      "id": 174,
      "label": "Skill Trigger",
      "group": "SKIL"
    },
    {
      "id": 175,
      "label": "Skill Invocation",
      "group": "SKIL"
    },
    {
      "id": 176,
      "label": "Skill Frontmatter",
      "group": "SKIL"
    },
    {
      "id": 177,
      "label": "Skill Bundle",
      "group": "SKIL"
    },
    {
      "id": 178,
      "label": "Bundled Script",
      "group": "SKIL"
    },
    {
      "id": 179,
      "label": "Skill Asset File",
      "group": "SKIL"
    },
    {
      "id": 180,
      "label": "Lazy Skill Loading",
      "group": "SKIL"
    },
    {
      "id": 181,
      "label": "Eager Skill Listing",
      "group": "SKIL"
    },
    {
      "id": 182,
      "label": "Task Decomposition",
      "group": "SKIL"
    },
    {
      "id": 183,
      "label": "Task-Skill Binding",
      "group": "SKIL"
    },
    {
      "id": 184,
      "label": "Skill Selection",
      "group": "SKIL"
    },
    {
      "id": 185,
      "label": "Skill Misfire",
      "group": "SKIL"
    },
    {
      "id": 186,
      "label": "False Positive Trigger",
      "group": "SKIL"
    },
    {
      "id": 187,
      "label": "False Negative Trigger",
      "group": "SKIL"
    },
    {
      "id": 188,
      "label": "Trigger Precision",
      "group": "SKIL"
    },
    {
      "id": 189,
      "label": "Skill Library",
      "group": "SKIL"
    },
    {
      "id": 190,
      "label": "Anthropic Skill Format",
      "group": "SKIL"
    },
    {
      "id": 191,
      "label": "Script Delegation",
      "group": "SKIL"
    },
    {
      "id": 192,
      "label": "Shell Script Skill",
      "group": "SKIL"
    },
    {
      "id": 193,
      "label": "Python Script Skill",
      "group": "SKIL"
    },
    {
      "id": 194,
      "label": "Skill Refactoring",
      "group": "SKIL"
    },
    {
      "id": 195,
      "label": "Token Reduction Ratio",
      "group": "SKIL"
    },
    {
      "id": 196,
      "label": "Structured Logging",
      "group": "OBS"
    },
    {
      "id": 197,
      "label": "Log Schema Design",
      "group": "OBS"
    },
    {
      "id": 198,
      "label": "Log Line",
      "group": "OBS"
    },
    {
      "id": 199,
      "label": "JSON Log Format",
      "group": "OBS"
    },
    {
      "id": 200,
      "label": "Log Field",
      "group": "OBS"
    },
    {
      "id": 201,
      "label": "Required Log Field",
      "group": "OBS"
    },
    {
      "id": 202,
      "label": "Optional Log Field",
      "group": "OBS"
    },
    {
      "id": 203,
      "label": "Model Field",
      "group": "OBS"
    },
    {
      "id": 204,
      "label": "Prompt Hash",
      "group": "OBS"
    },
    {
      "id": 205,
      "label": "Input Token Field",
      "group": "OBS"
    },
    {
      "id": 206,
      "label": "Output Token Field",
      "group": "OBS"
    },
    {
      "id": 207,
      "label": "Cached Token Field",
      "group": "OBS"
    },
    {
      "id": 208,
      "label": "Latency Field",
      "group": "OBS"
    },
    {
      "id": 209,
      "label": "Cost Field",
      "group": "OBS"
    },
    {
      "id": 210,
      "label": "Feature Tag",
      "group": "OBS"
    },
    {
      "id": 211,
      "label": "User Identifier",
      "group": "OBS"
    },
    {
      "id": 212,
      "label": "Outcome Field",
      "group": "OBS"
    },
    {
      "id": 213,
      "label": "Trace Identifier",
      "group": "OBS"
    },
    {
      "id": 214,
      "label": "Span Identifier",
      "group": "OBS"
    },
    {
      "id": 215,
      "label": "Request Identifier",
      "group": "OBS"
    },
    {
      "id": 216,
      "label": "Session Identifier",
      "group": "OBS"
    },
    {
      "id": 217,
      "label": "PII Redaction",
      "group": "OBS"
    },
    {
      "id": 218,
      "label": "Prompt Truncation In Logs",
      "group": "OBS"
    },
    {
      "id": 219,
      "label": "Log Sampling",
      "group": "OBS"
    },
    {
      "id": 220,
      "label": "Log Retention Policy",
      "group": "OBS"
    },
    {
      "id": 221,
      "label": "Observability",
      "group": "OBS"
    },
    {
      "id": 222,
      "label": "OpenTelemetry",
      "group": "OBS"
    },
    {
      "id": 223,
      "label": "OTel LLM Conventions",
      "group": "OBS"
    },
    {
      "id": 224,
      "label": "Metric",
      "group": "OBS"
    },
    {
      "id": 225,
      "label": "Counter Metric",
      "group": "OBS"
    },
    {
      "id": 226,
      "label": "Histogram Metric",
      "group": "OBS"
    },
    {
      "id": 227,
      "label": "Dashboard",
      "group": "OBS"
    },
    {
      "id": 228,
      "label": "Cost Dashboard",
      "group": "OBS"
    },
    {
      "id": 229,
      "label": "Hit Rate Dashboard",
      "group": "OBS"
    },
    {
      "id": 230,
      "label": "Latency Dashboard",
      "group": "OBS"
    },
    {
      "id": 231,
      "label": "Token Volume Chart",
      "group": "OBS"
    },
    {
      "id": 232,
      "label": "Time Series Aggregation",
      "group": "OBS"
    },
    {
      "id": 233,
      "label": "Anomaly Detection",
      "group": "OBS"
    },
    {
      "id": 234,
      "label": "Alerting Rule",
      "group": "OBS"
    },
    {
      "id": 235,
      "label": "Token Spike Alert",
      "group": "OBS"
    },
    {
      "id": 236,
      "label": "Cost Threshold Alert",
      "group": "OBS"
    },
    {
      "id": 237,
      "label": "Cardinality Concern",
      "group": "OBS"
    },
    {
      "id": 238,
      "label": "Aggregation Period",
      "group": "OBS"
    },
    {
      "id": 239,
      "label": "Drill-Down Analysis",
      "group": "OBS"
    },
    {
      "id": 240,
      "label": "Cross-Service Tracing",
      "group": "OBS"
    },
    {
      "id": 241,
      "label": "Log File Analysis",
      "group": "OBS"
    },
    {
      "id": 242,
      "label": "Log Aggregation",
      "group": "OBS"
    },
    {
      "id": 243,
      "label": "Top-N Cost Drivers",
      "group": "OBS"
    },
    {
      "id": 244,
      "label": "Pareto Analysis",
      "group": "OBS"
    },
    {
      "id": 245,
      "label": "Outlier Detection",
      "group": "OBS"
    },
    {
      "id": 246,
      "label": "Runaway Prompt",
      "group": "OBS"
    },
    {
      "id": 247,
      "label": "Pathological Agent Loop",
      "group": "OBS"
    },
    {
      "id": 248,
      "label": "Cost Hotspot",
      "group": "OBS"
    },
    {
      "id": 249,
      "label": "Per-Feature Cost Roll-Up",
      "group": "OBS"
    },
    {
      "id": 250,
      "label": "Per-User Cost Roll-Up",
      "group": "OBS"
    },
    {
      "id": 251,
      "label": "Per-Model Cost Roll-Up",
      "group": "OBS"
    },
    {
      "id": 252,
      "label": "Prompt Template Grouping",
      "group": "OBS"
    },
    {
      "id": 253,
      "label": "Cohort Analysis",
      "group": "OBS"
    },
    {
      "id": 254,
      "label": "Funnel Analysis",
      "group": "OBS"
    },
    {
      "id": 255,
      "label": "Histogram Of Token Counts",
      "group": "OBS"
    },
    {
      "id": 256,
      "label": "P50 Token Usage",
      "group": "OBS"
    },
    {
      "id": 257,
      "label": "P95 Token Usage",
      "group": "OBS"
    },
    {
      "id": 258,
      "label": "P99 Token Usage",
      "group": "OBS"
    },
    {
      "id": 259,
      "label": "Long-Tail Cost",
      "group": "OBS"
    },
    {
      "id": 260,
      "label": "Analysis Notebook",
      "group": "OBS"
    },
    {
      "id": 261,
      "label": "A/B Testing",
      "group": "AB"
    },
    {
      "id": 262,
      "label": "Hypothesis",
      "group": "AB"
    },
    {
      "id": 263,
      "label": "Null Hypothesis",
      "group": "AB"
    },
    {
      "id": 264,
      "label": "Control Group",
      "group": "AB"
    },
    {
      "id": 265,
      "label": "Treatment Group",
      "group": "AB"
    },
    {
      "id": 266,
      "label": "Traffic Split",
      "group": "AB"
    },
    {
      "id": 267,
      "label": "Random Assignment",
      "group": "AB"
    },
    {
      "id": 268,
      "label": "Stratified Assignment",
      "group": "AB"
    },
    {
      "id": 269,
      "label": "Primary Metric",
      "group": "AB"
    },
    {
      "id": 270,
      "label": "Guardrail Metric",
      "group": "AB"
    },
    {
      "id": 271,
      "label": "Quality Metric",
      "group": "AB"
    },
    {
      "id": 272,
      "label": "Cost Metric",
      "group": "AB"
    },
    {
      "id": 273,
      "label": "Latency Metric",
      "group": "AB"
    },
    {
      "id": 274,
      "label": "Satisfaction Metric",
      "group": "AB"
    },
    {
      "id": 275,
      "label": "Sample Size Calculation",
      "group": "AB"
    },
    {
      "id": 276,
      "label": "Statistical Power",
      "group": "AB"
    },
    {
      "id": 277,
      "label": "Statistical Significance",
      "group": "AB"
    },
    {
      "id": 278,
      "label": "P-Value",
      "group": "AB"
    },
    {
      "id": 279,
      "label": "Confidence Interval",
      "group": "AB"
    },
    {
      "id": 280,
      "label": "Effect Size",
      "group": "AB"
    },
    {
      "id": 281,
      "label": "Stopping Rule",
      "group": "AB"
    },
    {
      "id": 282,
      "label": "Sequential Testing",
      "group": "AB"
    },
    {
      "id": 283,
      "label": "Multi-Armed Bandit",
      "group": "AB"
    },
    {
      "id": 284,
      "label": "CUPED Adjustment",
      "group": "AB"
    },
    {
      "id": 285,
      "label": "Novelty Effect",
      "group": "AB"
    },
    {
      "id": 286,
      "label": "Prompt Engineering",
      "group": "OPT"
    },
    {
      "id": 287,
      "label": "System Prompt Hygiene",
      "group": "OPT"
    },
    {
      "id": 288,
      "label": "Instruction Compression",
      "group": "OPT"
    },
    {
      "id": 289,
      "label": "Few-Shot Example",
      "group": "OPT"
    },
    {
      "id": 290,
      "label": "Few-Shot Pruning",
      "group": "OPT"
    },
    {
      "id": 291,
      "label": "Zero-Shot Prompting",
      "group": "OPT"
    },
    {
      "id": 292,
      "label": "Chain Of Thought",
      "group": "OPT"
    },
    {
      "id": 293,
      "label": "Dead Context",
      "group": "OPT"
    },
    {
      "id": 294,
      "label": "Redundant Instruction",
      "group": "OPT"
    },
    {
      "id": 295,
      "label": "Verbose Boilerplate",
      "group": "OPT"
    },
    {
      "id": 296,
      "label": "Prompt Template",
      "group": "OPT"
    },
    {
      "id": 297,
      "label": "Template Versioning",
      "group": "OPT"
    },
    {
      "id": 298,
      "label": "Prompt Variable",
      "group": "OPT"
    },
    {
      "id": 299,
      "label": "Variable Interpolation",
      "group": "OPT"
    },
    {
      "id": 300,
      "label": "Prompt Compression Tool",
      "group": "OPT"
    },
    {
      "id": 301,
      "label": "Selective Compression",
      "group": "OPT"
    },
    {
      "id": 302,
      "label": "Prompt Length Budget",
      "group": "OPT"
    },
    {
      "id": 303,
      "label": "Output Length Budget",
      "group": "OPT"
    },
    {
      "id": 304,
      "label": "Concise Output Instruction",
      "group": "OPT"
    },
    {
      "id": 305,
      "label": "Token-Aware Rewriting",
      "group": "OPT"
    },
    {
      "id": 306,
      "label": "Whitespace Stripping",
      "group": "OPT"
    },
    {
      "id": 307,
      "label": "Comment Removal",
      "group": "OPT"
    },
    {
      "id": 308,
      "label": "Schema Minimization",
      "group": "OPT"
    },
    {
      "id": 309,
      "label": "Symbol Substitution",
      "group": "OPT"
    },
    {
      "id": 310,
      "label": "Reusable Prompt Block",
      "group": "OPT"
    },
    {
      "id": 311,
      "label": "Prompt Caching",
      "group": "OPT"
    },
    {
      "id": 312,
      "label": "Cache Key",
      "group": "OPT"
    },
    {
      "id": 313,
      "label": "Cache Hit",
      "group": "OPT"
    },
    {
      "id": 314,
      "label": "Cache Miss",
      "group": "OPT"
    },
    {
      "id": 315,
      "label": "Cache Hit Rate",
      "group": "OPT"
    },
    {
      "id": 316,
      "label": "Cache Warming",
      "group": "OPT"
    },
    {
      "id": 317,
      "label": "Cache Invalidation",
      "group": "OPT"
    },
    {
      "id": 318,
      "label": "Cache Invariant",
      "group": "OPT"
    },
    {
      "id": 319,
      "label": "Stable Prefix",
      "group": "OPT"
    },
    {
      "id": 320,
      "label": "Volatile Suffix",
      "group": "OPT"
    },
    {
      "id": 321,
      "label": "Cache Boundary",
      "group": "OPT"
    },
    {
      "id": 322,
      "label": "Cross-Vendor Caching",
      "group": "OPT"
    },
    {
      "id": 323,
      "label": "Cache Cost Savings",
      "group": "OPT"
    },
    {
      "id": 324,
      "label": "Cache Monitoring",
      "group": "OPT"
    },
    {
      "id": 325,
      "label": "Cache Hit Rate Metric",
      "group": "OPT"
    },
    {
      "id": 326,
      "label": "Cache Eviction",
      "group": "OPT"
    },
    {
      "id": 327,
      "label": "Implicit Caching",
      "group": "OPT"
    },
    {
      "id": 328,
      "label": "Explicit Caching",
      "group": "OPT"
    },
    {
      "id": 329,
      "label": "Cache Aware Routing",
      "group": "OPT"
    },
    {
      "id": 330,
      "label": "Cache Stampede",
      "group": "OPT"
    },
    {
      "id": 331,
      "label": "Retrieval Augmented Generation",
      "group": "RAG"
    },
    {
      "id": 332,
      "label": "Embedding",
      "group": "RAG"
    },
    {
      "id": 333,
      "label": "Vector Database",
      "group": "RAG"
    },
    {
      "id": 334,
      "label": "Chunking",
      "group": "RAG"
    },
    {
      "id": 335,
      "label": "Chunk Size",
      "group": "RAG"
    },
    {
      "id": 336,
      "label": "Chunk Overlap",
      "group": "RAG"
    },
    {
      "id": 337,
      "label": "Top-K Retrieval",
      "group": "RAG"
    },
    {
      "id": 338,
      "label": "Reranker",
      "group": "RAG"
    },
    {
      "id": 339,
      "label": "Cross-Encoder Reranker",
      "group": "RAG"
    },
    {
      "id": 340,
      "label": "Retrieval Score",
      "group": "RAG"
    },
    {
      "id": 341,
      "label": "Context Injection",
      "group": "RAG"
    },
    {
      "id": 342,
      "label": "Retrieved Context Bloat",
      "group": "RAG"
    },
    {
      "id": 343,
      "label": "Context Pruning",
      "group": "RAG"
    },
    {
      "id": 344,
      "label": "Hybrid Retrieval",
      "group": "RAG"
    },
    {
      "id": 345,
      "label": "BM25 Retrieval",
      "group": "RAG"
    },
    {
      "id": 346,
      "label": "Dense Retrieval",
      "group": "RAG"
    },
    {
      "id": 347,
      "label": "Query Rewriting",
      "group": "RAG"
    },
    {
      "id": 348,
      "label": "HyDE",
      "group": "RAG"
    },
    {
      "id": 349,
      "label": "Document Compression",
      "group": "RAG"
    },
    {
      "id": 350,
      "label": "Summarization-Based RAG",
      "group": "RAG"
    },
    {
      "id": 351,
      "label": "Citation Of Sources",
      "group": "RAG"
    },
    {
      "id": 352,
      "label": "RAG Cost Analysis",
      "group": "RAG"
    },
    {
      "id": 353,
      "label": "Context Quality Metric",
      "group": "RAG"
    },
    {
      "id": 354,
      "label": "Retrieval Precision",
      "group": "RAG"
    },
    {
      "id": 355,
      "label": "Retrieval Recall",
      "group": "RAG"
    },
    {
      "id": 356,
      "label": "Context Window Budget",
      "group": "RAG"
    },
    {
      "id": 357,
      "label": "Sliding Window",
      "group": "RAG"
    },
    {
      "id": 358,
      "label": "Conversation Summarization",
      "group": "RAG"
    },
    {
      "id": 359,
      "label": "Compaction Strategy",
      "group": "RAG"
    },
    {
      "id": 360,
      "label": "Hierarchical Summary",
      "group": "RAG"
    },
    {
      "id": 361,
      "label": "Memory File",
      "group": "RAG"
    },
    {
      "id": 362,
      "label": "Long-Term Memory",
      "group": "RAG"
    },
    {
      "id": 363,
      "label": "Short-Term Memory",
      "group": "RAG"
    },
    {
      "id": 364,
      "label": "Context Truncation",
      "group": "RAG"
    },
    {
      "id": 365,
      "label": "Pre-Send Token Counting",
      "group": "RAG"
    },
    {
      "id": 366,
      "label": "Context Quality Decay",
      "group": "RAG"
    },
    {
      "id": 367,
      "label": "Lost-In-The-Middle",
      "group": "RAG"
    },
    {
      "id": 368,
      "label": "Context Reordering",
      "group": "RAG"
    },
    {
      "id": 369,
      "label": "Selective Context Inclusion",
      "group": "RAG"
    },
    {
      "id": 370,
      "label": "Context Eviction Policy",
      "group": "RAG"
    },
    {
      "id": 371,
      "label": "Model Routing",
      "group": "ROUT"
    },
    {
      "id": 372,
      "label": "Cheap-First Cascade",
      "group": "ROUT"
    },
    {
      "id": 373,
      "label": "Escalation Trigger",
      "group": "ROUT"
    },
    {
      "id": 374,
      "label": "Confidence Threshold",
      "group": "ROUT"
    },
    {
      "id": 375,
      "label": "Quality Gate",
      "group": "ROUT"
    },
    {
      "id": 376,
      "label": "Fallback Model",
      "group": "ROUT"
    },
    {
      "id": 377,
      "label": "Cross-Vendor Routing",
      "group": "ROUT"
    },
    {
      "id": 378,
      "label": "Task Classifier",
      "group": "ROUT"
    },
    {
      "id": 379,
      "label": "Difficulty Estimation",
      "group": "ROUT"
    },
    {
      "id": 380,
      "label": "Routing Policy",
      "group": "ROUT"
    },
    {
      "id": 381,
      "label": "Routing Cost Savings",
      "group": "ROUT"
    },
    {
      "id": 382,
      "label": "Routing Quality Risk",
      "group": "ROUT"
    },
    {
      "id": 383,
      "label": "Per-Task Model Selection",
      "group": "ROUT"
    },
    {
      "id": 384,
      "label": "Vendor Lock-In Risk",
      "group": "ROUT"
    },
    {
      "id": 385,
      "label": "Vendor-Neutral Abstraction",
      "group": "ROUT"
    },
    {
      "id": 386,
      "label": "Max Tokens Setting",
      "group": "ROUT"
    },
    {
      "id": 387,
      "label": "Stop Sequence Setting",
      "group": "ROUT"
    },
    {
      "id": 388,
      "label": "Length Penalty",
      "group": "ROUT"
    },
    {
      "id": 389,
      "label": "JSON Schema Output",
      "group": "ROUT"
    },
    {
      "id": 390,
      "label": "Concise Mode",
      "group": "ROUT"
    },
    {
      "id": 391,
      "label": "Verbosity Parameter",
      "group": "ROUT"
    },
    {
      "id": 392,
      "label": "Reasoning Budget",
      "group": "ROUT"
    },
    {
      "id": 393,
      "label": "Thinking Token Limit",
      "group": "ROUT"
    },
    {
      "id": 394,
      "label": "Truncation Detection",
      "group": "ROUT"
    },
    {
      "id": 395,
      "label": "Streaming Cancellation",
      "group": "ROUT"
    },
    {
      "id": 396,
      "label": "Early Stopping",
      "group": "ROUT"
    },
    {
      "id": 397,
      "label": "Output Postprocessing",
      "group": "ROUT"
    },
    {
      "id": 398,
      "label": "Output Validation",
      "group": "ROUT"
    },
    {
      "id": 399,
      "label": "Schema Enforcement",
      "group": "ROUT"
    },
    {
      "id": 400,
      "label": "Reasoning Effort Setting",
      "group": "ROUT"
    },
    {
      "id": 401,
      "label": "Agent Budget Policy",
      "group": "BUDG"
    },
    {
      "id": 402,
      "label": "Per-Session Token Budget",
      "group": "BUDG"
    },
    {
      "id": 403,
      "label": "Per-Session Tool Call Budget",
      "group": "BUDG"
    },
    {
      "id": 404,
      "label": "Loop Iteration Limit",
      "group": "BUDG"
    },
    {
      "id": 405,
      "label": "Wall Clock Limit",
      "group": "BUDG"
    },
    {
      "id": 406,
      "label": "Cost Cap",
      "group": "BUDG"
    },
    {
      "id": 407,
      "label": "Graceful Degradation",
      "group": "BUDG"
    },
    {
      "id": 408,
      "label": "Budget Exhaustion Handling",
      "group": "BUDG"
    },
    {
      "id": 409,
      "label": "Runaway Detection",
      "group": "BUDG"
    },
    {
      "id": 410,
      "label": "Circuit Breaker Pattern",
      "group": "BUDG"
    },
    {
      "id": 411,
      "label": "Tool Call Throttling",
      "group": "BUDG"
    },
    {
      "id": 412,
      "label": "Subtask Budget Allocation",
      "group": "BUDG"
    },
    {
      "id": 413,
      "label": "Budget Audit Log",
      "group": "BUDG"
    },
    {
      "id": 414,
      "label": "Budget Reporting",
      "group": "BUDG"
    },
    {
      "id": 415,
      "label": "Per-Engineer Budget",
      "group": "BUDG"
    },
    {
      "id": 416,
      "label": "Per-Repository Budget",
      "group": "BUDG"
    },
    {
      "id": 417,
      "label": "Per-PR Budget",
      "group": "BUDG"
    },
    {
      "id": 418,
      "label": "Budget Notification",
      "group": "BUDG"
    },
    {
      "id": 419,
      "label": "Manager Weekly Report",
      "group": "BUDG"
    },
    {
      "id": 420,
      "label": "Budget Versus Outcome",
      "group": "BUDG"
    },
    {
      "id": 421,
      "label": "Batch API",
      "group": "BUDG"
    },
    {
      "id": 422,
      "label": "Asynchronous API",
      "group": "BUDG"
    },
    {
      "id": 423,
      "label": "Batch Job Submission",
      "group": "BUDG"
    },
    {
      "id": 424,
      "label": "Batch Job Status",
      "group": "BUDG"
    },
    {
      "id": 425,
      "label": "Batch Window",
      "group": "BUDG"
    },
    {
      "id": 426,
      "label": "Batch Discount Rate",
      "group": "BUDG"
    },
    {
      "id": 427,
      "label": "Batch Versus Synchronous",
      "group": "BUDG"
    },
    {
      "id": 428,
      "label": "Throughput Optimization",
      "group": "BUDG"
    },
    {
      "id": 429,
      "label": "Latency Tolerance",
      "group": "BUDG"
    },
    {
      "id": 430,
      "label": "Job Queue",
      "group": "BUDG"
    },
    {
      "id": 431,
      "label": "Result Polling",
      "group": "BUDG"
    },
    {
      "id": 432,
      "label": "Webhook Notification",
      "group": "BUDG"
    },
    {
      "id": 433,
      "label": "Idempotency Key",
      "group": "BUDG"
    },
    {
      "id": 434,
      "label": "Retry Policy",
      "group": "BUDG"
    },
    {
      "id": 435,
      "label": "Backoff Strategy",
      "group": "BUDG"
    },
    {
      "id": 436,
      "label": "Data Privacy",
      "group": "PRIV"
    },
    {
      "id": 437,
      "label": "PII Detection",
      "group": "PRIV"
    },
    {
      "id": 438,
      "label": "Sensitive Field Redaction",
      "group": "PRIV"
    },
    {
      "id": 439,
      "label": "Compliance Risk",
      "group": "PRIV"
    },
    {
      "id": 440,
      "label": "GDPR",
      "group": "PRIV"
    },
    {
      "id": 441,
      "label": "HIPAA",
      "group": "PRIV"
    },
    {
      "id": 442,
      "label": "SOC2 Audit",
      "group": "PRIV"
    },
    {
      "id": 443,
      "label": "Data Residency",
      "group": "PRIV"
    },
    {
      "id": 444,
      "label": "Vendor Data Retention",
      "group": "PRIV"
    },
    {
      "id": 445,
      "label": "Opt-Out Of Training",
      "group": "PRIV"
    },
    {
      "id": 446,
      "label": "Logging Privacy Risk",
      "group": "PRIV"
    },
    {
      "id": 447,
      "label": "Hashing Sensitive Strings",
      "group": "PRIV"
    },
    {
      "id": 448,
      "label": "Tokenized Identifier",
      "group": "PRIV"
    },
    {
      "id": 449,
      "label": "Audit Trail",
      "group": "PRIV"
    },
    {
      "id": 450,
      "label": "Anonymization Strategy",
      "group": "PRIV"
    },
    {
      "id": 451,
      "label": "Baseline Cost Measurement",
      "group": "CAP"
    },
    {
      "id": 452,
      "label": "Optimization Hypothesis",
      "group": "CAP"
    },
    {
      "id": 453,
      "label": "Quality Regression Detection",
      "group": "CAP"
    },
    {
      "id": 454,
      "label": "Before-After Report",
      "group": "CAP"
    },
    {
      "id": 455,
      "label": "Optimization Backlog",
      "group": "CAP"
    },
    {
      "id": 456,
      "label": "Cost Reduction Target",
      "group": "CAP"
    },
    {
      "id": 457,
      "label": "Pilot Rollout",
      "group": "CAP"
    },
    {
      "id": 458,
      "label": "Canary Deployment",
      "group": "CAP"
    },
    {
      "id": 459,
      "label": "Token Dashboard Project",
      "group": "CAP"
    },
    {
      "id": 460,
      "label": "Vendor-Neutral Logging Project",
      "group": "CAP"
    },
    {
      "id": 461,
      "label": "Skill Refactor Project",
      "group": "CAP"
    },
    {
      "id": 462,
      "label": "Budget Policy Document",
      "group": "CAP"
    },
    {
      "id": 463,
      "label": "Engineering Manager Review",
      "group": "CAP"
    },
    {
      "id": 464,
      "label": "Cost Reduction Postmortem",
      "group": "CAP"
    },
    {
      "id": 465,
      "label": "Reproducible Benchmark",
      "group": "CAP"
    },
    {
      "id": 466,
      "label": "Eval Suite",
      "group": "CAP"
    },
    {
      "id": 467,
      "label": "Golden Test Set",
      "group": "CAP"
    },
    {
      "id": 468,
      "label": "Regression Test Loop",
      "group": "CAP"
    },
    {
      "id": 469,
      "label": "Continuous Cost Monitoring",
      "group": "CAP"
    },
    {
      "id": 470,
      "label": "Token Efficiency Roadmap",
      "group": "CAP"
    },
    {
      "id": 471,
      "label": "5-Hour Limit",
      "group": "ECON"
    },
    {
      "id": 472,
      "label": "Weekly Limit",
      "group": "ECON"
    },
    {
      "id": 473,
      "label": "Serial Execution",
      "group": "HARN"
    },
    {
      "id": 474,
      "label": "Parallel Execution",
      "group": "HARN"
    },
    {
      "id": 475,
      "label": "Parallel Token Penalty",
      "group": "HARN"
    }
  ],
  "edges": [
    {
      "from": 2,
      "to": 1
    },
    {
      "from": 3,
      "to": 2
    },
    {
      "from": 4,
      "to": 2
    },
    {
      "from": 5,
      "to": 4
    },
    {
      "from": 6,
      "to": 2
    },
    {
      "from": 7,
      "to": 6
    },
    {
      "from": 8,
      "to": 6
    },
    {
      "from": 8,
      "to": 5
    },
    {
      "from": 9,
      "to": 7
    },
    {
      "from": 10,
      "to": 8
    },
    {
      "from": 10,
      "to": 5
    },
    {
      "from": 11,
      "to": 6
    },
    {
      "from": 11,
      "to": 12
    },
    {
      "from": 12,
      "to": 6
    },
    {
      "from": 13,
      "to": 12
    },
    {
      "from": 14,
      "to": 12
    },
    {
      "from": 15,
      "to": 12
    },
    {
      "from": 16,
      "to": 6
    },
    {
      "from": 16,
      "to": 2
    },
    {
      "from": 17,
      "to": 16
    },
    {
      "from": 18,
      "to": 7
    },
    {
      "from": 19,
      "to": 18
    },
    {
      "from": 20,
      "to": 18
    },
    {
      "from": 20,
      "to": 22
    },
    {
      "from": 21,
      "to": 22
    },
    {
      "from": 22,
      "to": 18
    },
    {
      "from": 23,
      "to": 22
    },
    {
      "from": 24,
      "to": 8
    },
    {
      "from": 25,
      "to": 8
    },
    {
      "from": 26,
      "to": 8
    },
    {
      "from": 27,
      "to": 5
    },
    {
      "from": 28,
      "to": 5
    },
    {
      "from": 29,
      "to": 8
    },
    {
      "from": 30,
      "to": 2
    },
    {
      "from": 31,
      "to": 12
    },
    {
      "from": 32,
      "to": 13
    },
    {
      "from": 33,
      "to": 12
    },
    {
      "from": 33,
      "to": 101
    },
    {
      "from": 34,
      "to": 12
    },
    {
      "from": 34,
      "to": 76
    },
    {
      "from": 35,
      "to": 12
    },
    {
      "from": 35,
      "to": 126
    },
    {
      "from": 36,
      "to": 11
    },
    {
      "from": 37,
      "to": 12
    },
    {
      "from": 38,
      "to": 12
    },
    {
      "from": 39,
      "to": 6
    },
    {
      "from": 39,
      "to": 12
    },
    {
      "from": 40,
      "to": 39
    },
    {
      "from": 41,
      "to": 39
    },
    {
      "from": 42,
      "to": 39
    },
    {
      "from": 43,
      "to": 12
    },
    {
      "from": 43,
      "to": 31
    },
    {
      "from": 44,
      "to": 12
    },
    {
      "from": 45,
      "to": 33
    },
    {
      "from": 45,
      "to": 34
    },
    {
      "from": 45,
      "to": 35
    },
    {
      "from": 45,
      "to": 11
    },
    {
      "from": 46,
      "to": 11
    },
    {
      "from": 46,
      "to": 12
    },
    {
      "from": 47,
      "to": 11
    },
    {
      "from": 47,
      "to": 12
    },
    {
      "from": 48,
      "to": 47
    },
    {
      "from": 49,
      "to": 12
    },
    {
      "from": 49,
      "to": 31
    },
    {
      "from": 50,
      "to": 12
    },
    {
      "from": 50,
      "to": 38
    },
    {
      "from": 51,
      "to": 6
    },
    {
      "from": 52,
      "to": 51
    },
    {
      "from": 52,
      "to": 7
    },
    {
      "from": 53,
      "to": 51
    },
    {
      "from": 53,
      "to": 8
    },
    {
      "from": 54,
      "to": 51
    },
    {
      "from": 54,
      "to": 9
    },
    {
      "from": 55,
      "to": 52
    },
    {
      "from": 55,
      "to": 53
    },
    {
      "from": 56,
      "to": 51
    },
    {
      "from": 57,
      "to": 56
    },
    {
      "from": 57,
      "to": 11
    },
    {
      "from": 58,
      "to": 57
    },
    {
      "from": 59,
      "to": 57
    },
    {
      "from": 60,
      "to": 57
    },
    {
      "from": 61,
      "to": 58
    },
    {
      "from": 61,
      "to": 59
    },
    {
      "from": 61,
      "to": 60
    },
    {
      "from": 62,
      "to": 6
    },
    {
      "from": 62,
      "to": 56
    },
    {
      "from": 63,
      "to": 56
    },
    {
      "from": 64,
      "to": 63
    },
    {
      "from": 65,
      "to": 56
    },
    {
      "from": 66,
      "to": 56
    },
    {
      "from": 67,
      "to": 65
    },
    {
      "from": 67,
      "to": 66
    },
    {
      "from": 68,
      "to": 51
    },
    {
      "from": 69,
      "to": 68
    },
    {
      "from": 70,
      "to": 68
    },
    {
      "from": 70,
      "to": 421
    },
    {
      "from": 71,
      "to": 68
    },
    {
      "from": 72,
      "to": 68
    },
    {
      "from": 73,
      "to": 56
    },
    {
      "from": 74,
      "to": 73
    },
    {
      "from": 75,
      "to": 63
    },
    {
      "from": 75,
      "to": 74
    },
    {
      "from": 76,
      "to": 2
    },
    {
      "from": 77,
      "to": 76
    },
    {
      "from": 78,
      "to": 30
    },
    {
      "from": 78,
      "to": 76
    },
    {
      "from": 79,
      "to": 78
    },
    {
      "from": 80,
      "to": 78
    },
    {
      "from": 81,
      "to": 78
    },
    {
      "from": 82,
      "to": 76
    },
    {
      "from": 83,
      "to": 76
    },
    {
      "from": 84,
      "to": 9
    },
    {
      "from": 84,
      "to": 77
    },
    {
      "from": 85,
      "to": 84
    },
    {
      "from": 86,
      "to": 84
    },
    {
      "from": 87,
      "to": 84
    },
    {
      "from": 88,
      "to": 84
    },
    {
      "from": 88,
      "to": 9
    },
    {
      "from": 89,
      "to": 84
    },
    {
      "from": 89,
      "to": 9
    },
    {
      "from": 90,
      "to": 77
    },
    {
      "from": 90,
      "to": 10
    },
    {
      "from": 91,
      "to": 90
    },
    {
      "from": 91,
      "to": 62
    },
    {
      "from": 92,
      "to": 77
    },
    {
      "from": 93,
      "to": 92
    },
    {
      "from": 94,
      "to": 92
    },
    {
      "from": 94,
      "to": 95
    },
    {
      "from": 95,
      "to": 77
    },
    {
      "from": 96,
      "to": 19
    },
    {
      "from": 96,
      "to": 77
    },
    {
      "from": 97,
      "to": 25
    },
    {
      "from": 97,
      "to": 77
    },
    {
      "from": 98,
      "to": 24
    },
    {
      "from": 98,
      "to": 77
    },
    {
      "from": 99,
      "to": 421
    },
    {
      "from": 99,
      "to": 77
    },
    {
      "from": 100,
      "to": 77
    },
    {
      "from": 101,
      "to": 2
    },
    {
      "from": 102,
      "to": 101
    },
    {
      "from": 103,
      "to": 101
    },
    {
      "from": 104,
      "to": 30
    },
    {
      "from": 104,
      "to": 101
    },
    {
      "from": 105,
      "to": 104
    },
    {
      "from": 106,
      "to": 104
    },
    {
      "from": 106,
      "to": 107
    },
    {
      "from": 107,
      "to": 10
    },
    {
      "from": 108,
      "to": 101
    },
    {
      "from": 109,
      "to": 102
    },
    {
      "from": 110,
      "to": 109
    },
    {
      "from": 111,
      "to": 102
    },
    {
      "from": 112,
      "to": 111
    },
    {
      "from": 113,
      "to": 111
    },
    {
      "from": 114,
      "to": 24
    },
    {
      "from": 114,
      "to": 101
    },
    {
      "from": 115,
      "to": 421
    },
    {
      "from": 115,
      "to": 101
    },
    {
      "from": 116,
      "to": 101
    },
    {
      "from": 116,
      "to": 332
    },
    {
      "from": 117,
      "to": 101
    },
    {
      "from": 118,
      "to": 101
    },
    {
      "from": 119,
      "to": 102
    },
    {
      "from": 119,
      "to": 28
    },
    {
      "from": 120,
      "to": 102
    },
    {
      "from": 121,
      "to": 11
    },
    {
      "from": 121,
      "to": 102
    },
    {
      "from": 122,
      "to": 121
    },
    {
      "from": 122,
      "to": 7
    },
    {
      "from": 123,
      "to": 121
    },
    {
      "from": 123,
      "to": 8
    },
    {
      "from": 124,
      "to": 121
    },
    {
      "from": 125,
      "to": 73
    },
    {
      "from": 125,
      "to": 101
    },
    {
      "from": 126,
      "to": 2
    },
    {
      "from": 127,
      "to": 30
    },
    {
      "from": 127,
      "to": 126
    },
    {
      "from": 128,
      "to": 127
    },
    {
      "from": 129,
      "to": 127
    },
    {
      "from": 130,
      "to": 127
    },
    {
      "from": 131,
      "to": 126
    },
    {
      "from": 132,
      "to": 16
    },
    {
      "from": 132,
      "to": 17
    },
    {
      "from": 133,
      "to": 132
    },
    {
      "from": 133,
      "to": 126
    },
    {
      "from": 134,
      "to": 109
    },
    {
      "from": 134,
      "to": 126
    },
    {
      "from": 135,
      "to": 134
    },
    {
      "from": 136,
      "to": 24
    },
    {
      "from": 136,
      "to": 126
    },
    {
      "from": 137,
      "to": 421
    },
    {
      "from": 137,
      "to": 126
    },
    {
      "from": 138,
      "to": 126
    },
    {
      "from": 138,
      "to": 9
    },
    {
      "from": 139,
      "to": 126
    },
    {
      "from": 140,
      "to": 126
    },
    {
      "from": 141,
      "to": 126
    },
    {
      "from": 142,
      "to": 126
    },
    {
      "from": 143,
      "to": 126
    },
    {
      "from": 144,
      "to": 126
    },
    {
      "from": 145,
      "to": 11
    },
    {
      "from": 145,
      "to": 126
    },
    {
      "from": 146,
      "to": 2
    },
    {
      "from": 147,
      "to": 146
    },
    {
      "from": 148,
      "to": 147
    },
    {
      "from": 148,
      "to": 92
    },
    {
      "from": 148,
      "to": 109
    },
    {
      "from": 149,
      "to": 146
    },
    {
      "from": 149,
      "to": 76
    },
    {
      "from": 150,
      "to": 149
    },
    {
      "from": 151,
      "to": 149
    },
    {
      "from": 152,
      "to": 146
    },
    {
      "from": 152,
      "to": 101
    },
    {
      "from": 153,
      "to": 152
    },
    {
      "from": 154,
      "to": 146
    },
    {
      "from": 154,
      "to": 126
    },
    {
      "from": 155,
      "to": 154
    },
    {
      "from": 156,
      "to": 19
    },
    {
      "from": 156,
      "to": 146
    },
    {
      "from": 157,
      "to": 156
    },
    {
      "from": 157,
      "to": 158
    },
    {
      "from": 158,
      "to": 22
    },
    {
      "from": 158,
      "to": 146
    },
    {
      "from": 159,
      "to": 158
    },
    {
      "from": 159,
      "to": 56
    },
    {
      "from": 160,
      "to": 23
    },
    {
      "from": 161,
      "to": 160
    },
    {
      "from": 162,
      "to": 160
    },
    {
      "from": 163,
      "to": 148
    },
    {
      "from": 164,
      "to": 147
    },
    {
      "from": 165,
      "to": 147
    },
    {
      "from": 166,
      "to": 146
    },
    {
      "from": 167,
      "to": 166
    },
    {
      "from": 168,
      "to": 146
    },
    {
      "from": 169,
      "to": 92
    },
    {
      "from": 169,
      "to": 109
    },
    {
      "from": 170,
      "to": 92
    },
    {
      "from": 170,
      "to": 109
    },
    {
      "from": 171,
      "to": 146
    },
    {
      "from": 172,
      "to": 171
    },
    {
      "from": 173,
      "to": 171
    },
    {
      "from": 174,
      "to": 172
    },
    {
      "from": 175,
      "to": 174
    },
    {
      "from": 176,
      "to": 171
    },
    {
      "from": 177,
      "to": 173
    },
    {
      "from": 178,
      "to": 177
    },
    {
      "from": 179,
      "to": 177
    },
    {
      "from": 180,
      "to": 173
    },
    {
      "from": 180,
      "to": 175
    },
    {
      "from": 181,
      "to": 172
    },
    {
      "from": 182,
      "to": 146
    },
    {
      "from": 182,
      "to": 164
    },
    {
      "from": 183,
      "to": 182
    },
    {
      "from": 183,
      "to": 175
    },
    {
      "from": 184,
      "to": 183
    },
    {
      "from": 184,
      "to": 174
    },
    {
      "from": 185,
      "to": 184
    },
    {
      "from": 186,
      "to": 185
    },
    {
      "from": 187,
      "to": 185
    },
    {
      "from": 188,
      "to": 172
    },
    {
      "from": 188,
      "to": 185
    },
    {
      "from": 189,
      "to": 171
    },
    {
      "from": 190,
      "to": 171
    },
    {
      "from": 190,
      "to": 76
    },
    {
      "from": 191,
      "to": 178
    },
    {
      "from": 192,
      "to": 178
    },
    {
      "from": 192,
      "to": 191
    },
    {
      "from": 193,
      "to": 178
    },
    {
      "from": 193,
      "to": 191
    },
    {
      "from": 194,
      "to": 171
    },
    {
      "from": 194,
      "to": 191
    },
    {
      "from": 195,
      "to": 11
    },
    {
      "from": 195,
      "to": 56
    },
    {
      "from": 195,
      "to": 194
    },
    {
      "from": 196,
      "to": 76
    },
    {
      "from": 197,
      "to": 196
    },
    {
      "from": 198,
      "to": 196
    },
    {
      "from": 199,
      "to": 198
    },
    {
      "from": 200,
      "to": 199
    },
    {
      "from": 201,
      "to": 200
    },
    {
      "from": 202,
      "to": 200
    },
    {
      "from": 203,
      "to": 201
    },
    {
      "from": 203,
      "to": 30
    },
    {
      "from": 204,
      "to": 201
    },
    {
      "from": 204,
      "to": 18
    },
    {
      "from": 205,
      "to": 201
    },
    {
      "from": 205,
      "to": 7
    },
    {
      "from": 206,
      "to": 201
    },
    {
      "from": 206,
      "to": 8
    },
    {
      "from": 207,
      "to": 201
    },
    {
      "from": 207,
      "to": 9
    },
    {
      "from": 208,
      "to": 201
    },
    {
      "from": 209,
      "to": 201
    },
    {
      "from": 209,
      "to": 57
    },
    {
      "from": 210,
      "to": 202
    },
    {
      "from": 211,
      "to": 202
    },
    {
      "from": 212,
      "to": 202
    },
    {
      "from": 213,
      "to": 202
    },
    {
      "from": 214,
      "to": 202
    },
    {
      "from": 215,
      "to": 202
    },
    {
      "from": 216,
      "to": 202
    },
    {
      "from": 216,
      "to": 158
    },
    {
      "from": 217,
      "to": 197
    },
    {
      "from": 217,
      "to": 437
    },
    {
      "from": 218,
      "to": 217
    },
    {
      "from": 218,
      "to": 18
    },
    {
      "from": 219,
      "to": 196
    },
    {
      "from": 220,
      "to": 196
    },
    {
      "from": 221,
      "to": 196
    },
    {
      "from": 222,
      "to": 221
    },
    {
      "from": 223,
      "to": 222
    },
    {
      "from": 223,
      "to": 196
    },
    {
      "from": 224,
      "to": 221
    },
    {
      "from": 225,
      "to": 224
    },
    {
      "from": 226,
      "to": 224
    },
    {
      "from": 227,
      "to": 221
    },
    {
      "from": 228,
      "to": 227
    },
    {
      "from": 228,
      "to": 209
    },
    {
      "from": 229,
      "to": 227
    },
    {
      "from": 230,
      "to": 227
    },
    {
      "from": 230,
      "to": 208
    },
    {
      "from": 231,
      "to": 227
    },
    {
      "from": 231,
      "to": 11
    },
    {
      "from": 232,
      "to": 224
    },
    {
      "from": 232,
      "to": 226
    },
    {
      "from": 233,
      "to": 232
    },
    {
      "from": 234,
      "to": 233
    },
    {
      "from": 235,
      "to": 234
    },
    {
      "from": 235,
      "to": 11
    },
    {
      "from": 236,
      "to": 234
    },
    {
      "from": 236,
      "to": 57
    },
    {
      "from": 237,
      "to": 224
    },
    {
      "from": 237,
      "to": 211
    },
    {
      "from": 237,
      "to": 210
    },
    {
      "from": 238,
      "to": 232
    },
    {
      "from": 239,
      "to": 227
    },
    {
      "from": 240,
      "to": 222
    },
    {
      "from": 241,
      "to": 196
    },
    {
      "from": 242,
      "to": 241
    },
    {
      "from": 243,
      "to": 242
    },
    {
      "from": 243,
      "to": 209
    },
    {
      "from": 244,
      "to": 243
    },
    {
      "from": 245,
      "to": 242
    },
    {
      "from": 246,
      "to": 245
    },
    {
      "from": 246,
      "to": 18
    },
    {
      "from": 247,
      "to": 245
    },
    {
      "from": 247,
      "to": 147
    },
    {
      "from": 248,
      "to": 243
    },
    {
      "from": 249,
      "to": 242
    },
    {
      "from": 249,
      "to": 58
    },
    {
      "from": 249,
      "to": 210
    },
    {
      "from": 250,
      "to": 242
    },
    {
      "from": 250,
      "to": 59
    },
    {
      "from": 250,
      "to": 211
    },
    {
      "from": 251,
      "to": 242
    },
    {
      "from": 251,
      "to": 203
    },
    {
      "from": 252,
      "to": 242
    },
    {
      "from": 252,
      "to": 204
    },
    {
      "from": 253,
      "to": 250
    },
    {
      "from": 254,
      "to": 242
    },
    {
      "from": 255,
      "to": 226
    },
    {
      "from": 255,
      "to": 11
    },
    {
      "from": 256,
      "to": 255
    },
    {
      "from": 257,
      "to": 255
    },
    {
      "from": 258,
      "to": 255
    },
    {
      "from": 259,
      "to": 244
    },
    {
      "from": 259,
      "to": 257
    },
    {
      "from": 259,
      "to": 258
    },
    {
      "from": 260,
      "to": 241
    },
    {
      "from": 261,
      "to": 56
    },
    {
      "from": 262,
      "to": 261
    },
    {
      "from": 263,
      "to": 262
    },
    {
      "from": 264,
      "to": 261
    },
    {
      "from": 265,
      "to": 261
    },
    {
      "from": 266,
      "to": 264
    },
    {
      "from": 266,
      "to": 265
    },
    {
      "from": 267,
      "to": 266
    },
    {
      "from": 268,
      "to": 266
    },
    {
      "from": 269,
      "to": 261
    },
    {
      "from": 269,
      "to": 224
    },
    {
      "from": 270,
      "to": 269
    },
    {
      "from": 271,
      "to": 269
    },
    {
      "from": 272,
      "to": 269
    },
    {
      "from": 272,
      "to": 57
    },
    {
      "from": 273,
      "to": 269
    },
    {
      "from": 273,
      "to": 208
    },
    {
      "from": 274,
      "to": 269
    },
    {
      "from": 275,
      "to": 261
    },
    {
      "from": 276,
      "to": 275
    },
    {
      "from": 277,
      "to": 261
    },
    {
      "from": 278,
      "to": 277
    },
    {
      "from": 279,
      "to": 277
    },
    {
      "from": 280,
      "to": 277
    },
    {
      "from": 281,
      "to": 261
    },
    {
      "from": 282,
      "to": 261
    },
    {
      "from": 282,
      "to": 281
    },
    {
      "from": 283,
      "to": 261
    },
    {
      "from": 284,
      "to": 261
    },
    {
      "from": 285,
      "to": 261
    },
    {
      "from": 286,
      "to": 18
    },
    {
      "from": 287,
      "to": 19
    },
    {
      "from": 287,
      "to": 286
    },
    {
      "from": 288,
      "to": 286
    },
    {
      "from": 288,
      "to": 11
    },
    {
      "from": 289,
      "to": 286
    },
    {
      "from": 290,
      "to": 289
    },
    {
      "from": 290,
      "to": 288
    },
    {
      "from": 291,
      "to": 286
    },
    {
      "from": 292,
      "to": 286
    },
    {
      "from": 293,
      "to": 16
    },
    {
      "from": 293,
      "to": 286
    },
    {
      "from": 294,
      "to": 286
    },
    {
      "from": 295,
      "to": 286
    },
    {
      "from": 296,
      "to": 286
    },
    {
      "from": 297,
      "to": 296
    },
    {
      "from": 298,
      "to": 296
    },
    {
      "from": 299,
      "to": 298
    },
    {
      "from": 300,
      "to": 288
    },
    {
      "from": 301,
      "to": 300
    },
    {
      "from": 302,
      "to": 286
    },
    {
      "from": 302,
      "to": 62
    },
    {
      "from": 303,
      "to": 26
    },
    {
      "from": 303,
      "to": 62
    },
    {
      "from": 304,
      "to": 303
    },
    {
      "from": 305,
      "to": 286
    },
    {
      "from": 305,
      "to": 11
    },
    {
      "from": 306,
      "to": 305
    },
    {
      "from": 306,
      "to": 37
    },
    {
      "from": 307,
      "to": 305
    },
    {
      "from": 308,
      "to": 305
    },
    {
      "from": 308,
      "to": 93
    },
    {
      "from": 309,
      "to": 305
    },
    {
      "from": 310,
      "to": 296
    },
    {
      "from": 311,
      "to": 9
    },
    {
      "from": 312,
      "to": 311
    },
    {
      "from": 313,
      "to": 311
    },
    {
      "from": 314,
      "to": 311
    },
    {
      "from": 315,
      "to": 313
    },
    {
      "from": 315,
      "to": 314
    },
    {
      "from": 316,
      "to": 311
    },
    {
      "from": 317,
      "to": 311
    },
    {
      "from": 318,
      "to": 312
    },
    {
      "from": 319,
      "to": 318
    },
    {
      "from": 319,
      "to": 312
    },
    {
      "from": 320,
      "to": 318
    },
    {
      "from": 320,
      "to": 312
    },
    {
      "from": 321,
      "to": 312
    },
    {
      "from": 322,
      "to": 84
    },
    {
      "from": 322,
      "to": 138
    },
    {
      "from": 322,
      "to": 311
    },
    {
      "from": 323,
      "to": 311
    },
    {
      "from": 323,
      "to": 54
    },
    {
      "from": 324,
      "to": 315
    },
    {
      "from": 324,
      "to": 221
    },
    {
      "from": 325,
      "to": 315
    },
    {
      "from": 325,
      "to": 224
    },
    {
      "from": 326,
      "to": 87
    },
    {
      "from": 326,
      "to": 317
    },
    {
      "from": 327,
      "to": 311
    },
    {
      "from": 328,
      "to": 311
    },
    {
      "from": 328,
      "to": 85
    },
    {
      "from": 329,
      "to": 311
    },
    {
      "from": 330,
      "to": 311
    },
    {
      "from": 331,
      "to": 16
    },
    {
      "from": 331,
      "to": 18
    },
    {
      "from": 332,
      "to": 2
    },
    {
      "from": 333,
      "to": 332
    },
    {
      "from": 334,
      "to": 18
    },
    {
      "from": 334,
      "to": 331
    },
    {
      "from": 335,
      "to": 334
    },
    {
      "from": 336,
      "to": 334
    },
    {
      "from": 337,
      "to": 333
    },
    {
      "from": 337,
      "to": 331
    },
    {
      "from": 338,
      "to": 337
    },
    {
      "from": 339,
      "to": 338
    },
    {
      "from": 340,
      "to": 337
    },
    {
      "from": 341,
      "to": 331
    },
    {
      "from": 341,
      "to": 16
    },
    {
      "from": 342,
      "to": 341
    },
    {
      "from": 342,
      "to": 293
    },
    {
      "from": 343,
      "to": 342
    },
    {
      "from": 344,
      "to": 345
    },
    {
      "from": 344,
      "to": 346
    },
    {
      "from": 345,
      "to": 331
    },
    {
      "from": 346,
      "to": 331
    },
    {
      "from": 346,
      "to": 332
    },
    {
      "from": 347,
      "to": 331
    },
    {
      "from": 348,
      "to": 347
    },
    {
      "from": 349,
      "to": 343
    },
    {
      "from": 349,
      "to": 288
    },
    {
      "from": 350,
      "to": 349
    },
    {
      "from": 350,
      "to": 358
    },
    {
      "from": 351,
      "to": 331
    },
    {
      "from": 352,
      "to": 331
    },
    {
      "from": 352,
      "to": 56
    },
    {
      "from": 353,
      "to": 341
    },
    {
      "from": 353,
      "to": 271
    },
    {
      "from": 354,
      "to": 340
    },
    {
      "from": 355,
      "to": 340
    },
    {
      "from": 356,
      "to": 16
    },
    {
      "from": 356,
      "to": 62
    },
    {
      "from": 357,
      "to": 356
    },
    {
      "from": 358,
      "to": 23
    },
    {
      "from": 359,
      "to": 358
    },
    {
      "from": 359,
      "to": 160
    },
    {
      "from": 360,
      "to": 358
    },
    {
      "from": 361,
      "to": 167
    },
    {
      "from": 362,
      "to": 361
    },
    {
      "from": 362,
      "to": 166
    },
    {
      "from": 363,
      "to": 16
    },
    {
      "from": 363,
      "to": 166
    },
    {
      "from": 364,
      "to": 16
    },
    {
      "from": 365,
      "to": 47
    },
    {
      "from": 365,
      "to": 11
    },
    {
      "from": 366,
      "to": 17
    },
    {
      "from": 366,
      "to": 271
    },
    {
      "from": 367,
      "to": 366
    },
    {
      "from": 367,
      "to": 132
    },
    {
      "from": 368,
      "to": 367
    },
    {
      "from": 369,
      "to": 343
    },
    {
      "from": 370,
      "to": 326
    },
    {
      "from": 370,
      "to": 364
    },
    {
      "from": 371,
      "to": 30
    },
    {
      "from": 371,
      "to": 56
    },
    {
      "from": 372,
      "to": 371
    },
    {
      "from": 373,
      "to": 372
    },
    {
      "from": 374,
      "to": 373
    },
    {
      "from": 375,
      "to": 373
    },
    {
      "from": 375,
      "to": 271
    },
    {
      "from": 376,
      "to": 371
    },
    {
      "from": 377,
      "to": 371
    },
    {
      "from": 377,
      "to": 76
    },
    {
      "from": 377,
      "to": 101
    },
    {
      "from": 377,
      "to": 126
    },
    {
      "from": 378,
      "to": 371
    },
    {
      "from": 379,
      "to": 378
    },
    {
      "from": 380,
      "to": 371
    },
    {
      "from": 381,
      "to": 371
    },
    {
      "from": 381,
      "to": 56
    },
    {
      "from": 382,
      "to": 371
    },
    {
      "from": 382,
      "to": 271
    },
    {
      "from": 383,
      "to": 371
    },
    {
      "from": 383,
      "to": 379
    },
    {
      "from": 384,
      "to": 76
    },
    {
      "from": 384,
      "to": 101
    },
    {
      "from": 384,
      "to": 126
    },
    {
      "from": 385,
      "to": 384
    },
    {
      "from": 385,
      "to": 377
    },
    {
      "from": 386,
      "to": 26
    },
    {
      "from": 387,
      "to": 25
    },
    {
      "from": 388,
      "to": 26
    },
    {
      "from": 388,
      "to": 8
    },
    {
      "from": 389,
      "to": 112
    },
    {
      "from": 389,
      "to": 111
    },
    {
      "from": 390,
      "to": 304
    },
    {
      "from": 391,
      "to": 304
    },
    {
      "from": 392,
      "to": 91
    },
    {
      "from": 393,
      "to": 392
    },
    {
      "from": 394,
      "to": 386
    },
    {
      "from": 394,
      "to": 364
    },
    {
      "from": 395,
      "to": 24
    },
    {
      "from": 395,
      "to": 396
    },
    {
      "from": 396,
      "to": 8
    },
    {
      "from": 397,
      "to": 8
    },
    {
      "from": 398,
      "to": 397
    },
    {
      "from": 398,
      "to": 112
    },
    {
      "from": 399,
      "to": 398
    },
    {
      "from": 399,
      "to": 112
    },
    {
      "from": 400,
      "to": 107
    },
    {
      "from": 400,
      "to": 392
    },
    {
      "from": 401,
      "to": 146
    },
    {
      "from": 401,
      "to": 62
    },
    {
      "from": 402,
      "to": 401
    },
    {
      "from": 402,
      "to": 158
    },
    {
      "from": 403,
      "to": 401
    },
    {
      "from": 403,
      "to": 163
    },
    {
      "from": 404,
      "to": 147
    },
    {
      "from": 404,
      "to": 401
    },
    {
      "from": 405,
      "to": 401
    },
    {
      "from": 406,
      "to": 401
    },
    {
      "from": 406,
      "to": 57
    },
    {
      "from": 407,
      "to": 401
    },
    {
      "from": 408,
      "to": 407
    },
    {
      "from": 408,
      "to": 406
    },
    {
      "from": 409,
      "to": 247
    },
    {
      "from": 409,
      "to": 401
    },
    {
      "from": 410,
      "to": 408
    },
    {
      "from": 411,
      "to": 403
    },
    {
      "from": 411,
      "to": 73
    },
    {
      "from": 412,
      "to": 401
    },
    {
      "from": 412,
      "to": 165
    },
    {
      "from": 413,
      "to": 196
    },
    {
      "from": 413,
      "to": 401
    },
    {
      "from": 414,
      "to": 413
    },
    {
      "from": 415,
      "to": 401
    },
    {
      "from": 416,
      "to": 401
    },
    {
      "from": 417,
      "to": 401
    },
    {
      "from": 418,
      "to": 234
    },
    {
      "from": 418,
      "to": 401
    },
    {
      "from": 419,
      "to": 414
    },
    {
      "from": 420,
      "to": 414
    },
    {
      "from": 420,
      "to": 212
    },
    {
      "from": 421,
      "to": 56
    },
    {
      "from": 422,
      "to": 56
    },
    {
      "from": 423,
      "to": 421
    },
    {
      "from": 424,
      "to": 421
    },
    {
      "from": 425,
      "to": 421
    },
    {
      "from": 426,
      "to": 70
    },
    {
      "from": 426,
      "to": 421
    },
    {
      "from": 427,
      "to": 421
    },
    {
      "from": 427,
      "to": 422
    },
    {
      "from": 428,
      "to": 421
    },
    {
      "from": 429,
      "to": 427
    },
    {
      "from": 429,
      "to": 273
    },
    {
      "from": 430,
      "to": 423
    },
    {
      "from": 431,
      "to": 423
    },
    {
      "from": 431,
      "to": 424
    },
    {
      "from": 432,
      "to": 422
    },
    {
      "from": 433,
      "to": 423
    },
    {
      "from": 434,
      "to": 422
    },
    {
      "from": 435,
      "to": 434
    },
    {
      "from": 435,
      "to": 73
    },
    {
      "from": 436,
      "to": 196
    },
    {
      "from": 437,
      "to": 436
    },
    {
      "from": 438,
      "to": 437
    },
    {
      "from": 438,
      "to": 217
    },
    {
      "from": 439,
      "to": 436
    },
    {
      "from": 440,
      "to": 439
    },
    {
      "from": 441,
      "to": 439
    },
    {
      "from": 442,
      "to": 439
    },
    {
      "from": 443,
      "to": 436
    },
    {
      "from": 444,
      "to": 443
    },
    {
      "from": 445,
      "to": 436
    },
    {
      "from": 446,
      "to": 196
    },
    {
      "from": 446,
      "to": 436
    },
    {
      "from": 447,
      "to": 438
    },
    {
      "from": 447,
      "to": 204
    },
    {
      "from": 448,
      "to": 447
    },
    {
      "from": 449,
      "to": 196
    },
    {
      "from": 449,
      "to": 442
    },
    {
      "from": 450,
      "to": 437
    },
    {
      "from": 450,
      "to": 447
    },
    {
      "from": 451,
      "to": 196
    },
    {
      "from": 451,
      "to": 56
    },
    {
      "from": 452,
      "to": 262
    },
    {
      "from": 452,
      "to": 451
    },
    {
      "from": 453,
      "to": 271
    },
    {
      "from": 453,
      "to": 261
    },
    {
      "from": 454,
      "to": 451
    },
    {
      "from": 454,
      "to": 195
    },
    {
      "from": 455,
      "to": 243
    },
    {
      "from": 455,
      "to": 452
    },
    {
      "from": 456,
      "to": 451
    },
    {
      "from": 457,
      "to": 261
    },
    {
      "from": 458,
      "to": 457
    },
    {
      "from": 459,
      "to": 228
    },
    {
      "from": 459,
      "to": 196
    },
    {
      "from": 460,
      "to": 385
    },
    {
      "from": 460,
      "to": 196
    },
    {
      "from": 461,
      "to": 194
    },
    {
      "from": 461,
      "to": 195
    },
    {
      "from": 462,
      "to": 401
    },
    {
      "from": 463,
      "to": 419
    },
    {
      "from": 463,
      "to": 462
    },
    {
      "from": 464,
      "to": 454
    },
    {
      "from": 465,
      "to": 451
    },
    {
      "from": 466,
      "to": 271
    },
    {
      "from": 467,
      "to": 466
    },
    {
      "from": 468,
      "to": 466
    },
    {
      "from": 468,
      "to": 453
    },
    {
      "from": 469,
      "to": 221
    },
    {
      "from": 469,
      "to": 451
    },
    {
      "from": 470,
      "to": 455
    },
    {
      "from": 470,
      "to": 462
    },
    {
      "from": 471,
      "to": 74
    },
    {
      "from": 471,
      "to": 149
    },
    {
      "from": 472,
      "to": 74
    },
    {
      "from": 472,
      "to": 149
    },
    {
      "from": 473,
      "to": 146
    },
    {
      "from": 474,
      "to": 165
    },
    {
      "from": 475,
      "to": 474
    },
    {
      "from": 475,
      "to": 473
    },
    {
      "from": 475,
      "to": 157
    }
  ]
}