{
  "metadata": {
    "title": "IB Mathematics Functions",
    "description": "A comprehensive learning graph for the IB Mathematics Functions course covering the concept of functions, linear, quadratic, rational, exponential, logarithmic, and polynomial functions, along with transformations and function classifications for SL and HL/AHL levels.",
    "creator": "Dan McCreary",
    "date": "2026-04-03",
    "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": {
    "FOUND": {
      "classifierName": "Foundation Concepts",
      "color": "LavenderBlush",
      "font": {
        "color": "black"
      }
    },
    "LIN": {
      "classifierName": "Linear Functions",
      "color": "LightYellow",
      "font": {
        "color": "black"
      }
    },
    "GRAPH": {
      "classifierName": "Graphing and Visualization",
      "color": "PaleTurquoise",
      "font": {
        "color": "black"
      }
    },
    "QUAD": {
      "classifierName": "Quadratic Functions",
      "color": "Plum",
      "font": {
        "color": "black"
      }
    },
    "INVC": {
      "classifierName": "Inverse and Composite",
      "color": "MintCream",
      "font": {
        "color": "black"
      }
    },
    "RAT": {
      "classifierName": "Rational Functions",
      "color": "Lavender",
      "font": {
        "color": "black"
      }
    },
    "EXP": {
      "classifierName": "Exponential Functions",
      "color": "MistyRose",
      "font": {
        "color": "black"
      }
    },
    "LOG": {
      "classifierName": "Logarithmic Functions",
      "color": "LightCoral",
      "font": {
        "color": "black"
      }
    },
    "POLY": {
      "classifierName": "Polynomial Functions",
      "color": "PeachPuff",
      "font": {
        "color": "black"
      }
    },
    "CLASS": {
      "classifierName": "Function Classifications",
      "color": "Thistle",
      "font": {
        "color": "black"
      }
    },
    "TRANS": {
      "classifierName": "Transformations",
      "color": "SteelBlue",
      "font": {
        "color": "black"
      }
    },
    "ALG": {
      "classifierName": "Algebra Foundations",
      "color": "Gainsboro",
      "font": {
        "color": "black"
      }
    },
    "MODEL": {
      "classifierName": "Modeling and Applications",
      "color": "Honeydew",
      "font": {
        "color": "black"
      }
    }
  },
  "nodes": [
    {
      "id": 1,
      "label": "Relation",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 2,
      "label": "Function",
      "group": "FOUND"
    },
    {
      "id": 3,
      "label": "Domain",
      "group": "FOUND"
    },
    {
      "id": 4,
      "label": "Range",
      "group": "FOUND"
    },
    {
      "id": 5,
      "label": "Input Variable",
      "group": "FOUND"
    },
    {
      "id": 6,
      "label": "Output Variable",
      "group": "FOUND"
    },
    {
      "id": 7,
      "label": "Function Notation",
      "group": "FOUND"
    },
    {
      "id": 8,
      "label": "Dependent Variable",
      "group": "FOUND"
    },
    {
      "id": 9,
      "label": "Independent Variable",
      "group": "FOUND"
    },
    {
      "id": 10,
      "label": "Mapping Diagram",
      "group": "FOUND"
    },
    {
      "id": 11,
      "label": "Vertical Line Test",
      "group": "FOUND"
    },
    {
      "id": 12,
      "label": "Ordered Pair",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 13,
      "label": "Coordinate Plane",
      "group": "FOUND"
    },
    {
      "id": 14,
      "label": "X-Axis",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 15,
      "label": "Y-Axis",
      "group": "FOUND",
      "shape": "box"
    },
    {
      "id": 16,
      "label": "Origin",
      "group": "FOUND"
    },
    {
      "id": 17,
      "label": "Cartesian Coordinates",
      "group": "FOUND"
    },
    {
      "id": 18,
      "label": "Graph of a Function",
      "group": "GRAPH"
    },
    {
      "id": 19,
      "label": "Table of Values",
      "group": "FOUND"
    },
    {
      "id": 20,
      "label": "Function Representations",
      "group": "FOUND"
    },
    {
      "id": 21,
      "label": "Interval Notation",
      "group": "FOUND"
    },
    {
      "id": 22,
      "label": "Set Builder Notation",
      "group": "FOUND"
    },
    {
      "id": 23,
      "label": "Real Number Line",
      "group": "ALG"
    },
    {
      "id": 24,
      "label": "Continuous Function",
      "group": "FOUND"
    },
    {
      "id": 25,
      "label": "Discrete Function",
      "group": "FOUND"
    },
    {
      "id": 26,
      "label": "Linear Function",
      "group": "LIN"
    },
    {
      "id": 27,
      "label": "Slope",
      "group": "LIN"
    },
    {
      "id": 28,
      "label": "Y-Intercept",
      "group": "GRAPH"
    },
    {
      "id": 29,
      "label": "X-Intercept",
      "group": "GRAPH"
    },
    {
      "id": 30,
      "label": "Gradient-Intercept Form",
      "group": "LIN"
    },
    {
      "id": 31,
      "label": "General Form of a Line",
      "group": "LIN"
    },
    {
      "id": 32,
      "label": "Point-Gradient Form",
      "group": "LIN"
    },
    {
      "id": 33,
      "label": "Gradient Calculation",
      "group": "LIN"
    },
    {
      "id": 34,
      "label": "Positive Gradient",
      "group": "LIN"
    },
    {
      "id": 35,
      "label": "Negative Gradient",
      "group": "LIN"
    },
    {
      "id": 36,
      "label": "Zero Gradient",
      "group": "LIN"
    },
    {
      "id": 37,
      "label": "Undefined Gradient",
      "group": "LIN"
    },
    {
      "id": 38,
      "label": "Parallel Lines",
      "group": "LIN"
    },
    {
      "id": 39,
      "label": "Perpendicular Lines",
      "group": "LIN"
    },
    {
      "id": 40,
      "label": "Linear Equation Solving",
      "group": "LIN"
    },
    {
      "id": 41,
      "label": "Simultaneous Equations",
      "group": "LIN"
    },
    {
      "id": 42,
      "label": "Intersection of Lines",
      "group": "LIN"
    },
    {
      "id": 43,
      "label": "Real-World Linear Models",
      "group": "LIN"
    },
    {
      "id": 44,
      "label": "Rate of Change",
      "group": "LIN"
    },
    {
      "id": 45,
      "label": "Direct Proportion",
      "group": "LIN"
    },
    {
      "id": 46,
      "label": "Graphing Technology",
      "group": "GRAPH"
    },
    {
      "id": 47,
      "label": "Window Settings",
      "group": "GRAPH"
    },
    {
      "id": 48,
      "label": "Sketching vs Drawing",
      "group": "GRAPH"
    },
    {
      "id": 49,
      "label": "Key Graph Features",
      "group": "GRAPH"
    },
    {
      "id": 50,
      "label": "Turning Points",
      "group": "GRAPH"
    },
    {
      "id": 51,
      "label": "Maximum Point",
      "group": "GRAPH"
    },
    {
      "id": 52,
      "label": "Minimum Point",
      "group": "GRAPH"
    },
    {
      "id": 53,
      "label": "Axis of Symmetry",
      "group": "QUAD"
    },
    {
      "id": 54,
      "label": "Roots of a Function",
      "group": "GRAPH"
    },
    {
      "id": 55,
      "label": "Zeros of a Function",
      "group": "GRAPH"
    },
    {
      "id": 56,
      "label": "Function Intercepts",
      "group": "GRAPH"
    },
    {
      "id": 57,
      "label": "Intersection of Curves",
      "group": "GRAPH"
    },
    {
      "id": 58,
      "label": "Increasing Function",
      "group": "GRAPH"
    },
    {
      "id": 59,
      "label": "Decreasing Function",
      "group": "GRAPH"
    },
    {
      "id": 60,
      "label": "Constant Function",
      "group": "FOUND"
    },
    {
      "id": 61,
      "label": "Identity Function",
      "group": "FOUND"
    },
    {
      "id": 62,
      "label": "Quadratic Function",
      "group": "QUAD"
    },
    {
      "id": 63,
      "label": "Parabola",
      "group": "QUAD"
    },
    {
      "id": 64,
      "label": "Standard Form Quadratic",
      "group": "QUAD"
    },
    {
      "id": 65,
      "label": "Factored Form Quadratic",
      "group": "QUAD"
    },
    {
      "id": 66,
      "label": "Vertex Form Quadratic",
      "group": "QUAD"
    },
    {
      "id": 67,
      "label": "Vertex of a Parabola",
      "group": "QUAD"
    },
    {
      "id": 68,
      "label": "Completing the Square",
      "group": "QUAD"
    },
    {
      "id": 69,
      "label": "Quadratic Formula",
      "group": "QUAD"
    },
    {
      "id": 70,
      "label": "Factoring Quadratics",
      "group": "QUAD"
    },
    {
      "id": 71,
      "label": "Discriminant",
      "group": "QUAD"
    },
    {
      "id": 72,
      "label": "Two Real Roots",
      "group": "QUAD"
    },
    {
      "id": 73,
      "label": "Equal Real Roots",
      "group": "QUAD"
    },
    {
      "id": 74,
      "label": "No Real Roots",
      "group": "QUAD"
    },
    {
      "id": 75,
      "label": "Nature of Roots",
      "group": "QUAD"
    },
    {
      "id": 76,
      "label": "Quadratic Inequalities",
      "group": "QUAD"
    },
    {
      "id": 77,
      "label": "Sign Diagram",
      "group": "QUAD"
    },
    {
      "id": 78,
      "label": "Solving Quadratic Equations",
      "group": "QUAD"
    },
    {
      "id": 79,
      "label": "Quadratic Applications",
      "group": "QUAD"
    },
    {
      "id": 80,
      "label": "Projectile Motion Model",
      "group": "QUAD"
    },
    {
      "id": 81,
      "label": "Revenue Optimization",
      "group": "QUAD"
    },
    {
      "id": 82,
      "label": "Inverse Function",
      "group": "INVC"
    },
    {
      "id": 83,
      "label": "Inverse Function Notation",
      "group": "INVC"
    },
    {
      "id": 84,
      "label": "Finding an Inverse",
      "group": "INVC"
    },
    {
      "id": 85,
      "label": "Reflection Over Y Equals X",
      "group": "INVC"
    },
    {
      "id": 86,
      "label": "One-to-One Function",
      "group": "INVC"
    },
    {
      "id": 87,
      "label": "Horizontal Line Test",
      "group": "INVC"
    },
    {
      "id": 88,
      "label": "Self-Inverse Function",
      "group": "INVC"
    },
    {
      "id": 89,
      "label": "Composite Function",
      "group": "INVC"
    },
    {
      "id": 90,
      "label": "Function Composition Rule",
      "group": "INVC"
    },
    {
      "id": 91,
      "label": "Order of Composition",
      "group": "INVC"
    },
    {
      "id": 92,
      "label": "Domain of Composite",
      "group": "INVC"
    },
    {
      "id": 93,
      "label": "Decomposing Functions",
      "group": "INVC"
    },
    {
      "id": 94,
      "label": "Reciprocal Function",
      "group": "RAT"
    },
    {
      "id": 95,
      "label": "Hyperbola",
      "group": "RAT"
    },
    {
      "id": 96,
      "label": "Vertical Asymptote",
      "group": "RAT"
    },
    {
      "id": 97,
      "label": "Horizontal Asymptote",
      "group": "RAT"
    },
    {
      "id": 98,
      "label": "Asymptotic Behavior",
      "group": "RAT"
    },
    {
      "id": 99,
      "label": "Rational Function",
      "group": "RAT"
    },
    {
      "id": 100,
      "label": "Rational Form Ax Plus B",
      "group": "RAT"
    },
    {
      "id": 101,
      "label": "Oblique Asymptote",
      "group": "RAT"
    },
    {
      "id": 102,
      "label": "Graphing Rational Functions",
      "group": "RAT"
    },
    {
      "id": 103,
      "label": "Holes in Rational Graphs",
      "group": "RAT"
    },
    {
      "id": 104,
      "label": "Domain Restrictions",
      "group": "RAT"
    },
    {
      "id": 105,
      "label": "Exponential Function",
      "group": "EXP"
    },
    {
      "id": 106,
      "label": "Base of an Exponential",
      "group": "EXP",
      "shape": "box"
    },
    {
      "id": 107,
      "label": "Exponential Growth",
      "group": "EXP"
    },
    {
      "id": 108,
      "label": "Exponential Decay",
      "group": "EXP"
    },
    {
      "id": 109,
      "label": "Natural Exponential",
      "group": "EXP"
    },
    {
      "id": 110,
      "label": "Euler's Number",
      "group": "EXP"
    },
    {
      "id": 111,
      "label": "Exponential Equations",
      "group": "EXP"
    },
    {
      "id": 112,
      "label": "Compound Interest Model",
      "group": "EXP"
    },
    {
      "id": 113,
      "label": "Population Growth Model",
      "group": "EXP"
    },
    {
      "id": 114,
      "label": "Half-Life Model",
      "group": "EXP"
    },
    {
      "id": 115,
      "label": "Logarithmic Function",
      "group": "LOG"
    },
    {
      "id": 116,
      "label": "Common Logarithm",
      "group": "LOG"
    },
    {
      "id": 117,
      "label": "Natural Logarithm",
      "group": "LOG"
    },
    {
      "id": 118,
      "label": "Logarithm Laws",
      "group": "LOG"
    },
    {
      "id": 119,
      "label": "Change of Base Rule",
      "group": "LOG"
    },
    {
      "id": 120,
      "label": "Solving Log Equations",
      "group": "LOG"
    },
    {
      "id": 121,
      "label": "Log-Exponential Inverse",
      "group": "LOG"
    },
    {
      "id": 122,
      "label": "Logarithmic Scale",
      "group": "LOG"
    },
    {
      "id": 123,
      "label": "Graphing Exponentials",
      "group": "EXP"
    },
    {
      "id": 124,
      "label": "Graphing Logarithms",
      "group": "LOG"
    },
    {
      "id": 125,
      "label": "Polynomial Function",
      "group": "POLY"
    },
    {
      "id": 126,
      "label": "Degree of a Polynomial",
      "group": "POLY"
    },
    {
      "id": 127,
      "label": "Leading Coefficient",
      "group": "POLY"
    },
    {
      "id": 128,
      "label": "Cubic Function",
      "group": "POLY"
    },
    {
      "id": 129,
      "label": "Quartic Function",
      "group": "POLY"
    },
    {
      "id": 130,
      "label": "End Behavior",
      "group": "POLY"
    },
    {
      "id": 131,
      "label": "Turning Points Count",
      "group": "POLY"
    },
    {
      "id": 132,
      "label": "Factor Theorem",
      "group": "POLY"
    },
    {
      "id": 133,
      "label": "Remainder Theorem",
      "group": "POLY"
    },
    {
      "id": 134,
      "label": "Polynomial Division",
      "group": "POLY"
    },
    {
      "id": 135,
      "label": "Synthetic Division",
      "group": "POLY"
    },
    {
      "id": 136,
      "label": "Root Finding",
      "group": "POLY"
    },
    {
      "id": 137,
      "label": "Sum of Roots Formula",
      "group": "POLY"
    },
    {
      "id": 138,
      "label": "Product of Roots Formula",
      "group": "POLY"
    },
    {
      "id": 139,
      "label": "Multiplicity of Roots",
      "group": "POLY"
    },
    {
      "id": 140,
      "label": "Graphing Polynomials",
      "group": "POLY"
    },
    {
      "id": 141,
      "label": "Even Function",
      "group": "CLASS"
    },
    {
      "id": 142,
      "label": "Odd Function",
      "group": "CLASS"
    },
    {
      "id": 143,
      "label": "Symmetry Testing",
      "group": "CLASS"
    },
    {
      "id": 144,
      "label": "Periodic Function",
      "group": "CLASS"
    },
    {
      "id": 145,
      "label": "Modulus Function",
      "group": "CLASS"
    },
    {
      "id": 146,
      "label": "Graph of Modulus",
      "group": "CLASS"
    },
    {
      "id": 147,
      "label": "Absolute Value Equations",
      "group": "CLASS"
    },
    {
      "id": 148,
      "label": "Y Equals Mod F of X",
      "group": "CLASS"
    },
    {
      "id": 149,
      "label": "Y Equals F of Mod X",
      "group": "CLASS"
    },
    {
      "id": 150,
      "label": "Y Equals F of X Squared",
      "group": "CLASS"
    },
    {
      "id": 151,
      "label": "Domain Restriction Inverse",
      "group": "INVC"
    },
    {
      "id": 152,
      "label": "Translation",
      "group": "TRANS"
    },
    {
      "id": 153,
      "label": "Horizontal Translation",
      "group": "TRANS"
    },
    {
      "id": 154,
      "label": "Vertical Translation",
      "group": "TRANS"
    },
    {
      "id": 155,
      "label": "Reflection in X-Axis",
      "group": "TRANS"
    },
    {
      "id": 156,
      "label": "Reflection in Y-Axis",
      "group": "TRANS"
    },
    {
      "id": 157,
      "label": "Vertical Stretch",
      "group": "TRANS"
    },
    {
      "id": 158,
      "label": "Horizontal Stretch",
      "group": "TRANS"
    },
    {
      "id": 159,
      "label": "Scale Factor",
      "group": "TRANS",
      "shape": "box"
    },
    {
      "id": 160,
      "label": "Composite Transformation",
      "group": "TRANS"
    },
    {
      "id": 161,
      "label": "Transformation Notation",
      "group": "TRANS"
    },
    {
      "id": 162,
      "label": "Effect on Coordinates",
      "group": "TRANS"
    },
    {
      "id": 163,
      "label": "Transformation of Points",
      "group": "TRANS"
    },
    {
      "id": 164,
      "label": "Graph Transformation Order",
      "group": "TRANS"
    },
    {
      "id": 165,
      "label": "Piecewise Function",
      "group": "CLASS"
    },
    {
      "id": 166,
      "label": "Step Function",
      "group": "CLASS"
    },
    {
      "id": 167,
      "label": "Signum Function",
      "group": "CLASS"
    },
    {
      "id": 168,
      "label": "Greatest Integer Function",
      "group": "CLASS"
    },
    {
      "id": 169,
      "label": "Parameter",
      "group": "ALG"
    },
    {
      "id": 170,
      "label": "Coefficient",
      "group": "ALG",
      "shape": "box"
    },
    {
      "id": 171,
      "label": "Variable",
      "group": "ALG",
      "shape": "box"
    },
    {
      "id": 172,
      "label": "Constant",
      "group": "ALG",
      "shape": "box"
    },
    {
      "id": 173,
      "label": "Expression",
      "group": "ALG"
    },
    {
      "id": 174,
      "label": "Equation",
      "group": "ALG"
    },
    {
      "id": 175,
      "label": "Inequality",
      "group": "ALG"
    },
    {
      "id": 176,
      "label": "Solution Set",
      "group": "ALG"
    },
    {
      "id": 177,
      "label": "Number Systems",
      "group": "ALG",
      "shape": "box"
    },
    {
      "id": 178,
      "label": "Integers",
      "group": "ALG"
    },
    {
      "id": 179,
      "label": "Rational Numbers",
      "group": "ALG"
    },
    {
      "id": 180,
      "label": "Irrational Numbers",
      "group": "ALG"
    },
    {
      "id": 181,
      "label": "Real Numbers",
      "group": "ALG"
    },
    {
      "id": 182,
      "label": "Substitution Method",
      "group": "ALG"
    },
    {
      "id": 183,
      "label": "Elimination Method",
      "group": "ALG"
    },
    {
      "id": 184,
      "label": "Graphical Solution Method",
      "group": "GRAPH"
    },
    {
      "id": 185,
      "label": "Algebraic Manipulation",
      "group": "ALG"
    },
    {
      "id": 186,
      "label": "Expanding Brackets",
      "group": "ALG"
    },
    {
      "id": 187,
      "label": "Collecting Like Terms",
      "group": "ALG"
    },
    {
      "id": 188,
      "label": "Common Factor",
      "group": "ALG"
    },
    {
      "id": 189,
      "label": "Difference of Squares",
      "group": "ALG"
    },
    {
      "id": 190,
      "label": "Perfect Square Trinomial",
      "group": "ALG"
    },
    {
      "id": 191,
      "label": "Sum and Difference Cubes",
      "group": "ALG"
    },
    {
      "id": 192,
      "label": "Function Behavior Analysis",
      "group": "CLASS"
    },
    {
      "id": 193,
      "label": "Concavity",
      "group": "GRAPH"
    },
    {
      "id": 194,
      "label": "Inflection Point",
      "group": "GRAPH"
    },
    {
      "id": 195,
      "label": "Continuity",
      "group": "FOUND"
    },
    {
      "id": 196,
      "label": "Boundedness",
      "group": "FOUND"
    },
    {
      "id": 197,
      "label": "Function Modeling",
      "group": "MODEL"
    },
    {
      "id": 198,
      "label": "Regression Model",
      "group": "MODEL"
    },
    {
      "id": 199,
      "label": "Curve Fitting",
      "group": "MODEL"
    },
    {
      "id": 200,
      "label": "Extrapolation",
      "group": "MODEL"
    },
    {
      "id": 201,
      "label": "Interpolation",
      "group": "MODEL"
    },
    {
      "id": 202,
      "label": "Mathematical Modeling Cycle",
      "group": "MODEL"
    },
    {
      "id": 203,
      "label": "Units and Dimensions",
      "group": "MODEL"
    },
    {
      "id": 204,
      "label": "Significant Figures",
      "group": "MODEL",
      "shape": "box"
    },
    {
      "id": 205,
      "label": "Exact vs Approximate",
      "group": "MODEL"
    },
    {
      "id": 206,
      "label": "GDC Usage",
      "group": "GRAPH"
    },
    {
      "id": 207,
      "label": "Technology in Mathematics",
      "group": "GRAPH"
    },
    {
      "id": 208,
      "label": "Analytic vs Graphic Method",
      "group": "GRAPH"
    }
  ],
  "edges": [
    {
      "from": 2,
      "to": 1
    },
    {
      "from": 3,
      "to": 2
    },
    {
      "from": 4,
      "to": 2
    },
    {
      "from": 5,
      "to": 2
    },
    {
      "from": 6,
      "to": 2
    },
    {
      "from": 7,
      "to": 2
    },
    {
      "from": 7,
      "to": 5
    },
    {
      "from": 7,
      "to": 6
    },
    {
      "from": 8,
      "to": 6
    },
    {
      "from": 9,
      "to": 5
    },
    {
      "from": 10,
      "to": 2
    },
    {
      "from": 10,
      "to": 3
    },
    {
      "from": 10,
      "to": 4
    },
    {
      "from": 11,
      "to": 2
    },
    {
      "from": 11,
      "to": 18
    },
    {
      "from": 13,
      "to": 12
    },
    {
      "from": 13,
      "to": 14
    },
    {
      "from": 13,
      "to": 15
    },
    {
      "from": 16,
      "to": 14
    },
    {
      "from": 16,
      "to": 15
    },
    {
      "from": 17,
      "to": 13
    },
    {
      "from": 17,
      "to": 16
    },
    {
      "from": 18,
      "to": 2
    },
    {
      "from": 18,
      "to": 13
    },
    {
      "from": 19,
      "to": 2
    },
    {
      "from": 19,
      "to": 5
    },
    {
      "from": 19,
      "to": 6
    },
    {
      "from": 20,
      "to": 18
    },
    {
      "from": 20,
      "to": 19
    },
    {
      "from": 20,
      "to": 7
    },
    {
      "from": 21,
      "to": 3
    },
    {
      "from": 21,
      "to": 4
    },
    {
      "from": 22,
      "to": 3
    },
    {
      "from": 22,
      "to": 4
    },
    {
      "from": 23,
      "to": 177
    },
    {
      "from": 24,
      "to": 2
    },
    {
      "from": 24,
      "to": 3
    },
    {
      "from": 25,
      "to": 2
    },
    {
      "from": 25,
      "to": 3
    },
    {
      "from": 26,
      "to": 2
    },
    {
      "from": 26,
      "to": 27
    },
    {
      "from": 26,
      "to": 28
    },
    {
      "from": 27,
      "to": 13
    },
    {
      "from": 28,
      "to": 15
    },
    {
      "from": 28,
      "to": 18
    },
    {
      "from": 29,
      "to": 14
    },
    {
      "from": 29,
      "to": 18
    },
    {
      "from": 30,
      "to": 26
    },
    {
      "from": 30,
      "to": 27
    },
    {
      "from": 30,
      "to": 28
    },
    {
      "from": 31,
      "to": 26
    },
    {
      "from": 32,
      "to": 26
    },
    {
      "from": 32,
      "to": 27
    },
    {
      "from": 32,
      "to": 17
    },
    {
      "from": 33,
      "to": 27
    },
    {
      "from": 33,
      "to": 17
    },
    {
      "from": 33,
      "to": 12
    },
    {
      "from": 34,
      "to": 27
    },
    {
      "from": 35,
      "to": 27
    },
    {
      "from": 36,
      "to": 27
    },
    {
      "from": 36,
      "to": 60
    },
    {
      "from": 37,
      "to": 27
    },
    {
      "from": 38,
      "to": 27
    },
    {
      "from": 38,
      "to": 30
    },
    {
      "from": 39,
      "to": 27
    },
    {
      "from": 39,
      "to": 38
    },
    {
      "from": 40,
      "to": 26
    },
    {
      "from": 40,
      "to": 174
    },
    {
      "from": 40,
      "to": 185
    },
    {
      "from": 41,
      "to": 40
    },
    {
      "from": 41,
      "to": 182
    },
    {
      "from": 41,
      "to": 183
    },
    {
      "from": 42,
      "to": 41
    },
    {
      "from": 42,
      "to": 18
    },
    {
      "from": 43,
      "to": 26
    },
    {
      "from": 43,
      "to": 44
    },
    {
      "from": 43,
      "to": 197
    },
    {
      "from": 44,
      "to": 27
    },
    {
      "from": 45,
      "to": 26
    },
    {
      "from": 45,
      "to": 44
    },
    {
      "from": 46,
      "to": 18
    },
    {
      "from": 47,
      "to": 46
    },
    {
      "from": 48,
      "to": 18
    },
    {
      "from": 48,
      "to": 46
    },
    {
      "from": 49,
      "to": 18
    },
    {
      "from": 49,
      "to": 50
    },
    {
      "from": 49,
      "to": 54
    },
    {
      "from": 49,
      "to": 56
    },
    {
      "from": 50,
      "to": 18
    },
    {
      "from": 50,
      "to": 58
    },
    {
      "from": 50,
      "to": 59
    },
    {
      "from": 51,
      "to": 50
    },
    {
      "from": 52,
      "to": 50
    },
    {
      "from": 53,
      "to": 63
    },
    {
      "from": 53,
      "to": 67
    },
    {
      "from": 54,
      "to": 2
    },
    {
      "from": 54,
      "to": 29
    },
    {
      "from": 55,
      "to": 54
    },
    {
      "from": 56,
      "to": 28
    },
    {
      "from": 56,
      "to": 29
    },
    {
      "from": 57,
      "to": 46
    },
    {
      "from": 57,
      "to": 18
    },
    {
      "from": 58,
      "to": 18
    },
    {
      "from": 58,
      "to": 27
    },
    {
      "from": 59,
      "to": 18
    },
    {
      "from": 59,
      "to": 27
    },
    {
      "from": 60,
      "to": 2
    },
    {
      "from": 61,
      "to": 2
    },
    {
      "from": 61,
      "to": 7
    },
    {
      "from": 62,
      "to": 2
    },
    {
      "from": 62,
      "to": 170
    },
    {
      "from": 62,
      "to": 171
    },
    {
      "from": 63,
      "to": 62
    },
    {
      "from": 63,
      "to": 18
    },
    {
      "from": 64,
      "to": 62
    },
    {
      "from": 64,
      "to": 170
    },
    {
      "from": 64,
      "to": 28
    },
    {
      "from": 65,
      "to": 62
    },
    {
      "from": 65,
      "to": 54
    },
    {
      "from": 65,
      "to": 70
    },
    {
      "from": 66,
      "to": 62
    },
    {
      "from": 66,
      "to": 67
    },
    {
      "from": 66,
      "to": 68
    },
    {
      "from": 67,
      "to": 63
    },
    {
      "from": 67,
      "to": 51
    },
    {
      "from": 67,
      "to": 52
    },
    {
      "from": 68,
      "to": 64
    },
    {
      "from": 68,
      "to": 185
    },
    {
      "from": 68,
      "to": 190
    },
    {
      "from": 69,
      "to": 64
    },
    {
      "from": 69,
      "to": 71
    },
    {
      "from": 70,
      "to": 62
    },
    {
      "from": 70,
      "to": 188
    },
    {
      "from": 70,
      "to": 189
    },
    {
      "from": 70,
      "to": 190
    },
    {
      "from": 71,
      "to": 64
    },
    {
      "from": 72,
      "to": 71
    },
    {
      "from": 72,
      "to": 75
    },
    {
      "from": 73,
      "to": 71
    },
    {
      "from": 73,
      "to": 75
    },
    {
      "from": 74,
      "to": 71
    },
    {
      "from": 74,
      "to": 75
    },
    {
      "from": 75,
      "to": 71
    },
    {
      "from": 76,
      "to": 62
    },
    {
      "from": 76,
      "to": 175
    },
    {
      "from": 76,
      "to": 77
    },
    {
      "from": 77,
      "to": 54
    },
    {
      "from": 77,
      "to": 175
    },
    {
      "from": 78,
      "to": 69
    },
    {
      "from": 78,
      "to": 70
    },
    {
      "from": 78,
      "to": 68
    },
    {
      "from": 79,
      "to": 78
    },
    {
      "from": 79,
      "to": 197
    },
    {
      "from": 80,
      "to": 79
    },
    {
      "from": 80,
      "to": 66
    },
    {
      "from": 81,
      "to": 79
    },
    {
      "from": 81,
      "to": 51
    },
    {
      "from": 82,
      "to": 2
    },
    {
      "from": 82,
      "to": 86
    },
    {
      "from": 83,
      "to": 82
    },
    {
      "from": 83,
      "to": 7
    },
    {
      "from": 84,
      "to": 82
    },
    {
      "from": 84,
      "to": 185
    },
    {
      "from": 85,
      "to": 82
    },
    {
      "from": 85,
      "to": 18
    },
    {
      "from": 86,
      "to": 2
    },
    {
      "from": 86,
      "to": 87
    },
    {
      "from": 87,
      "to": 18
    },
    {
      "from": 87,
      "to": 11
    },
    {
      "from": 88,
      "to": 82
    },
    {
      "from": 88,
      "to": 94
    },
    {
      "from": 89,
      "to": 2
    },
    {
      "from": 89,
      "to": 7
    },
    {
      "from": 90,
      "to": 89
    },
    {
      "from": 91,
      "to": 89
    },
    {
      "from": 91,
      "to": 90
    },
    {
      "from": 92,
      "to": 89
    },
    {
      "from": 92,
      "to": 3
    },
    {
      "from": 93,
      "to": 89
    },
    {
      "from": 93,
      "to": 90
    },
    {
      "from": 94,
      "to": 2
    },
    {
      "from": 95,
      "to": 94
    },
    {
      "from": 95,
      "to": 18
    },
    {
      "from": 96,
      "to": 18
    },
    {
      "from": 96,
      "to": 3
    },
    {
      "from": 97,
      "to": 18
    },
    {
      "from": 97,
      "to": 130
    },
    {
      "from": 98,
      "to": 96
    },
    {
      "from": 98,
      "to": 97
    },
    {
      "from": 99,
      "to": 94
    },
    {
      "from": 99,
      "to": 125
    },
    {
      "from": 100,
      "to": 99
    },
    {
      "from": 100,
      "to": 96
    },
    {
      "from": 100,
      "to": 97
    },
    {
      "from": 101,
      "to": 99
    },
    {
      "from": 101,
      "to": 134
    },
    {
      "from": 102,
      "to": 99
    },
    {
      "from": 102,
      "to": 98
    },
    {
      "from": 102,
      "to": 46
    },
    {
      "from": 103,
      "to": 99
    },
    {
      "from": 103,
      "to": 188
    },
    {
      "from": 104,
      "to": 3
    },
    {
      "from": 105,
      "to": 2
    },
    {
      "from": 105,
      "to": 106
    },
    {
      "from": 107,
      "to": 105
    },
    {
      "from": 107,
      "to": 44
    },
    {
      "from": 108,
      "to": 105
    },
    {
      "from": 108,
      "to": 44
    },
    {
      "from": 109,
      "to": 105
    },
    {
      "from": 109,
      "to": 110
    },
    {
      "from": 110,
      "to": 106
    },
    {
      "from": 111,
      "to": 105
    },
    {
      "from": 111,
      "to": 185
    },
    {
      "from": 112,
      "to": 107
    },
    {
      "from": 112,
      "to": 197
    },
    {
      "from": 113,
      "to": 107
    },
    {
      "from": 113,
      "to": 197
    },
    {
      "from": 114,
      "to": 108
    },
    {
      "from": 114,
      "to": 197
    },
    {
      "from": 115,
      "to": 105
    },
    {
      "from": 115,
      "to": 121
    },
    {
      "from": 116,
      "to": 115
    },
    {
      "from": 117,
      "to": 115
    },
    {
      "from": 117,
      "to": 110
    },
    {
      "from": 118,
      "to": 115
    },
    {
      "from": 119,
      "to": 118
    },
    {
      "from": 119,
      "to": 116
    },
    {
      "from": 119,
      "to": 117
    },
    {
      "from": 120,
      "to": 118
    },
    {
      "from": 120,
      "to": 111
    },
    {
      "from": 121,
      "to": 105
    },
    {
      "from": 121,
      "to": 82
    },
    {
      "from": 122,
      "to": 115
    },
    {
      "from": 123,
      "to": 105
    },
    {
      "from": 123,
      "to": 18
    },
    {
      "from": 123,
      "to": 46
    },
    {
      "from": 124,
      "to": 115
    },
    {
      "from": 124,
      "to": 18
    },
    {
      "from": 124,
      "to": 46
    },
    {
      "from": 125,
      "to": 62
    },
    {
      "from": 125,
      "to": 126
    },
    {
      "from": 125,
      "to": 127
    },
    {
      "from": 126,
      "to": 170
    },
    {
      "from": 127,
      "to": 170
    },
    {
      "from": 127,
      "to": 126
    },
    {
      "from": 128,
      "to": 125
    },
    {
      "from": 129,
      "to": 125
    },
    {
      "from": 130,
      "to": 125
    },
    {
      "from": 130,
      "to": 127
    },
    {
      "from": 131,
      "to": 125
    },
    {
      "from": 131,
      "to": 126
    },
    {
      "from": 131,
      "to": 50
    },
    {
      "from": 132,
      "to": 125
    },
    {
      "from": 132,
      "to": 54
    },
    {
      "from": 133,
      "to": 132
    },
    {
      "from": 133,
      "to": 134
    },
    {
      "from": 134,
      "to": 125
    },
    {
      "from": 134,
      "to": 185
    },
    {
      "from": 135,
      "to": 134
    },
    {
      "from": 136,
      "to": 132
    },
    {
      "from": 136,
      "to": 135
    },
    {
      "from": 137,
      "to": 125
    },
    {
      "from": 137,
      "to": 136
    },
    {
      "from": 138,
      "to": 125
    },
    {
      "from": 138,
      "to": 136
    },
    {
      "from": 139,
      "to": 136
    },
    {
      "from": 139,
      "to": 54
    },
    {
      "from": 140,
      "to": 125
    },
    {
      "from": 140,
      "to": 130
    },
    {
      "from": 140,
      "to": 131
    },
    {
      "from": 140,
      "to": 46
    },
    {
      "from": 141,
      "to": 2
    },
    {
      "from": 141,
      "to": 18
    },
    {
      "from": 141,
      "to": 143
    },
    {
      "from": 142,
      "to": 2
    },
    {
      "from": 142,
      "to": 18
    },
    {
      "from": 142,
      "to": 143
    },
    {
      "from": 143,
      "to": 18
    },
    {
      "from": 143,
      "to": 7
    },
    {
      "from": 144,
      "to": 2
    },
    {
      "from": 144,
      "to": 3
    },
    {
      "from": 145,
      "to": 2
    },
    {
      "from": 146,
      "to": 145
    },
    {
      "from": 146,
      "to": 18
    },
    {
      "from": 147,
      "to": 145
    },
    {
      "from": 147,
      "to": 174
    },
    {
      "from": 148,
      "to": 145
    },
    {
      "from": 148,
      "to": 18
    },
    {
      "from": 148,
      "to": 146
    },
    {
      "from": 149,
      "to": 145
    },
    {
      "from": 149,
      "to": 18
    },
    {
      "from": 149,
      "to": 146
    },
    {
      "from": 150,
      "to": 18
    },
    {
      "from": 150,
      "to": 2
    },
    {
      "from": 151,
      "to": 82
    },
    {
      "from": 151,
      "to": 3
    },
    {
      "from": 151,
      "to": 86
    },
    {
      "from": 152,
      "to": 18
    },
    {
      "from": 153,
      "to": 152
    },
    {
      "from": 154,
      "to": 152
    },
    {
      "from": 155,
      "to": 18
    },
    {
      "from": 155,
      "to": 15
    },
    {
      "from": 156,
      "to": 18
    },
    {
      "from": 156,
      "to": 14
    },
    {
      "from": 157,
      "to": 18
    },
    {
      "from": 157,
      "to": 159
    },
    {
      "from": 158,
      "to": 18
    },
    {
      "from": 158,
      "to": 159
    },
    {
      "from": 160,
      "to": 152
    },
    {
      "from": 160,
      "to": 155
    },
    {
      "from": 160,
      "to": 156
    },
    {
      "from": 160,
      "to": 157
    },
    {
      "from": 160,
      "to": 158
    },
    {
      "from": 161,
      "to": 7
    },
    {
      "from": 161,
      "to": 152
    },
    {
      "from": 162,
      "to": 17
    },
    {
      "from": 162,
      "to": 152
    },
    {
      "from": 163,
      "to": 162
    },
    {
      "from": 163,
      "to": 17
    },
    {
      "from": 164,
      "to": 160
    },
    {
      "from": 165,
      "to": 2
    },
    {
      "from": 165,
      "to": 3
    },
    {
      "from": 166,
      "to": 165
    },
    {
      "from": 167,
      "to": 165
    },
    {
      "from": 168,
      "to": 165
    },
    {
      "from": 169,
      "to": 171
    },
    {
      "from": 169,
      "to": 172
    },
    {
      "from": 173,
      "to": 170
    },
    {
      "from": 173,
      "to": 171
    },
    {
      "from": 173,
      "to": 172
    },
    {
      "from": 174,
      "to": 173
    },
    {
      "from": 175,
      "to": 174
    },
    {
      "from": 176,
      "to": 174
    },
    {
      "from": 176,
      "to": 175
    },
    {
      "from": 178,
      "to": 177
    },
    {
      "from": 178,
      "to": 23
    },
    {
      "from": 179,
      "to": 178
    },
    {
      "from": 180,
      "to": 179
    },
    {
      "from": 181,
      "to": 179
    },
    {
      "from": 181,
      "to": 180
    },
    {
      "from": 181,
      "to": 3
    },
    {
      "from": 182,
      "to": 174
    },
    {
      "from": 182,
      "to": 171
    },
    {
      "from": 183,
      "to": 174
    },
    {
      "from": 184,
      "to": 18
    },
    {
      "from": 184,
      "to": 46
    },
    {
      "from": 185,
      "to": 173
    },
    {
      "from": 185,
      "to": 186
    },
    {
      "from": 185,
      "to": 187
    },
    {
      "from": 186,
      "to": 173
    },
    {
      "from": 187,
      "to": 173
    },
    {
      "from": 188,
      "to": 173
    },
    {
      "from": 189,
      "to": 188
    },
    {
      "from": 190,
      "to": 188
    },
    {
      "from": 191,
      "to": 188
    },
    {
      "from": 192,
      "to": 58
    },
    {
      "from": 192,
      "to": 59
    },
    {
      "from": 192,
      "to": 193
    },
    {
      "from": 193,
      "to": 50
    },
    {
      "from": 193,
      "to": 18
    },
    {
      "from": 194,
      "to": 193
    },
    {
      "from": 195,
      "to": 24
    },
    {
      "from": 195,
      "to": 3
    },
    {
      "from": 196,
      "to": 3
    },
    {
      "from": 196,
      "to": 4
    },
    {
      "from": 197,
      "to": 2
    },
    {
      "from": 197,
      "to": 20
    },
    {
      "from": 198,
      "to": 197
    },
    {
      "from": 198,
      "to": 46
    },
    {
      "from": 199,
      "to": 198
    },
    {
      "from": 200,
      "to": 199
    },
    {
      "from": 200,
      "to": 197
    },
    {
      "from": 201,
      "to": 199
    },
    {
      "from": 201,
      "to": 197
    },
    {
      "from": 202,
      "to": 197
    },
    {
      "from": 203,
      "to": 197
    },
    {
      "from": 205,
      "to": 204
    },
    {
      "from": 205,
      "to": 197
    },
    {
      "from": 206,
      "to": 46
    },
    {
      "from": 207,
      "to": 46
    },
    {
      "from": 208,
      "to": 46
    },
    {
      "from": 208,
      "to": 185
    }
  ]
}